@futdevpro/ccap 1.1.2976 → 1.1.2980

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 (186) hide show
  1. package/client-dist/{agent-instances.module-RDNI5YIM.js → agent-instances.module-WFXL2NDE.js} +2 -2
  2. package/client-dist/{ca.module-DOSQOA3X.js → ca.module-CVTI3AF7.js} +2 -2
  3. package/client-dist/{cc-usage-dashboard.component-QRHS53KB.js → cc-usage-dashboard.component-I2G2NBSY.js} +2 -2
  4. package/client-dist/{cc.module-QHHXHWQG.js → cc.module-EXDXYOJ4.js} +2 -2
  5. package/client-dist/{chunk-PKJ7Y62N.js → chunk-2CUMN334.js} +2 -2
  6. package/client-dist/{chunk-ECCH2DHZ.js → chunk-2UXI7P2C.js} +2 -2
  7. package/client-dist/{chunk-RE5XOANX.js → chunk-2VU3GISV.js} +2 -2
  8. package/client-dist/{chunk-CFMCTGZ2.js → chunk-3HWZLIS3.js} +2 -2
  9. package/client-dist/{chunk-CQLAXUA5.js → chunk-4ANOVQQ6.js} +2 -2
  10. package/client-dist/{chunk-3WAVQMV4.js → chunk-4CXFWMLH.js} +2 -2
  11. package/client-dist/{chunk-AVF5CZDZ.js → chunk-4OK5LJEU.js} +2 -2
  12. package/client-dist/{chunk-ROLVKMOV.js → chunk-4PZ65LDL.js} +2 -2
  13. package/client-dist/{chunk-GQJGST2S.js → chunk-4WGQS2HA.js} +2 -2
  14. package/client-dist/{chunk-WJQ3I2JP.js → chunk-5N64HGRY.js} +2 -2
  15. package/client-dist/{chunk-WJQ3I2JP.js.map → chunk-5N64HGRY.js.map} +1 -1
  16. package/client-dist/{chunk-K5GHIIP6.js → chunk-6EPKNTJZ.js} +2 -2
  17. package/client-dist/{chunk-TRSQKYJ3.js → chunk-7EHVTWSO.js} +2 -2
  18. package/client-dist/{chunk-CA2S6A5N.js → chunk-7XAV5GIW.js} +2 -2
  19. package/client-dist/{chunk-LSKYY36G.js → chunk-AE5VAS75.js} +2 -2
  20. package/client-dist/{chunk-32TKSQQ4.js → chunk-AQO5IW5B.js} +2 -2
  21. package/client-dist/{chunk-ZXZYTEBK.js → chunk-AYDRWFG2.js} +2 -2
  22. package/client-dist/{chunk-P2DWOMGE.js → chunk-BGNEFOVG.js} +2 -2
  23. package/client-dist/{chunk-RM323G5Y.js → chunk-C75AJJFP.js} +2 -2
  24. package/client-dist/{chunk-K2LUZEU7.js → chunk-CU2HMFAD.js} +2 -2
  25. package/client-dist/{chunk-357BATFQ.js → chunk-DPGBOTN3.js} +2 -2
  26. package/client-dist/{chunk-MMOBWOV2.js → chunk-EP3IAFIL.js} +2 -2
  27. package/client-dist/{chunk-JOP5IVM2.js → chunk-EPIK2P4Q.js} +2 -2
  28. package/client-dist/{chunk-MQGZMZG3.js → chunk-ESPURNI3.js} +2 -2
  29. package/client-dist/{chunk-VGGHOZL3.js → chunk-FSUMD4VQ.js} +2 -2
  30. package/client-dist/{chunk-BPXKOVJB.js → chunk-FVNI46U2.js} +2 -2
  31. package/client-dist/{chunk-WA3EVNKZ.js → chunk-GH67BJ7J.js} +2 -2
  32. package/client-dist/{chunk-AOG3C4MB.js → chunk-GZRNNZID.js} +2 -2
  33. package/client-dist/{chunk-D2YJ6ZB6.js → chunk-HRSSMQBA.js} +2 -2
  34. package/client-dist/{chunk-OEP5AH6P.js → chunk-I4M7XPFX.js} +2 -2
  35. package/client-dist/{chunk-VA24IMJT.js → chunk-JGLBYLWW.js} +2 -2
  36. package/client-dist/{chunk-TC4ZWWYN.js → chunk-KB2F332Z.js} +2 -2
  37. package/client-dist/{chunk-O6W4XLGA.js → chunk-LBMIDL4S.js} +2 -2
  38. package/client-dist/{chunk-ZKIPL7J4.js → chunk-MMFURH5P.js} +2 -2
  39. package/client-dist/{chunk-HQPGIGEE.js → chunk-N26D6SXG.js} +2 -2
  40. package/client-dist/{chunk-3L2A6OYA.js → chunk-N7HJWJ2S.js} +2 -2
  41. package/client-dist/{chunk-KZGPAAZC.js → chunk-ORFH2XGX.js} +2 -2
  42. package/client-dist/{chunk-GIZQX4FZ.js → chunk-OVD3GSH2.js} +2 -2
  43. package/client-dist/{chunk-QUTV6V23.js → chunk-PGKNPYIE.js} +2 -2
  44. package/client-dist/{chunk-2NU642AU.js → chunk-PWAWM6DC.js} +2 -2
  45. package/client-dist/{chunk-DI2UBL2H.js → chunk-Q2WNI354.js} +2 -2
  46. package/client-dist/{chunk-CGYDBFFX.js → chunk-RG67NB4W.js} +2 -2
  47. package/client-dist/{chunk-2TJTUYN7.js → chunk-RT7QOL2Q.js} +2 -2
  48. package/client-dist/{chunk-SHWCVDPA.js → chunk-RV3A7THL.js} +2 -2
  49. package/client-dist/{chunk-GJLKW7DM.js → chunk-RWQ5B34I.js} +2 -2
  50. package/client-dist/{chunk-F3FKLFEZ.js → chunk-SBPFNYFT.js} +2 -2
  51. package/client-dist/{chunk-65TRXF6Q.js → chunk-SG5TSGOY.js} +2 -2
  52. package/client-dist/{chunk-GHCL3MSY.js → chunk-TSGXTLGO.js} +2 -2
  53. package/client-dist/{chunk-5PH776OB.js → chunk-UBUKMZCP.js} +2 -2
  54. package/client-dist/{chunk-K4J73VA4.js → chunk-UHAAQJ2R.js} +2 -2
  55. package/client-dist/{chunk-C5SF72NF.js → chunk-VEPJ3MZH.js} +2 -2
  56. package/client-dist/{chunk-W3LVU52O.js → chunk-VHZQSBXM.js} +2 -2
  57. package/client-dist/{chunk-ZB3FCA3E.js → chunk-VSGHMHDK.js} +2 -2
  58. package/client-dist/{chunk-HMKEVINB.js → chunk-WDSKSHR7.js} +2 -2
  59. package/client-dist/{chunk-FLTRXJF5.js → chunk-WL7JJ44C.js} +2 -2
  60. package/client-dist/{chunk-HWDURMDH.js → chunk-WXN5C3BS.js} +2 -2
  61. package/client-dist/{chunk-KRFIZINJ.js → chunk-ZOCMDQAW.js} +2 -2
  62. package/client-dist/{consultant.module-YJXM54HJ.js → consultant.module-WHGIMF6M.js} +2 -2
  63. package/client-dist/{crd.module-WTDKZXIE.js → crd.module-EH2RIMWD.js} +2 -2
  64. package/client-dist/{dashboard.module-NKQHPS5Q.js → dashboard.module-EROOHU4C.js} +2 -2
  65. package/client-dist/{do.module-FNFK3G5K.js → do.module-PATPM2KZ.js} +2 -2
  66. package/client-dist/{document-library.module-3P3ZFDV7.js → document-library.module-QBW7XGNT.js} +2 -2
  67. package/client-dist/{embedding-eval.module-WWIPZ3TY.js → embedding-eval.module-O4YXXNZE.js} +2 -2
  68. package/client-dist/{embedding-registry.module-BO7LYJLR.js → embedding-registry.module-DOWVA6RV.js} +2 -2
  69. package/client-dist/{err.module-AKZYERWR.js → err.module-AWN67SP6.js} +2 -2
  70. package/client-dist/{feedback.module-QL52SIU3.js → feedback.module-BWKJCSTU.js} +2 -2
  71. package/client-dist/{host-runtime-mcp.module-WGN2WK3K.js → host-runtime-mcp.module-24MRZ77I.js} +2 -2
  72. package/client-dist/index.html +1 -1
  73. package/client-dist/{live-dev-pipeline.module-WHO3NH3W.js → live-dev-pipeline.module-T4EERACF.js} +2 -2
  74. package/client-dist/{logs.module-YAFAVQPS.js → logs.module-O4MVHXRP.js} +2 -2
  75. package/client-dist/{main-IHO52LAW.js → main-NP3NWD3C.js} +3 -3
  76. package/client-dist/{master-control-remote-poc.module-KGXVVQQM.js → master-control-remote-poc.module-M6TNRCRQ.js} +2 -2
  77. package/client-dist/{mobile-app.module-JTAPGOXX.js → mobile-app.module-SW2L4EB3.js} +2 -2
  78. package/client-dist/{model-registry.module-7ZYZ3XZ2.js → model-registry.module-MMEFDY3Y.js} +2 -2
  79. package/client-dist/{oc.module-CMKG3TIN.js → oc.module-PVCITNSF.js} +2 -2
  80. package/client-dist/{orc.module-D5QH6N6Q.js → orc.module-2S5XXXZI.js} +2 -2
  81. package/client-dist/{project-management.module-EJLPHJD6.js → project-management.module-XD6NLN3S.js} +15 -15
  82. package/client-dist/{project-management.module-EJLPHJD6.js.map → project-management.module-XD6NLN3S.js.map} +3 -3
  83. package/client-dist/project-source-routed.module-ZBU2T4Q5.js +2 -0
  84. package/client-dist/{scheduler.module-7IWANUWU.js → scheduler.module-7YAZ6PYA.js} +2 -2
  85. package/client-dist/{session.module-42CEXVHT.js → session.module-QNFMZPFT.js} +2 -2
  86. package/client-dist/{set.module-QXF6DZFG.js → set.module-QLYUFFRH.js} +2 -2
  87. package/client-dist/{setup.module-4U42JK32.js → setup.module-HSVFOBYN.js} +2 -2
  88. package/client-dist/{terminals.module-RZXNECJ7.js → terminals.module-2NKJL3L6.js} +2 -2
  89. package/client-dist/{voice-notes-poc.module-TB6PFTCF.js → voice-notes-poc.module-VBWYBFHH.js} +2 -2
  90. package/client-dist/{wfs.module-K3NJ47QV.js → wfs.module-2ZF3S6F2.js} +2 -2
  91. package/package.json +1 -1
  92. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/consts/cc-kill-reasons.const.d.ts +11 -0
  93. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/consts/cc-kill-reasons.const.d.ts.map +1 -1
  94. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/consts/cc-kill-reasons.const.js +11 -0
  95. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/consts/cc-kill-reasons.const.js.map +1 -1
  96. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-process-exit.util.d.ts.map +1 -1
  97. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-process-exit.util.js +9 -4
  98. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-process-exit.util.js.map +1 -1
  99. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-process-exit.util.spec.js +20 -14
  100. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/lifecycle/cc-process-exit.util.spec.js.map +1 -1
  101. package/client-dist/project-source-routed.module-2OY6I5WD.js +0 -2
  102. /package/client-dist/{agent-instances.module-RDNI5YIM.js.map → agent-instances.module-WFXL2NDE.js.map} +0 -0
  103. /package/client-dist/{ca.module-DOSQOA3X.js.map → ca.module-CVTI3AF7.js.map} +0 -0
  104. /package/client-dist/{cc-usage-dashboard.component-QRHS53KB.js.map → cc-usage-dashboard.component-I2G2NBSY.js.map} +0 -0
  105. /package/client-dist/{cc.module-QHHXHWQG.js.map → cc.module-EXDXYOJ4.js.map} +0 -0
  106. /package/client-dist/{chunk-PKJ7Y62N.js.map → chunk-2CUMN334.js.map} +0 -0
  107. /package/client-dist/{chunk-ECCH2DHZ.js.map → chunk-2UXI7P2C.js.map} +0 -0
  108. /package/client-dist/{chunk-RE5XOANX.js.map → chunk-2VU3GISV.js.map} +0 -0
  109. /package/client-dist/{chunk-CFMCTGZ2.js.map → chunk-3HWZLIS3.js.map} +0 -0
  110. /package/client-dist/{chunk-CQLAXUA5.js.map → chunk-4ANOVQQ6.js.map} +0 -0
  111. /package/client-dist/{chunk-3WAVQMV4.js.map → chunk-4CXFWMLH.js.map} +0 -0
  112. /package/client-dist/{chunk-AVF5CZDZ.js.map → chunk-4OK5LJEU.js.map} +0 -0
  113. /package/client-dist/{chunk-ROLVKMOV.js.map → chunk-4PZ65LDL.js.map} +0 -0
  114. /package/client-dist/{chunk-GQJGST2S.js.map → chunk-4WGQS2HA.js.map} +0 -0
  115. /package/client-dist/{chunk-K5GHIIP6.js.map → chunk-6EPKNTJZ.js.map} +0 -0
  116. /package/client-dist/{chunk-TRSQKYJ3.js.map → chunk-7EHVTWSO.js.map} +0 -0
  117. /package/client-dist/{chunk-CA2S6A5N.js.map → chunk-7XAV5GIW.js.map} +0 -0
  118. /package/client-dist/{chunk-LSKYY36G.js.map → chunk-AE5VAS75.js.map} +0 -0
  119. /package/client-dist/{chunk-32TKSQQ4.js.map → chunk-AQO5IW5B.js.map} +0 -0
  120. /package/client-dist/{chunk-ZXZYTEBK.js.map → chunk-AYDRWFG2.js.map} +0 -0
  121. /package/client-dist/{chunk-P2DWOMGE.js.map → chunk-BGNEFOVG.js.map} +0 -0
  122. /package/client-dist/{chunk-RM323G5Y.js.map → chunk-C75AJJFP.js.map} +0 -0
  123. /package/client-dist/{chunk-K2LUZEU7.js.map → chunk-CU2HMFAD.js.map} +0 -0
  124. /package/client-dist/{chunk-357BATFQ.js.map → chunk-DPGBOTN3.js.map} +0 -0
  125. /package/client-dist/{chunk-MMOBWOV2.js.map → chunk-EP3IAFIL.js.map} +0 -0
  126. /package/client-dist/{chunk-JOP5IVM2.js.map → chunk-EPIK2P4Q.js.map} +0 -0
  127. /package/client-dist/{chunk-MQGZMZG3.js.map → chunk-ESPURNI3.js.map} +0 -0
  128. /package/client-dist/{chunk-VGGHOZL3.js.map → chunk-FSUMD4VQ.js.map} +0 -0
  129. /package/client-dist/{chunk-BPXKOVJB.js.map → chunk-FVNI46U2.js.map} +0 -0
  130. /package/client-dist/{chunk-WA3EVNKZ.js.map → chunk-GH67BJ7J.js.map} +0 -0
  131. /package/client-dist/{chunk-AOG3C4MB.js.map → chunk-GZRNNZID.js.map} +0 -0
  132. /package/client-dist/{chunk-D2YJ6ZB6.js.map → chunk-HRSSMQBA.js.map} +0 -0
  133. /package/client-dist/{chunk-OEP5AH6P.js.map → chunk-I4M7XPFX.js.map} +0 -0
  134. /package/client-dist/{chunk-VA24IMJT.js.map → chunk-JGLBYLWW.js.map} +0 -0
  135. /package/client-dist/{chunk-TC4ZWWYN.js.map → chunk-KB2F332Z.js.map} +0 -0
  136. /package/client-dist/{chunk-O6W4XLGA.js.map → chunk-LBMIDL4S.js.map} +0 -0
  137. /package/client-dist/{chunk-ZKIPL7J4.js.map → chunk-MMFURH5P.js.map} +0 -0
  138. /package/client-dist/{chunk-HQPGIGEE.js.map → chunk-N26D6SXG.js.map} +0 -0
  139. /package/client-dist/{chunk-3L2A6OYA.js.map → chunk-N7HJWJ2S.js.map} +0 -0
  140. /package/client-dist/{chunk-KZGPAAZC.js.map → chunk-ORFH2XGX.js.map} +0 -0
  141. /package/client-dist/{chunk-GIZQX4FZ.js.map → chunk-OVD3GSH2.js.map} +0 -0
  142. /package/client-dist/{chunk-QUTV6V23.js.map → chunk-PGKNPYIE.js.map} +0 -0
  143. /package/client-dist/{chunk-2NU642AU.js.map → chunk-PWAWM6DC.js.map} +0 -0
  144. /package/client-dist/{chunk-DI2UBL2H.js.map → chunk-Q2WNI354.js.map} +0 -0
  145. /package/client-dist/{chunk-CGYDBFFX.js.map → chunk-RG67NB4W.js.map} +0 -0
  146. /package/client-dist/{chunk-2TJTUYN7.js.map → chunk-RT7QOL2Q.js.map} +0 -0
  147. /package/client-dist/{chunk-SHWCVDPA.js.map → chunk-RV3A7THL.js.map} +0 -0
  148. /package/client-dist/{chunk-GJLKW7DM.js.map → chunk-RWQ5B34I.js.map} +0 -0
  149. /package/client-dist/{chunk-F3FKLFEZ.js.map → chunk-SBPFNYFT.js.map} +0 -0
  150. /package/client-dist/{chunk-65TRXF6Q.js.map → chunk-SG5TSGOY.js.map} +0 -0
  151. /package/client-dist/{chunk-GHCL3MSY.js.map → chunk-TSGXTLGO.js.map} +0 -0
  152. /package/client-dist/{chunk-5PH776OB.js.map → chunk-UBUKMZCP.js.map} +0 -0
  153. /package/client-dist/{chunk-K4J73VA4.js.map → chunk-UHAAQJ2R.js.map} +0 -0
  154. /package/client-dist/{chunk-C5SF72NF.js.map → chunk-VEPJ3MZH.js.map} +0 -0
  155. /package/client-dist/{chunk-W3LVU52O.js.map → chunk-VHZQSBXM.js.map} +0 -0
  156. /package/client-dist/{chunk-ZB3FCA3E.js.map → chunk-VSGHMHDK.js.map} +0 -0
  157. /package/client-dist/{chunk-HMKEVINB.js.map → chunk-WDSKSHR7.js.map} +0 -0
  158. /package/client-dist/{chunk-FLTRXJF5.js.map → chunk-WL7JJ44C.js.map} +0 -0
  159. /package/client-dist/{chunk-HWDURMDH.js.map → chunk-WXN5C3BS.js.map} +0 -0
  160. /package/client-dist/{chunk-KRFIZINJ.js.map → chunk-ZOCMDQAW.js.map} +0 -0
  161. /package/client-dist/{consultant.module-YJXM54HJ.js.map → consultant.module-WHGIMF6M.js.map} +0 -0
  162. /package/client-dist/{crd.module-WTDKZXIE.js.map → crd.module-EH2RIMWD.js.map} +0 -0
  163. /package/client-dist/{dashboard.module-NKQHPS5Q.js.map → dashboard.module-EROOHU4C.js.map} +0 -0
  164. /package/client-dist/{do.module-FNFK3G5K.js.map → do.module-PATPM2KZ.js.map} +0 -0
  165. /package/client-dist/{document-library.module-3P3ZFDV7.js.map → document-library.module-QBW7XGNT.js.map} +0 -0
  166. /package/client-dist/{embedding-eval.module-WWIPZ3TY.js.map → embedding-eval.module-O4YXXNZE.js.map} +0 -0
  167. /package/client-dist/{embedding-registry.module-BO7LYJLR.js.map → embedding-registry.module-DOWVA6RV.js.map} +0 -0
  168. /package/client-dist/{err.module-AKZYERWR.js.map → err.module-AWN67SP6.js.map} +0 -0
  169. /package/client-dist/{feedback.module-QL52SIU3.js.map → feedback.module-BWKJCSTU.js.map} +0 -0
  170. /package/client-dist/{host-runtime-mcp.module-WGN2WK3K.js.map → host-runtime-mcp.module-24MRZ77I.js.map} +0 -0
  171. /package/client-dist/{live-dev-pipeline.module-WHO3NH3W.js.map → live-dev-pipeline.module-T4EERACF.js.map} +0 -0
  172. /package/client-dist/{logs.module-YAFAVQPS.js.map → logs.module-O4MVHXRP.js.map} +0 -0
  173. /package/client-dist/{main-IHO52LAW.js.map → main-NP3NWD3C.js.map} +0 -0
  174. /package/client-dist/{master-control-remote-poc.module-KGXVVQQM.js.map → master-control-remote-poc.module-M6TNRCRQ.js.map} +0 -0
  175. /package/client-dist/{mobile-app.module-JTAPGOXX.js.map → mobile-app.module-SW2L4EB3.js.map} +0 -0
  176. /package/client-dist/{model-registry.module-7ZYZ3XZ2.js.map → model-registry.module-MMEFDY3Y.js.map} +0 -0
  177. /package/client-dist/{oc.module-CMKG3TIN.js.map → oc.module-PVCITNSF.js.map} +0 -0
  178. /package/client-dist/{orc.module-D5QH6N6Q.js.map → orc.module-2S5XXXZI.js.map} +0 -0
  179. /package/client-dist/{project-source-routed.module-2OY6I5WD.js.map → project-source-routed.module-ZBU2T4Q5.js.map} +0 -0
  180. /package/client-dist/{scheduler.module-7IWANUWU.js.map → scheduler.module-7YAZ6PYA.js.map} +0 -0
  181. /package/client-dist/{session.module-42CEXVHT.js.map → session.module-QNFMZPFT.js.map} +0 -0
  182. /package/client-dist/{set.module-QXF6DZFG.js.map → set.module-QLYUFFRH.js.map} +0 -0
  183. /package/client-dist/{setup.module-4U42JK32.js.map → setup.module-HSVFOBYN.js.map} +0 -0
  184. /package/client-dist/{terminals.module-RZXNECJ7.js.map → terminals.module-2NKJL3L6.js.map} +0 -0
  185. /package/client-dist/{voice-notes-poc.module-TB6PFTCF.js.map → voice-notes-poc.module-VBWYBFHH.js.map} +0 -0
  186. /package/client-dist/{wfs.module-K3NJ47QV.js.map → wfs.module-2ZF3S6F2.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["src/app/_modules/project-management/_components/pm-discover-wizard/pm-discover-wizard.component.ts", "src/app/_modules/project-management/_components/pm-discover-wizard/pm-discover-wizard.component.html", "src/app/_modules/project-management/_components/pm-shell/pm-shell.component.ts", "src/app/_modules/project-management/_components/pm-projects-list/pm-list.component.ts", "src/app/_modules/project-management/_components/pm-projects-list/pm-list.component.html", "src/app/_modules/project-management/_components/pm-cc-launch-wizard/pm-cc-launch-wizard.component.ts", "src/app/_modules/project-management/_components/pm-cc-launch-wizard/pm-cc-launch-wizard.component.html", "src/app/_modules/project-management/_components/pm-entry-raw-modal/pm-entry-raw-modal.component.ts", "src/app/_modules/project-management/_components/pm-entry-raw-modal/pm-entry-raw-modal.component.html", "src/app/_modules/project-management/_components/pm-project-detail/pm-entry-mutation-ui/pm-control-entry-edit-modal.component.ts", "src/app/_modules/project-management/_components/pm-project-detail/pm-entry-mutation-ui/pm-control-entry-edit-modal.component.html", "src/app/_modules/project-management/_components/pm-project-detail/pm-entry-mutation-ui/pm-item-row-actions.component.ts", "src/app/_modules/project-management/_components/pm-project-detail/pm-entry-mutation-ui/pm-item-row-actions.component.html", "src/app/_modules/project-management/_collections/utils/pm-cc-launch-prompt.util.ts", "src/app/_modules/project-management/_components/pm-project-detail/pm-control-file-preamble-disclosure/pm-control-file-preamble-disclosure.component.ts", "src/app/_modules/project-management/_components/pm-project-detail/pm-control-file-preamble-disclosure/pm-control-file-preamble-disclosure.component.html", "src/app/_modules/project-management/_components/pm-project-detail/pm-todo-tab/pm-todo-tab.component.ts", "src/app/_modules/project-management/_components/pm-project-detail/pm-todo-tab/pm-todo-tab.component.html", "src/app/_modules/project-management/_components/pm-project-detail/pm-backlog-tab/pm-backlog-tab.component.ts", "src/app/_modules/project-management/_components/pm-project-detail/pm-backlog-tab/pm-backlog-tab.component.html", "src/app/_modules/project-management/_components/pm-project-detail/pm-bugs-tab/pm-bugs-tab.component.ts", "src/app/_modules/project-management/_components/pm-project-detail/pm-bugs-tab/pm-bugs-tab.component.html", "src/app/_modules/project-management/_components/pm-project-detail/pm-changelog-tab/pm-changelog-tab.component.ts", "src/app/_modules/project-management/_components/pm-project-detail/pm-changelog-tab/pm-changelog-tab.component.html", "src/app/_modules/project-management/_components/pm-project-detail/pm-test-error-reports-tab/pm-test-error-reports-tab.component.ts", "src/app/_modules/project-management/_components/pm-project-detail/pm-test-error-reports-tab/pm-test-error-reports-tab.component.html", "src/app/_modules/project-management/_components/pm-project-detail/pm-reviews-tab/pm-reviews-tab.component.ts", "src/app/_modules/project-management/_components/pm-project-detail/pm-reviews-tab/pm-reviews-tab.component.html", "src/app/_modules/project-management/_components/pm-project-detail/pm-user-input-tab/pm-user-input-tab.component.ts", "src/app/_modules/project-management/_components/pm-project-detail/pm-user-input-tab/pm-user-input-tab.component.html", "src/app/_modules/project-management/_components/pm-project-detail/pm-detail.component.ts", "src/app/_modules/project-management/_components/pm-project-detail/pm-detail.component.html", "src/app/_modules/project-management/_components/pm-group-detail/pm-group-detail.component.ts", "src/app/_modules/project-management/_components/pm-group-detail/pm-group-detail.component.html", "src/app/_modules/project-management/_components/pm-agent-reports/pm-agent-reports.component.ts", "src/app/_modules/project-management/_components/pm-agent-reports/pm-agent-reports.component.html", "src/app/_modules/project-management/project-management.module.ts"],
4
- "sourcesContent": ["import { Component, computed, EventEmitter, inject, OnInit, Output, signal, Signal } from '@angular/core';\n\nimport { PM_DiscoveredProject_Response } from '../../../../_models/server-index';\nimport { ProjectManagement_DataService } from '../../_services/data-services/project-management.data-service';\nimport { Set_General_DataService } from '../../../config/_modules/settings/_services/data-services/global-settings/set-general.data-service';\n\n/** Wizard lépések. */\ntype PM_DiscoverWizardStep = 'scan' | 'select' | 'confirm' | 'done';\n\n/**\n * Project Discovery Wizard – workspace scan és új projektek felvétele.\n * Három lépés: 1) Scan path megadása, 2) Projektek kiválasztása, 3) Megerősítés + létrehozás.\n */\n@Component({\n selector: 'app-pm-discover-wizard',\n templateUrl: './pm-discover-wizard.component.html',\n})\n/** PM_DiscoverWizard_Component class. */\nexport class PM_DiscoverWizard_Component implements OnInit {\n\n @Output() readonly closed: EventEmitter<void> = new EventEmitter<void>();\n\n readonly pm_DS: ProjectManagement_DataService =\n inject(ProjectManagement_DataService);\n\n private readonly settingsGeneral_DS: Set_General_DataService =\n inject(Set_General_DataService);\n\n /** Aktuális wizard lépés. */\n readonly step_$ = signal<PM_DiscoverWizardStep>('scan');\n\n /** Scan path mező értéke. */\n readonly scanPath_$ = signal<string>('');\n\n /** Kiválasztott (checkbox) felfedezett projektek indexei. */\n readonly selectedIndexes_$ = signal<Set<number>>(new Set<number>());\n\n /** Mentés folyamatban (confirm lépésnél). */\n readonly isSaving_$ = signal<boolean>(false);\n\n /** Mentési hiba. */\n readonly saveError_$ = signal<unknown | null>(null);\n\n /** Létrehozott projektek száma (done lépésnél). */\n readonly createdCount_$ = signal<number>(0);\n\n /** Csak az új (nem regisztrált) felfedezett projektek. */\n readonly newProjects_$: Signal<PM_DiscoveredProject_Response[]> = computed(\n (): PM_DiscoveredProject_Response[] =>\n this.pm_DS.discoveredProjects_$().filter(\n (p: PM_DiscoveredProject_Response): boolean => !p.isAlreadyRegistered,\n ),\n );\n\n /** Már regisztrált projektek (info megjelenítéshez). */\n readonly existingProjects_$: Signal<PM_DiscoveredProject_Response[]> = computed(\n (): PM_DiscoveredProject_Response[] =>\n this.pm_DS.discoveredProjects_$().filter(\n (p: PM_DiscoveredProject_Response): boolean => p.isAlreadyRegistered,\n ),\n );\n\n /** A kiválasztott új projektek listája. */\n readonly selectedProjects_$: Signal<PM_DiscoveredProject_Response[]> = computed(\n (): PM_DiscoveredProject_Response[] => {\n const indexes: Set<number> = this.selectedIndexes_$();\n return this.newProjects_$().filter(\n (_p: PM_DiscoveredProject_Response, i: number): boolean => indexes.has(i),\n );\n },\n );\n\n /** Alapértelmezett workspace path betöltése a rendszer beállításaiból. */\n ngOnInit(): void {\n void this.settingsGeneral_DS.loadDefaultWorkspacePath().then((): void => {\n const path: string = this.settingsGeneral_DS.defaultWorkspacePath_$();\n if (!this.scanPath_$().trim() && path) {\n this.scanPath_$.set(path);\n }\n });\n }\n\n /** Scan indítása a megadott path-szal. */\n async handleScan(): Promise<void> {\n const scanPath: string = this.scanPath_$().trim();\n if (!scanPath) {\n return;\n }\n await this.pm_DS.discoverProjects(scanPath);\n this.selectedIndexes_$.set(new Set<number>());\n // Ha van eredmény, lépünk a select-re; ha nincs, ott maradunk (error/empty mutatja).\n if (this.pm_DS.discoveredProjects_$().length > 0) {\n this.step_$.set('select');\n }\n }\n\n /** Összes új projekt kiválasztása / kijelölés törlése. */\n toggleSelectAll(): void {\n const allNew: PM_DiscoveredProject_Response[] = this.newProjects_$();\n const current: Set<number> = this.selectedIndexes_$();\n if (current.size === allNew.length) {\n this.selectedIndexes_$.set(new Set<number>());\n } else {\n const allIndexes: Set<number> = new Set<number>(\n allNew.map((_p: PM_DiscoveredProject_Response, i: number): number => i),\n );\n this.selectedIndexes_$.set(allIndexes);\n }\n }\n\n /** Egy projekt kiválasztása / kijelölés törlése. */\n toggleProject(index: number): void {\n const current: Set<number> = new Set<number>(this.selectedIndexes_$());\n if (current.has(index)) {\n current.delete(index);\n } else {\n current.add(index);\n }\n this.selectedIndexes_$.set(current);\n }\n\n /** Továbblépés a confirm lépésre. */\n goToConfirm(): void {\n if (this.selectedProjects_$().length > 0) {\n this.step_$.set('confirm');\n }\n }\n\n /** Visszalépés a select lépésre. */\n goBackToSelect(): void {\n this.step_$.set('select');\n }\n\n /** Visszalépés a scan lépésre. */\n goBackToScan(): void {\n this.step_$.set('scan');\n this.pm_DS.clearDiscovery();\n this.selectedIndexes_$.set(new Set<number>());\n }\n\n /** Kiválasztott projektek létrehozása. */\n async handleCreate(): Promise<void> {\n const projects: PM_DiscoveredProject_Response[] = this.selectedProjects_$();\n if (!projects.length) {\n return;\n }\n this.isSaving_$.set(true);\n this.saveError_$.set(null);\n try {\n await this.pm_DS.createDiscoveredProjects(projects);\n this.createdCount_$.set(projects.length);\n this.step_$.set('done');\n } catch (err: unknown) {\n this.saveError_$.set(err);\n } finally {\n this.isSaving_$.set(false);\n }\n }\n\n /** Wizard bezárása. */\n handleClose(): void {\n this.pm_DS.clearDiscovery();\n this.closed.emit();\n }\n}\n", "<div class=\"rounded-lg bg-neutral-800/60 border border-ccapAccent/40 p-5 mb-6\">\n\n <!-- Header -->\n <div class=\"flex items-center justify-between mb-4\">\n <h2 class=\"text-base font-semibold text-neutral-200\">\n @switch (step_$()) {\n @case ('scan') { Discover Projects }\n @case ('select') { Select New Projects }\n @case ('confirm') { Confirm Registration }\n @case ('done') { Discovery Complete }\n }\n </h2>\n\n <!-- Step indicator -->\n <div class=\"flex items-center gap-2 text-xs text-neutral-500\">\n <span [class]=\"step_$() === 'scan' ? 'text-ccapAccent font-semibold' : 'text-neutral-500'\">1. Scan</span>\n <svg class=\"w-3 h-3\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n </svg>\n <span [class]=\"step_$() === 'select' ? 'text-ccapAccent font-semibold' : 'text-neutral-500'\">2. Select</span>\n <svg class=\"w-3 h-3\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n </svg>\n <span [class]=\"step_$() === 'confirm' ? 'text-ccapAccent font-semibold' : 'text-neutral-500'\">3. Confirm</span>\n </div>\n </div>\n\n <!-- ========== STEP 1: SCAN ========== -->\n @if (step_$() === 'scan') {\n <div class=\"flex flex-col gap-3 max-w-2xl\">\n <p class=\"text-sm text-neutral-400\">\n Add meg a workspace mappát, ahol a projektjeid találhatók. A rendszer rekurzívan megkeresi a\n <span class=\"text-neutral-300 font-mono text-xs\">.git</span> könyvtárat tartalmazó mappákat\n (git repository-kat), és kiegészítő adatokat nyer ki a\n <span class=\"text-neutral-300 font-mono text-xs\">package.json</span>-ből ha elérhető.\n </p>\n <div class=\"flex flex-col gap-1\">\n <label class=\"text-xs text-neutral-400 font-medium\">Scan path *</label>\n <input type=\"text\"\n [value]=\"scanPath_$()\"\n (input)=\"scanPath_$.set($any($event.target).value)\"\n placeholder=\"C:/Projects vagy /home/user/projects\"\n class=\"bg-neutral-900 border border-neutral-600 rounded-md px-3 py-2 text-sm text-neutral-100\n placeholder:text-neutral-600 focus:outline-none focus:border-ccapAccent transition-colors\n font-mono\" />\n </div>\n\n @if (pm_DS.discoveryError_$()) {\n <p class=\"text-red-400 text-xs\">Scan hiba - ellenorizd az utvonalat.</p>\n }\n\n @if (!pm_DS.discoveryLoading_$() && pm_DS.discoveredProjects_$().length === 0 && !pm_DS.discoveryError_$() && scanPath_$().trim()) {\n <!-- Ez csak akkor jelenik meg, ha scan utan nincs eredmeny (scan lefutott, nincs projekt). -->\n }\n\n <div class=\"flex gap-3 pt-1\">\n <button type=\"button\"\n (click)=\"handleScan()\"\n [disabled]=\"pm_DS.discoveryLoading_$() || !scanPath_$().trim()\"\n class=\"px-4 py-2 border border-ccapAccent rounded-lg text-ccapAccent text-sm font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (pm_DS.discoveryLoading_$()) { Scanning... } @else { Scan }\n </button>\n <button type=\"button\"\n (click)=\"handleClose()\"\n class=\"px-4 py-2 border border-neutral-600 rounded-lg text-neutral-400 text-sm\n hover:border-neutral-400 hover:text-neutral-200 transition-colors duration-200\">\n Cancel\n </button>\n </div>\n </div>\n }\n\n <!-- ========== STEP 2: SELECT ========== -->\n @if (step_$() === 'select') {\n <div class=\"flex flex-col gap-4 max-w-3xl\">\n\n <!-- Summary -->\n <div class=\"flex gap-4 text-sm\">\n <span class=\"text-green-400\">\n {{ newProjects_$().length }} new\n </span>\n <span class=\"text-neutral-500\">\n {{ existingProjects_$().length }} already registered\n </span>\n </div>\n\n <!-- New projects (selectable) -->\n @if (newProjects_$().length > 0) {\n <div class=\"flex flex-col gap-1\">\n <div class=\"flex items-center gap-2 mb-2\">\n <button type=\"button\"\n (click)=\"toggleSelectAll()\"\n class=\"text-xs text-ccapAccent hover:text-white transition-colors\">\n @if (selectedIndexes_$().size === newProjects_$().length) { Deselect all } @else { Select all }\n </button>\n </div>\n\n <div class=\"flex flex-col gap-2 max-h-80 overflow-y-auto pr-1\">\n @for (project of newProjects_$(); track project.localPath; let i = $index) {\n <button type=\"button\"\n (click)=\"toggleProject(i)\"\n class=\"text-left flex items-start gap-3 rounded-md p-3 border transition-all duration-150\"\n [class]=\"selectedIndexes_$().has(i)\n ? 'bg-ccapAccent/10 border-ccapAccent/60'\n : 'bg-neutral-900/50 border-neutral-700 hover:border-neutral-500'\">\n <!-- Checkbox -->\n <div class=\"shrink-0 mt-0.5 w-4 h-4 rounded border flex items-center justify-center\"\n [class]=\"selectedIndexes_$().has(i)\n ? 'border-ccapAccent bg-ccapAccent'\n : 'border-neutral-500'\">\n @if (selectedIndexes_$().has(i)) {\n <svg class=\"w-3 h-3 text-white\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\">\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n }\n </div>\n\n <!-- Project info -->\n <div class=\"flex flex-col gap-0.5 min-w-0\">\n <span class=\"text-sm font-semibold text-neutral-100\">{{ project.name }}</span>\n <span class=\"text-xs font-mono text-neutral-500 truncate\">{{ project.localPath }}</span>\n @if (project.description) {\n <span class=\"text-xs text-neutral-400 line-clamp-1\">{{ project.description }}</span>\n }\n <div class=\"flex gap-2 mt-0.5\">\n @if (project.hasGitRepo) {\n <span class=\"text-[10px] px-1.5 py-0.5 rounded bg-green-900/40 text-green-300 border border-green-800\">\n git\n </span>\n }\n @if (project.hasPackageJson) {\n <span class=\"text-[10px] px-1.5 py-0.5 rounded bg-blue-900/40 text-blue-300 border border-blue-800\">\n package.json\n </span>\n }\n @if (project.githubRepoUrl) {\n <span class=\"text-[10px] px-1.5 py-0.5 rounded bg-purple-900/40 text-purple-300 border border-purple-800\">\n GitHub\n </span>\n }\n </div>\n </div>\n </button>\n }\n </div>\n </div>\n } @else {\n <p class=\"text-neutral-500 text-sm\">Nem talaltunk uj projektet a megadott utvonalban.</p>\n }\n\n <!-- Already registered (info only) -->\n @if (existingProjects_$().length > 0) {\n <div class=\"border-t border-neutral-700 pt-3 mt-1\">\n <p class=\"text-xs text-neutral-500 mb-2\">Already registered:</p>\n <div class=\"flex flex-col gap-1\">\n @for (project of existingProjects_$(); track project.localPath) {\n <div class=\"flex items-center gap-2 text-xs text-neutral-600 py-1\">\n <span class=\"text-neutral-500\">{{ project.name }}</span>\n <span class=\"font-mono truncate\">{{ project.localPath }}</span>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Actions -->\n <div class=\"flex gap-3 pt-1\">\n <button type=\"button\"\n (click)=\"goToConfirm()\"\n [disabled]=\"selectedProjects_$().length === 0\"\n class=\"px-4 py-2 border border-ccapAccent rounded-lg text-ccapAccent text-sm font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n Next ({{ selectedProjects_$().length }})\n </button>\n <button type=\"button\"\n (click)=\"goBackToScan()\"\n class=\"px-4 py-2 border border-neutral-600 rounded-lg text-neutral-400 text-sm\n hover:border-neutral-400 hover:text-neutral-200 transition-colors duration-200\">\n Back\n </button>\n <button type=\"button\"\n (click)=\"handleClose()\"\n class=\"px-4 py-2 border border-neutral-600 rounded-lg text-neutral-400 text-sm\n hover:border-neutral-400 hover:text-neutral-200 transition-colors duration-200\">\n Cancel\n </button>\n </div>\n </div>\n }\n\n <!-- ========== STEP 3: CONFIRM ========== -->\n @if (step_$() === 'confirm') {\n <div class=\"flex flex-col gap-4 max-w-3xl\">\n <p class=\"text-sm text-neutral-400\">\n {{ selectedProjects_$().length }} projekt lesz regisztralva:\n </p>\n\n <div class=\"flex flex-col gap-2 max-h-60 overflow-y-auto pr-1\">\n @for (project of selectedProjects_$(); track project.localPath) {\n <div class=\"flex flex-col gap-0.5 rounded-md p-3 bg-neutral-900/50 border border-neutral-700\">\n <span class=\"text-sm font-semibold text-neutral-100\">{{ project.name }}</span>\n <span class=\"text-xs font-mono text-neutral-500\">{{ project.localPath }}</span>\n @if (project.description) {\n <span class=\"text-xs text-neutral-400\">{{ project.description }}</span>\n }\n @if (project.githubRepoUrl) {\n <span class=\"text-xs font-mono text-purple-400\">{{ project.githubRepoUrl }}</span>\n }\n </div>\n }\n </div>\n\n @if (saveError_$()) {\n <p class=\"text-red-400 text-xs\">Letrehozasi hiba - kerjuk probald ujra.</p>\n }\n\n <div class=\"flex gap-3 pt-1\">\n <button type=\"button\"\n (click)=\"handleCreate()\"\n [disabled]=\"isSaving_$()\"\n class=\"px-4 py-2 border border-ccapAccent rounded-lg text-ccapAccent text-sm font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (isSaving_$()) { Creating... } @else { Create {{ selectedProjects_$().length }} projects }\n </button>\n <button type=\"button\"\n (click)=\"goBackToSelect()\"\n [disabled]=\"isSaving_$()\"\n class=\"px-4 py-2 border border-neutral-600 rounded-lg text-neutral-400 text-sm\n hover:border-neutral-400 hover:text-neutral-200 transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n Back\n </button>\n </div>\n </div>\n }\n\n <!-- ========== STEP 4: DONE ========== -->\n @if (step_$() === 'done') {\n <div class=\"flex flex-col gap-4 max-w-2xl\">\n <div class=\"flex items-center gap-3\">\n <div class=\"w-8 h-8 rounded-full bg-green-900/40 border border-green-700 flex items-center justify-center\">\n <svg class=\"w-4 h-4 text-green-400\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\">\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <p class=\"text-sm text-green-300\">\n {{ createdCount_$() }} projekt sikeresen letrehozva.\n </p>\n </div>\n <button type=\"button\"\n (click)=\"handleClose()\"\n class=\"self-start px-4 py-2 border border-ccapAccent rounded-lg text-ccapAccent text-sm font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\">\n Close\n </button>\n </div>\n }\n</div>\n", "import { Component } from '@angular/core';\n\n/**\n * Project Management shell komponens – router outlet a PM aloldalakhoz.\n */\n@Component({\n selector: 'app-pm-shell',\n template: '<router-outlet></router-outlet>',\n standalone: false,\n})\n/** PM_Shell_Component class. */\nexport class PM_Shell_Component {}\n", "import { Component, computed, inject, OnInit, signal, Signal } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { PM_, PM_Group_DataModel } from '../../../../_models/server-index';\nimport { ProjectManagement_DataService } from '../../_services/data-services/project-management.data-service';\n\n/**\n * Project Management – projektek listája.\n * Betölti az összes aktív projektet; navigál a projekt részletre.\n */\n@Component({\n selector: 'app-pm-projects-list',\n templateUrl: './pm-list.component.html',\n})\n/** PM_List_Component class. */\nexport class PM_List_Component implements OnInit {\n\n readonly pm_DS: ProjectManagement_DataService =\n inject(ProjectManagement_DataService);\n\n private readonly router: Router = inject(Router);\n\n /** Discover wizard látható-e. */\n readonly isDiscoverWizardOpen_$ = signal<boolean>(false);\n\n /** Új projekt form látható-e. */\n readonly isNewProjectFormOpen_$ = signal<boolean>(false);\n\n /** Új projekt form – név mező értéke. */\n readonly newProjectName_$ = signal<string>('');\n\n /** Új projekt form – GitHub URL mező értéke. */\n readonly newProjectGithubUrl_$ = signal<string>('');\n\n /** Új projekt form – leírás mező értéke. */\n readonly newProjectDescription_$ = signal<string>('');\n\n /** Mentés folyamatban. */\n readonly isSaving_$ = signal<boolean>(false);\n\n /** Mentési hiba (null = nincs). */\n readonly saveError_$ = signal<unknown | null>(null);\n\n /** Törlés megerősítő modal nyitva-e. */\n readonly isDeleteModalOpen_$ = signal<boolean>(false);\n\n /** Törlésre kijelölt projekt. */\n readonly projectToDelete_$ = signal<PM_ | null>(null);\n\n /** Törlés folyamatban. */\n readonly isDeleting_$ = signal<boolean>(false);\n\n /** Törlési hiba. */\n readonly deleteError_$ = signal<unknown | null>(null);\n\n /** Csoport létrehozó form nyitva-e. */\n readonly isGroupFormOpen_$ = signal<boolean>(false);\n\n /** Új csoport – név. */\n readonly newGroupName_$ = signal<string>('');\n\n /** Új csoport – mappa útvonal. */\n readonly newGroupScanPath_$ = signal<string>('');\n\n /** Csoport mentés folyamatban. */\n readonly isGroupSaving_$ = signal<boolean>(false);\n\n /** Csoport mentési hiba. */\n readonly groupSaveError_$ = signal<unknown | null>(null);\n\n /** Cross-instance szekció nyitva-e. */\n readonly isCrossInstanceOpen_$ = signal<boolean>(false);\n\n /** Cross-instance: más instanc projektjei (saját instanc kiszűrve). */\n readonly remoteProjects_$: Signal<PM_[]> = computed((): PM_[] => {\n const currentCcapId: string | null = this.pm_DS.currentCcapId_$();\n const all: PM_[] = this.pm_DS.crossInstanceProjects_$();\n if (!currentCcapId) {\n return all;\n }\n return all.filter((p: PM_): boolean => p.ccapId !== currentCcapId);\n });\n\n /** Klónozás: target mappa. */\n readonly cloneTargetDir_$ = signal<string>('');\n\n /** Klónozásra kijelölt projekt ID. */\n readonly cloneSourceProjectId_$ = signal<string | null>(null);\n\n ngOnInit(): void {\n void this.pm_DS.loadProjects();\n void this.pm_DS.loadGroups();\n }\n\n /** Éppen git refresh-elő projekt ID-ja (null = nincs). */\n readonly gitRefreshingProjectId_$ = signal<string | null>(null);\n\n /** Sync All indítása. */\n handleSyncAll(): void {\n void this.pm_DS.syncAllProjects();\n }\n\n /** Egy projekt git állapotának gyors frissítése (csak git, nem teljes sync). */\n async handleGitRefresh(event: Event, project: PM_): Promise<void> {\n event.stopPropagation();\n if (!project._id) {\n return;\n }\n this.gitRefreshingProjectId_$.set(project._id);\n try {\n await this.pm_DS.refreshGitStatus(project._id);\n } finally {\n this.gitRefreshingProjectId_$.set(null);\n }\n }\n\n /** Discover wizard megnyitása / bezárása. */\n toggleDiscoverWizard(): void {\n this.isDiscoverWizardOpen_$.update((open: boolean): boolean => !open);\n if (this.isDiscoverWizardOpen_$()) {\n this.isNewProjectFormOpen_$.set(false);\n }\n }\n\n /** Discover wizard bezárása (wizard output event). */\n handleDiscoverWizardClosed(): void {\n this.isDiscoverWizardOpen_$.set(false);\n }\n\n /** Új projekt form megnyitása / bezárása. */\n toggleNewProjectForm(): void {\n this.isNewProjectFormOpen_$.update((open: boolean): boolean => !open);\n if (!this.isNewProjectFormOpen_$()) {\n this.resetForm();\n }\n }\n\n /** Projekt részlet megnyitása. */\n openProject(project: PM_): void {\n void this.router.navigate(['/project-management/projects', project._id]);\n }\n\n /** Új projekt mentése. */\n async handleCreateProject(): Promise<void> {\n const name: string = this.newProjectName_$().trim();\n if (!name) {\n return;\n }\n this.isSaving_$.set(true);\n this.saveError_$.set(null);\n try {\n const project: PM_ = await this.pm_DS.createProject({\n name: name,\n githubRepoUrl: this.newProjectGithubUrl_$().trim() || undefined,\n description: this.newProjectDescription_$().trim() || undefined,\n isActive: true,\n });\n this.isNewProjectFormOpen_$.set(false);\n this.resetForm();\n void this.router.navigate(['/project-management/projects', project._id]);\n } catch (err: unknown) {\n this.saveError_$.set(err);\n } finally {\n this.isSaving_$.set(false);\n }\n }\n\n /** Törlés megerősítő modal megnyitása (kártya törlés gomb). */\n handleDeleteClick(event: Event, project: PM_): void {\n event.stopPropagation();\n this.projectToDelete_$.set(project);\n this.deleteError_$.set(null);\n this.isDeleteModalOpen_$.set(true);\n }\n\n /** Törlés megerősítő modal bezárása. */\n handleDeleteModalDismissed(): void {\n this.isDeleteModalOpen_$.set(false);\n this.projectToDelete_$.set(null);\n this.deleteError_$.set(null);\n }\n\n /** Törlés végrehajtása (megerősítés után). */\n async handleDeleteConfirmed(): Promise<void> {\n const project: PM_ | null = this.projectToDelete_$();\n if (!project?._id) {\n return;\n }\n this.isDeleting_$.set(true);\n this.deleteError_$.set(null);\n try {\n await this.pm_DS.archiveProject(project._id);\n this.isDeleteModalOpen_$.set(false);\n this.projectToDelete_$.set(null);\n } catch (err: unknown) {\n this.deleteError_$.set(err);\n } finally {\n this.isDeleting_$.set(false);\n }\n }\n\n // ---------------------------------------------------------------------------\n // Project Groups\n // ---------------------------------------------------------------------------\n\n /** Csoport form toggle. */\n toggleGroupForm(): void {\n this.isGroupFormOpen_$.update((open: boolean): boolean => !open);\n if (!this.isGroupFormOpen_$()) {\n this.resetGroupForm();\n }\n }\n\n /** Csoport létrehozása. */\n async handleCreateGroup(): Promise<void> {\n const name: string = this.newGroupName_$().trim();\n const scanPath: string = this.newGroupScanPath_$().trim();\n if (!name || !scanPath) {\n return;\n }\n this.isGroupSaving_$.set(true);\n this.groupSaveError_$.set(null);\n try {\n await this.pm_DS.createGroup({ name: name, scanPath: scanPath });\n this.isGroupFormOpen_$.set(false);\n this.resetGroupForm();\n } catch (err: unknown) {\n this.groupSaveError_$.set(err);\n } finally {\n this.isGroupSaving_$.set(false);\n }\n }\n\n /** Csoport törlése (archiválás). */\n async handleArchiveGroup(event: Event, group: PM_Group_DataModel): Promise<void> {\n event.stopPropagation();\n if (!group._id) {\n return;\n }\n await this.pm_DS.archiveGroup(group._id);\n }\n\n /** Csoport részlet nézet megnyitása. */\n handleOpenGroupDetail(event: Event, group: PM_Group_DataModel): void {\n event.stopPropagation();\n void this.router.navigate(['/project-management/groups', group._id]);\n }\n\n /** Csoport form visszaállítása. */\n private resetGroupForm(): void {\n this.newGroupName_$.set('');\n this.newGroupScanPath_$.set('');\n this.groupSaveError_$.set(null);\n }\n\n // ---------------------------------------------------------------------------\n // Cross-Instance\n // ---------------------------------------------------------------------------\n\n /** Cross-instance szekció toggle — első megnyitáskor betölti az adatokat. */\n toggleCrossInstance(): void {\n this.isCrossInstanceOpen_$.update((open: boolean): boolean => !open);\n if (this.isCrossInstanceOpen_$() && this.pm_DS.crossInstanceProjects_$().length === 0) {\n void this.pm_DS.loadCrossInstanceProjects();\n }\n }\n\n /** Cross-instance adatok frissítése. */\n handleCrossInstanceRefresh(): void {\n void this.pm_DS.loadCrossInstanceProjects();\n }\n\n /** Klónozás indítása egy remote projektből. */\n handleStartClone(projectId: string): void {\n this.cloneSourceProjectId_$.set(projectId);\n this.cloneTargetDir_$.set('');\n }\n\n /** Klónozás megszakítása. */\n handleCancelClone(): void {\n this.cloneSourceProjectId_$.set(null);\n this.cloneTargetDir_$.set('');\n }\n\n /** Klónozás végrehajtása. */\n async handleConfirmClone(): Promise<void> {\n const sourceId: string | null = this.cloneSourceProjectId_$();\n const targetDir: string = this.cloneTargetDir_$().trim();\n if (!sourceId || !targetDir) {\n return;\n }\n await this.pm_DS.cloneProject({\n sourceProjectId: sourceId,\n targetParentDir: targetDir,\n });\n if (!this.pm_DS.cloneError_$()) {\n this.cloneSourceProjectId_$.set(null);\n this.cloneTargetDir_$.set('');\n }\n }\n\n /** Form mezők visszaállítása. */\n private resetForm(): void {\n this.newProjectName_$.set('');\n this.newProjectGithubUrl_$.set('');\n this.newProjectDescription_$.set('');\n this.saveError_$.set(null);\n }\n}\n", "<div class=\"flex flex-col min-h-full text-neutral-100 p-4 gt-xs:p-6\">\n <app-s-page-header [title]=\"'Project Management'\" [subtitle]=\"'Projektek kezelése és követése'\">\n <div class=\"flex flex-wrap gap-2\">\n <button type=\"button\"\n (click)=\"handleSyncAll()\"\n [disabled]=\"pm_DS.syncLoading_$()\"\n class=\"shrink-0 px-3 py-2.5 gt-xs:px-4 border border-neutral-500 rounded-lg text-neutral-300\n text-xs gt-xs:text-sm font-semibold hover:border-neonCyan hover:text-neonCyan\n transition-colors duration-200 disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (pm_DS.syncLoading_$()) { Syncing... } @else { Sync All }\n </button>\n <button type=\"button\"\n (click)=\"toggleDiscoverWizard()\"\n class=\"shrink-0 px-3 py-2.5 gt-xs:px-4 border border-neutral-500 rounded-lg text-neutral-300\n text-xs gt-xs:text-sm font-semibold hover:border-ccapAccent hover:text-ccapAccent\n hover:shadow-neon-glow-accent transition-colors duration-200\">\n @if (isDiscoverWizardOpen_$()) { Mégse } @else { Discover }\n </button>\n <button type=\"button\"\n (click)=\"toggleNewProjectForm()\"\n class=\"shrink-0 px-3 py-2.5 gt-xs:px-4 border border-ccapAccent rounded-lg text-ccapAccent\n text-xs gt-xs:text-sm font-semibold hover:bg-ccapAccent hover:text-white\n hover:shadow-neon-glow-accent transition-colors duration-200\">\n @if (isNewProjectFormOpen_$()) { Mégse } @else { + Új projekt }\n </button>\n </div>\n </app-s-page-header>\n\n <!-- Discover wizard -->\n @if (isDiscoverWizardOpen_$()) {\n <app-pm-discover-wizard (closed)=\"handleDiscoverWizardClosed()\"></app-pm-discover-wizard>\n }\n\n <!-- Új projekt form -->\n @if (isNewProjectFormOpen_$()) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-ccapAccent/40 p-4 gt-xs:p-5 mb-6\">\n <h2 class=\"text-base font-semibold text-neutral-200 mb-4\">Új projekt</h2>\n <div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-col gap-1\">\n <label class=\"text-xs text-neutral-400 font-medium\">Név *</label>\n <input type=\"text\"\n [value]=\"newProjectName_$()\"\n (input)=\"newProjectName_$.set($any($event.target).value)\"\n placeholder=\"Projekt neve\"\n class=\"bg-neutral-900 border border-neutral-600 rounded-md px-3 py-2.5 text-sm text-neutral-100\n placeholder:text-neutral-600 focus:outline-none focus:border-ccapAccent transition-colors\" />\n </div>\n <div class=\"flex flex-col gap-1\">\n <label class=\"text-xs text-neutral-400 font-medium\">GitHub repo URL</label>\n <input type=\"text\"\n [value]=\"newProjectGithubUrl_$()\"\n (input)=\"newProjectGithubUrl_$.set($any($event.target).value)\"\n placeholder=\"https://github.com/owner/repo\"\n class=\"bg-neutral-900 border border-neutral-600 rounded-md px-3 py-2.5 text-sm text-neutral-100\n placeholder:text-neutral-600 focus:outline-none focus:border-ccapAccent transition-colors\" />\n </div>\n <div class=\"flex flex-col gap-1\">\n <label class=\"text-xs text-neutral-400 font-medium\">Leírás</label>\n <textarea [value]=\"newProjectDescription_$()\"\n (input)=\"newProjectDescription_$.set($any($event.target).value)\"\n placeholder=\"Rövid leírás…\"\n rows=\"2\"\n class=\"bg-neutral-900 border border-neutral-600 rounded-md px-3 py-2.5 text-sm text-neutral-100\n placeholder:text-neutral-600 focus:outline-none focus:border-ccapAccent transition-colors\n resize-none\"></textarea>\n </div>\n @if (saveError_$()) {\n <p class=\"text-red-400 text-xs\">Mentési hiba – kérjük próbálja újra.</p>\n }\n <div class=\"flex gap-3 pt-1\">\n <button type=\"button\"\n (click)=\"handleCreateProject()\"\n [disabled]=\"isSaving_$() || !newProjectName_$().trim()\"\n class=\"px-4 py-2.5 border border-ccapAccent rounded-lg text-ccapAccent text-sm font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (isSaving_$()) { Mentés… } @else { Létrehozás }\n </button>\n <button type=\"button\"\n (click)=\"toggleNewProjectForm()\"\n class=\"px-4 py-2.5 border border-neutral-600 rounded-lg text-neutral-400 text-sm\n hover:border-neutral-400 hover:text-neutral-200 transition-colors duration-200\">\n Mégse\n </button>\n </div>\n </div>\n </div>\n }\n\n <!-- Projekt csoportok szekció -->\n <div class=\"mb-6 gt-xs:mb-8 pb-5 gt-xs:pb-6 border-b border-neutral-700/40\">\n <div class=\"flex items-center justify-between gap-3 mb-4\">\n <h2 class=\"text-xs gt-xs:text-sm font-semibold text-neutral-400 uppercase tracking-wider\">Csoportok</h2>\n <button type=\"button\"\n (click)=\"toggleGroupForm()\"\n class=\"px-3 py-2 gt-xs:py-1.5 border border-neutral-600 rounded text-neutral-400 text-xs font-semibold\n hover:border-ccapAccent hover:text-ccapAccent transition-colors duration-200\">\n @if (isGroupFormOpen_$()) { Mégse } @else { + Új csoport }\n </button>\n </div>\n\n <!-- Csoport létrehozó form -->\n @if (isGroupFormOpen_$()) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-ccapAccent/40 p-4 mb-4\">\n <div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-col gt-xs:flex-row gap-3\">\n <div class=\"flex flex-col gap-1 flex-1\">\n <label class=\"text-xs text-neutral-400 font-medium\">Név *</label>\n <input type=\"text\"\n [value]=\"newGroupName_$()\"\n (input)=\"newGroupName_$.set($any($event.target).value)\"\n placeholder=\"Csoport neve\"\n class=\"bg-neutral-900 border border-neutral-600 rounded-md px-3 py-2.5 text-sm text-neutral-100\n placeholder:text-neutral-600 focus:outline-none focus:border-ccapAccent transition-colors\" />\n </div>\n <div class=\"flex flex-col gap-1 gt-xs:flex-[2]\">\n <label class=\"text-xs text-neutral-400 font-medium\">Mappa útvonal *</label>\n <input type=\"text\"\n [value]=\"newGroupScanPath_$()\"\n (input)=\"newGroupScanPath_$.set($any($event.target).value)\"\n placeholder=\"E:\\workspace\\projects\"\n class=\"bg-neutral-900 border border-neutral-600 rounded-md px-3 py-2.5 text-sm text-neutral-100\n placeholder:text-neutral-600 focus:outline-none focus:border-ccapAccent transition-colors\n font-mono\" />\n </div>\n </div>\n @if (groupSaveError_$()) {\n <p class=\"text-red-400 text-xs\">Csoport mentési hiba – kérjük próbáld újra.</p>\n }\n <div class=\"flex gap-3\">\n <button type=\"button\"\n (click)=\"handleCreateGroup()\"\n [disabled]=\"isGroupSaving_$() || !newGroupName_$().trim() || !newGroupScanPath_$().trim()\"\n class=\"px-4 py-2.5 border border-ccapAccent rounded text-ccapAccent text-xs font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (isGroupSaving_$()) { Mentés… } @else { Létrehozás }\n </button>\n </div>\n </div>\n </div>\n }\n\n <!-- Csoport kártyák -->\n @if (pm_DS.groups_$().length > 0) {\n <div class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3\">\n @for (group of pm_DS.groups_$(); track group._id) {\n <button type=\"button\"\n (click)=\"handleOpenGroupDetail($event, group)\"\n class=\"text-left rounded-lg bg-neutral-800/60 border border-neonDefault p-4\n hover:border-purple-500/60 hover:shadow-[0_0_8px_rgba(168,85,247,0.15)]\n transition-all duration-200 group/card\">\n <div class=\"flex items-start justify-between gap-2 mb-1\">\n <div class=\"flex items-center gap-2 min-w-0\">\n <svg class=\"w-4 h-4 shrink-0 text-purple-400\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"\n d=\"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z\"/>\n </svg>\n <span class=\"font-medium text-neutral-100 group-hover/card:text-purple-300\n transition-colors truncate text-sm\">\n {{ group.name }}\n </span>\n </div>\n <button type=\"button\"\n (click)=\"handleArchiveGroup($event, group)\"\n class=\"shrink-0 p-2 -m-1 rounded text-neutral-600 hover:text-red-400 transition-colors\"\n title=\"Csoport törlése\">\n <svg class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\"/>\n </svg>\n </button>\n </div>\n <p class=\"text-neutral-500 text-xs font-mono truncate\">{{ group.scanPath }}</p>\n </button>\n }\n </div>\n } @else if (!isGroupFormOpen_$()) {\n <p class=\"text-neutral-600 text-xs\">Nincs csoport. Hozz létre egyet a projektek mappa alapú csoportosításához.</p>\n }\n </div>\n\n <!-- Projektek szekció fejléc -->\n <h2 class=\"text-xs gt-xs:text-sm font-semibold text-neutral-400 uppercase tracking-wider mb-4\">Projektek</h2>\n\n <app-s-content-state [isLoading]=\"pm_DS.projectsLoading_$()\"\n [error]=\"pm_DS.projectsError_$()\"\n [isEmpty]=\"pm_DS.projects_$().length === 0\"\n [emptyMessage]=\"'Még nincsenek projektek. Hozz létre egyet!'\"\n [loadingMessage]=\"'Betöltés…'\"\n (retry)=\"pm_DS.loadProjects()\">\n <div class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3 gt-xs:gap-4\">\n @for (project of pm_DS.projects_$(); track project._id) {\n <button type=\"button\"\n (click)=\"openProject(project)\"\n class=\"text-left rounded-lg bg-neutral-800/60 border border-neonDefault p-4 gt-xs:p-5\n hover:border-ccapAccent hover:shadow-neon-glow-accent transition-all duration-200 group\">\n <div class=\"flex items-start justify-between gap-3 mb-2\">\n <h3 class=\"text-sm gt-xs:text-base font-semibold text-neutral-100 group-hover:text-ccapAccent\n transition-colors duration-200 break-words min-w-0\">\n {{ project.name }}\n </h3>\n @if (project.isActive) {\n <span class=\"shrink-0 px-2 py-0.5 text-xs rounded bg-green-900/40 text-green-300\n border border-neonGreen\">\n aktív\n </span>\n }\n </div>\n @if (project.description) {\n <p class=\"text-neutral-400 text-xs gt-xs:text-sm mb-3 line-clamp-2\">{{ project.description }}</p>\n }\n <!-- Git & version badges -->\n @if (project.gitBranch || project.packageVersion) {\n <div class=\"flex flex-wrap items-center gap-1.5 gt-xs:gap-2 mb-2\">\n @if (project.gitBranch) {\n <span class=\"px-2 py-1 text-[11px] gt-xs:text-[10px] gt-xs:px-1.5 gt-xs:py-0.5 rounded border\"\n [class]=\"project.gitStatus === 'clean'\n ? 'bg-green-900/30 text-green-300 border-green-800'\n : project.gitStatus === 'dirty'\n ? 'bg-yellow-900/30 text-yellow-300 border-yellow-800'\n : 'bg-neutral-800 text-neutral-400 border-neutral-700'\">\n {{ project.gitBranch }}\n </span>\n }\n @if (project.packageVersion) {\n <span class=\"px-2 py-1 text-[11px] gt-xs:text-[10px] gt-xs:px-1.5 gt-xs:py-0.5\n rounded bg-blue-900/30 text-blue-300 border border-blue-800\">\n v{{ project.packageVersion }}\n </span>\n }\n @if (project.lastSyncStatus) {\n <span class=\"px-2 py-1 text-[11px] gt-xs:text-[10px] gt-xs:px-1.5 gt-xs:py-0.5 rounded border\"\n [class]=\"project.lastSyncStatus === 'success'\n ? 'bg-green-900/20 text-green-400 border-green-800/50'\n : project.lastSyncStatus === 'partial'\n ? 'bg-yellow-900/20 text-yellow-400 border-yellow-800/50'\n : 'bg-red-900/20 text-red-400 border-red-800/50'\">\n synced\n </span>\n }\n <!-- Git refresh gomb -->\n <button type=\"button\"\n (click)=\"handleGitRefresh($event, project)\"\n [disabled]=\"gitRefreshingProjectId_$() === project._id\"\n class=\"px-2 py-1 text-[11px] gt-xs:text-[10px] gt-xs:px-1.5 gt-xs:py-0.5\n rounded border border-neutral-700 text-neutral-500\n hover:border-neonCyan hover:text-neonCyan transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\"\n title=\"Git status frissítés\">\n @if (gitRefreshingProjectId_$() === project._id) { ... } @else { git }\n </button>\n </div>\n }\n @if (project.githubRepoUrl) {\n <p class=\"text-neutral-500 text-xs font-mono truncate\">{{ project.githubRepoUrl }}</p>\n }\n <!-- Törlés gomb -->\n <div class=\"flex justify-end mt-3 pt-2 border-t border-neutral-700/40\">\n <button type=\"button\"\n (click)=\"handleDeleteClick($event, project)\"\n class=\"px-3 py-1.5 text-xs rounded border border-transparent text-neutral-500\n hover:border-red-500/50 hover:text-red-400 transition-colors duration-200\"\n title=\"Projekt törlése\">\n Törlés\n </button>\n </div>\n </button>\n }\n </div>\n </app-s-content-state>\n\n <!-- Cross-Instance szekció -->\n <div class=\"mt-6 gt-xs:mt-8 border-t border-neutral-700/40 pt-5 gt-xs:pt-6\">\n <div class=\"flex items-center justify-between gap-3 mb-3\">\n <button type=\"button\"\n (click)=\"toggleCrossInstance()\"\n class=\"flex items-center gap-2 text-xs gt-xs:text-sm font-semibold text-neutral-400\n uppercase tracking-wider hover:text-neutral-200 transition-colors py-1\">\n <span class=\"transition-transform duration-200\"\n [class.rotate-90]=\"isCrossInstanceOpen_$()\">\n <svg class=\"w-3.5 h-3.5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\"/>\n </svg>\n </span>\n Más instancok projektjei\n </button>\n @if (isCrossInstanceOpen_$()) {\n <button type=\"button\"\n (click)=\"handleCrossInstanceRefresh()\"\n [disabled]=\"pm_DS.crossInstanceLoading_$()\"\n class=\"px-3 py-1.5 text-xs rounded border border-neutral-600 text-neutral-400\n hover:border-neonCyan hover:text-neonCyan transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (pm_DS.crossInstanceLoading_$()) { Betöltés… } @else { Frissítés }\n </button>\n }\n </div>\n\n @if (isCrossInstanceOpen_$()) {\n @if (pm_DS.crossInstanceLoading_$() && remoteProjects_$().length === 0) {\n <p class=\"text-neutral-400 text-sm py-4\">Betöltés…</p>\n } @else if (pm_DS.crossInstanceError_$()) {\n <p class=\"text-red-400 text-sm py-4\">Nem sikerült betölteni a távoli projekteket.</p>\n } @else if (remoteProjects_$().length === 0) {\n <div class=\"rounded-lg bg-neutral-800/40 border border-neonDefault p-6 text-center\">\n <p class=\"text-neutral-500 text-sm\">Nincs más instancon regisztrált projekt.</p>\n </div>\n } @else {\n <div class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3\">\n @for (rp of remoteProjects_$(); track rp._id) {\n <div class=\"rounded-lg bg-neutral-800/40 border border-neutral-700 p-4 text-sm\">\n <div class=\"flex items-start justify-between gap-2 mb-1\">\n <h4 class=\"font-medium text-neutral-200 break-words min-w-0\">{{ rp.name }}</h4>\n <span class=\"shrink-0 px-1.5 py-0.5 text-[10px] rounded bg-purple-900/30 text-purple-300\n border border-purple-800 font-mono truncate max-w-24\"\n [title]=\"rp.ccapId ?? ''\">\n {{ (rp.ccapId ?? '').substring(0, 8) }}\n </span>\n </div>\n @if (rp.description) {\n <p class=\"text-neutral-500 text-xs mb-2 line-clamp-1\">{{ rp.description }}</p>\n }\n @if (rp.gitRemoteUrl || rp.githubRepoUrl) {\n <p class=\"text-neutral-600 text-[10px] font-mono truncate mb-2\">\n {{ rp.gitRemoteUrl || rp.githubRepoUrl }}\n </p>\n }\n <!-- Klónozás -->\n @if (cloneSourceProjectId_$() === rp._id) {\n <div class=\"flex flex-col gap-2 mt-2 pt-2 border-t border-neutral-700/40\">\n <input type=\"text\"\n [value]=\"cloneTargetDir_$()\"\n (input)=\"cloneTargetDir_$.set($any($event.target).value)\"\n placeholder=\"Cél mappa útvonala\"\n class=\"bg-neutral-900 border border-neutral-600 rounded px-3 py-2 text-xs text-neutral-100\n placeholder:text-neutral-600 focus:outline-none focus:border-neonCyan font-mono\" />\n @if (pm_DS.cloneError_$()) {\n <p class=\"text-red-400 text-xs\">Klónozás sikertelen.</p>\n }\n <div class=\"flex gap-2\">\n <button type=\"button\"\n (click)=\"handleConfirmClone()\"\n [disabled]=\"pm_DS.cloneLoading_$() || !cloneTargetDir_$().trim()\"\n class=\"px-3 py-1.5 text-xs rounded border border-neonCyan text-neonCyan\n hover:bg-neonCyan/10 transition-colors disabled:opacity-40\">\n @if (pm_DS.cloneLoading_$()) { Klónozás… } @else { Klónozás }\n </button>\n <button type=\"button\"\n (click)=\"handleCancelClone()\"\n class=\"px-3 py-1.5 text-xs rounded border border-neutral-600 text-neutral-400\n hover:border-neutral-400 transition-colors\">\n Mégse\n </button>\n </div>\n </div>\n } @else {\n <button type=\"button\"\n (click)=\"handleStartClone(rp._id!)\"\n class=\"mt-2 px-3 py-1.5 text-xs rounded border border-neutral-600 text-neutral-400\n hover:border-neonCyan hover:text-neonCyan transition-colors duration-200\">\n Klónozás ide\n </button>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n\n <!-- Törlés megerősítő modal -->\n <app-s-modal [isOpen]=\"isDeleteModalOpen_$()\"\n [title]=\"'Projekt törlése'\"\n [maxWidth]=\"'sm'\"\n [closeOnBackdropClick]=\"false\"\n (closed)=\"handleDeleteModalDismissed()\">\n @if (projectToDelete_$(); as p) {\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm text-neutral-300\">\n Biztosan törölni szeretnéd a <strong class=\"text-neutral-100\">{{ p.name }}</strong> projektet?\n </p>\n <p class=\"text-xs text-neutral-500\">\n A projekt csak az adatbázisból kerül eltávolításra. A fájlok a lemezen érintetlenek maradnak.\n </p>\n @if (deleteError_$()) {\n <p class=\"text-red-400 text-xs\">Törlés sikertelen – kérjük próbáld újra.</p>\n }\n </div>\n }\n <div modal-footer\n class=\"flex items-center justify-end gap-2 px-4 py-3 border-t border-neutral-700 shrink-0 bg-neutral-900/80\">\n <button type=\"button\"\n (click)=\"handleDeleteModalDismissed()\"\n [disabled]=\"isDeleting_$()\"\n class=\"px-4 py-2 text-xs font-semibold rounded border border-neutral-600 text-neutral-300\n hover:bg-neutral-700 transition-colors disabled:opacity-40\">\n Mégse\n </button>\n <button type=\"button\"\n (click)=\"handleDeleteConfirmed()\"\n [disabled]=\"isDeleting_$()\"\n class=\"px-4 py-2 text-xs font-semibold rounded border border-red-500/60 text-red-400\n hover:bg-red-500/10 transition-colors disabled:opacity-40\">\n @if (isDeleting_$()) { Törlés… } @else { Törlés }\n </button>\n </div>\n </app-s-modal>\n</div>\n", "import { Component, computed, inject, input, output, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { Router } from '@angular/router';\n\nimport { ClaudeCode_DataService } from '../../../external-sessions/_modules/claude-code/_services/claude-code.data-service';\nimport { ExS_InstanceContext_DataService } from '../../../external-sessions/_services/exs-instance-context.data-service';\nimport { CCAP_GlobalError_ControlService } from '../../../../_services/control-services/ccap-global-error.control-service';\nimport { S_Modal_Component } from '../../../shared/_components/s-modal/s-modal.component';\n\n/**\n * CC Session indító wizard: base prompt előnézet, opcionális user kiegészítés, majd `createSession`.\n * REQ-PM-IA-004: prompt transzparencia indulás előtt.\n */\n@Component({\n selector: 'app-pm-cc-launch-wizard',\n standalone: true,\n imports: [CommonModule, FormsModule, S_Modal_Component],\n templateUrl: './pm-cc-launch-wizard.component.html',\n})\n/** PM_CcLaunchWizard_Component class. */\nexport class PM_CcLaunchWizard_Component {\n\n /** Modal nyitva. */\n readonly isOpen = input<boolean>(false);\n\n /** Modal fejléc. */\n readonly modalTitle = input<string>('CC Session');\n\n /** `createSession.label` — rövid azonosító. */\n readonly sessionLabel = input<string>('PM');\n\n /** Workspace path (kötelező az indításhoz). */\n readonly workspacePath = input<string>('');\n\n /** Sablon prompt (read-only rész). */\n readonly basePrompt = input<string>('');\n\n readonly closed = output<void>();\n\n private readonly ccSession_DS: ClaudeCode_DataService =\n inject(ClaudeCode_DataService);\n\n private readonly router: Router = inject(Router);\n\n /**\n * Cycle 785 (REQ-INST-SES-URL-001): a navigation-hez használt aktív instance\n * kontextus (URL `/cc-session/:ccapId/:sessionId`).\n */\n private readonly peiContext_DS: ExS_InstanceContext_DataService =\n inject(ExS_InstanceContext_DataService);\n\n private readonly globalError_CS: CCAP_GlobalError_ControlService =\n inject(CCAP_GlobalError_ControlService);\n\n /** User által hozzáfűzött utasítás. */\n readonly extraInstruction_$ = signal<string>('');\n\n /** Összefűzött prompt előnézet. */\n readonly fullPromptPreview_$ = computed((): string => {\n const base: string = this.basePrompt().trimEnd();\n const extra: string = this.extraInstruction_$().trim();\n if (!extra.length) {\n return base;\n }\n if (!base.length) {\n return extra;\n }\n return `${base}\\n\\n---\\nUser additional instructions:\\n${extra}`;\n });\n\n readonly isStarting_$ = signal<boolean>(false);\n\n /**\n * Modal bezárás.\n */\n handleClose(): void {\n this.extraInstruction_$.set('');\n this.closed.emit();\n }\n\n /**\n * Extra instruction változás.\n */\n handleExtraChange(value: string): void {\n this.extraInstruction_$.set(value);\n }\n\n /**\n * CC Session létrehozása és navigáció.\n */\n async handleStartSession(): Promise<void> {\n const ws: string = this.workspacePath().trim();\n const promptText: string = this.fullPromptPreview_$().trim();\n if (!ws.length || !promptText.length || this.isStarting_$()) {\n return;\n }\n this.isStarting_$.set(true);\n try {\n const sessionId: string = await this.ccSession_DS.createSession({\n workspacePath: ws,\n label: this.sessionLabel().trim() || 'PM',\n initialPrompt: promptText,\n });\n if (sessionId.length > 0) {\n this.extraInstruction_$.set('');\n this.closed.emit();\n // Cycle 785 (REQ-INST-SES-URL-001): instance kontextus a route-ban.\n const ccapId: string = this.peiContext_DS.activeCcapId_$();\n const target: string[] = ccapId\n ? ['/cc-session', ccapId, sessionId]\n : ['/cc-session', sessionId];\n await this.router.navigate(target);\n }\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-cc-launch-wizard');\n } finally {\n this.isStarting_$.set(false);\n }\n }\n}\n", "<app-s-modal [isOpen]=\"isOpen()\"\n [title]=\"modalTitle()\"\n maxWidth=\"3xl\"\n headerBorderClass=\"border-neonCyan/30\"\n (closed)=\"handleClose()\">\n <div class=\"flex flex-col gap-4\">\n <p class=\"text-xs text-neutral-500\">\n Full text below is sent as CC Session <code class=\"text-neutral-400\">initialPrompt</code>.\n Add optional instructions at the bottom; they are appended after a separator.\n </p>\n\n @if (!workspacePath().trim().length) {\n <div class=\"rounded border border-amber-800/50 bg-amber-950/30 px-3 py-2 text-xs text-amber-200\">\n Project workspace path is missing — configure local path on the project before starting a CC Session.\n </div>\n }\n\n <div>\n <div class=\"text-xs font-semibold text-neutral-400 mb-1\">Prompt preview</div>\n <pre class=\"text-xs text-neutral-200 bg-neutral-950/80 border border-neutral-700 rounded p-3 max-h-[40vh] overflow-auto\n whitespace-pre-wrap font-mono\">{{ fullPromptPreview_$() }}</pre>\n </div>\n\n <div>\n <label class=\"text-xs text-neutral-400 block mb-1\">Additional instructions (optional)</label>\n <textarea [ngModel]=\"extraInstruction_$()\"\n (ngModelChange)=\"handleExtraChange($event)\"\n rows=\"4\"\n class=\"w-full bg-neutral-900 border border-neutral-600 rounded px-3 py-2 text-sm text-neutral-100 resize-y\">\n </textarea>\n </div>\n\n <div class=\"flex justify-end gap-2\">\n <button type=\"button\"\n (click)=\"handleClose()\"\n class=\"px-3 py-2 border border-neutral-600 rounded text-neutral-300 text-sm hover:border-neutral-400\">\n Cancel\n </button>\n <button type=\"button\"\n (click)=\"handleStartSession()\"\n [disabled]=\"!workspacePath().trim().length || !fullPromptPreview_$().trim() || isStarting_$()\"\n class=\"px-4 py-2 border border-ccapAccent rounded text-ccapAccent text-sm font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors disabled:opacity-40\">\n @if (isStarting_$()) { Starting… } @else { Start CC Session }\n </button>\n </div>\n </div>\n</app-s-modal>\n", "import { Component, computed, input, output, signal } from '@angular/core';\n\nimport { DyFM_Log } from '@futdevpro/fsm-dynamo';\nimport { CommonModule } from '@angular/common';\n\nimport { S_Modal_Component } from '../../../shared/_components/s-modal/s-modal.component';\n\n/**\n * Project Management: egy kontroll-fájl entry `rawLines` szövegének megjelenítése modal-ban (read-only).\n * A parent állítja be a title-t és a join-olt nyers szöveget; Copy a vágólapra (client error path-on nem dobunk).\n */\n@Component({\n selector: 'app-pm-entry-raw-modal',\n standalone: true,\n imports: [CommonModule, S_Modal_Component],\n templateUrl: './pm-entry-raw-modal.component.html',\n})\n/** PM_EntryRawModal_Component class. */\nexport class PM_EntryRawModal_Component {\n /** Modal látható-e. */\n readonly isOpen = input<boolean>(false);\n\n /** Fejléc cím (pl. entry code + kontextus). */\n readonly title = input<string>('');\n\n /** Nyers szöveg (`rawLines.join('\\n')`). */\n readonly rawText = input<string>('');\n\n /** Bezárás (backdrop / X / Escape). */\n readonly closed = output<void>();\n\n /** Van-e másolható / megjelenítendő body (nem üres trim után). */\n readonly hasBody_$ = computed((): boolean => this.rawText().trim().length > 0);\n\n /** Copy feedback rövid jelzéshez. */\n readonly isCopied_$ = signal<boolean>(false);\n\n /**\n * Modal bezárása: feedback reset + esemény a parent felé.\n */\n handleModalClosed(): void {\n this.isCopied_$.set(false);\n this.closed.emit();\n }\n\n /**\n * Nyers szöveg vágólapra másolása.\n */\n handleCopy(): void {\n const text: string = this.rawText();\n if (!text.trim()) {\n return;\n }\n navigator.clipboard.writeText(text).then((): void => {\n this.isCopied_$.set(true);\n setTimeout((): void => {\n this.isCopied_$.set(false);\n }, 2000);\n }).catch((err: unknown): void => { DyFM_Log.error('[CCAP] pm-entry-raw-modal clipboard-copy', err); });\n }\n}\n", "<app-s-modal\n [isOpen]=\"isOpen()\"\n [title]=\"title()\"\n maxWidth=\"4xl\"\n headerBorderClass=\"border-neonDefault\"\n (closed)=\"handleModalClosed()\">\n @if (hasBody_$()) {\n <div class=\"flex justify-end mb-2\">\n <button\n type=\"button\"\n class=\"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md text-[11px] transition-colors cursor-pointer\"\n [class]=\"isCopied_$()\n ? 'bg-green-500/15 border border-green-500/30 text-green-300'\n : 'bg-neutral-800 border border-neutral-700 text-neutral-400 hover:text-neutral-200 hover:border-neutral-600'\"\n (click)=\"handleCopy()\">\n @if (isCopied_$()) {\n <svg class=\"w-3.5 h-3.5\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M3 8.5l3 3 7-7\"/>\n </svg>\n <span>Copied!</span>\n } @else {\n <svg class=\"w-3.5 h-3.5\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <rect x=\"5\" y=\"5\" width=\"9\" height=\"9\" rx=\"1.5\"/>\n <path d=\"M3 11V3a1.5 1.5 0 0 1 1.5-1.5H11\"/>\n </svg>\n <span>Copy text</span>\n }\n </button>\n </div>\n <pre\n class=\"text-xs font-mono leading-relaxed whitespace-pre-wrap break-words max-h-[60vh] overflow-y-auto p-1\n text-neutral-300\">{{ rawText() }}</pre>\n } @else {\n <p class=\"text-neutral-500 text-xs\">(no raw lines)</p>\n }\n</app-s-modal>\n", "import { Component, effect, input, output, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { S_Modal_Component } from '../../../../shared/_components/s-modal/s-modal.component';\n\n/**\n * Kontroll entry szerkesztése: nyers blokk textarea — Save → `saved` output.\n */\n@Component({\n selector: 'app-pm-control-entry-edit-modal',\n standalone: true,\n imports: [CommonModule, FormsModule, S_Modal_Component],\n templateUrl: './pm-control-entry-edit-modal.component.html',\n})\n/** PM_ControlEntryEditModal_Component class. */\nexport class PM_ControlEntryEditModal_Component {\n\n readonly isOpen = input<boolean>(false);\n\n readonly title = input<string>('Edit entry');\n\n readonly initialText = input<string>('');\n\n readonly closed = output<void>();\n\n /** Mentett teljes blokk szöveg. */\n readonly saved = output<{ newRawBlock: string }>();\n\n readonly draft_$ = signal<string>('');\n\n constructor() {\n effect((): void => {\n if (this.isOpen()) {\n this.draft_$.set(this.initialText());\n }\n });\n }\n\n /**\n * Modal bezárás mentés nélkül.\n */\n handleClose(): void {\n this.closed.emit();\n }\n\n /**\n * Mentés és bezárás.\n */\n handleSave(): void {\n const text: string = this.draft_$().trimEnd();\n if (!text.length) {\n return;\n }\n this.saved.emit({ newRawBlock: text });\n this.closed.emit();\n }\n\n /**\n * Textarea változás.\n */\n handleDraftChange(value: string): void {\n this.draft_$.set(value);\n }\n}\n", "<app-s-modal [isOpen]=\"isOpen()\"\n [title]=\"title()\"\n maxWidth=\"3xl\"\n headerBorderClass=\"border-ccapAccent/30\"\n (closed)=\"handleClose()\">\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-xs text-neutral-500\">\n Edit the raw entry block. Save writes the file via server entry-mutation (ensure format stays valid).\n </p>\n <textarea [ngModel]=\"draft_$()\"\n (ngModelChange)=\"handleDraftChange($event)\"\n rows=\"16\"\n class=\"w-full bg-neutral-900 border border-neutral-600 rounded px-3 py-2 text-sm text-neutral-100\n font-mono whitespace-pre resize-y min-h-[200px]\">\n </textarea>\n <div class=\"flex justify-end gap-2\">\n <button type=\"button\"\n (click)=\"handleClose()\"\n class=\"px-3 py-2 border border-neutral-600 rounded text-neutral-300 text-sm hover:border-neutral-400\">\n Cancel\n </button>\n <button type=\"button\"\n (click)=\"handleSave()\"\n [disabled]=\"!draft_$().trim().length\"\n class=\"px-4 py-2 border border-ccapAccent rounded text-ccapAccent text-sm font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors disabled:opacity-40\">\n Save\n </button>\n </div>\n </div>\n</app-s-modal>\n", "import { Component, input, output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n/**\n * Közös PM lista sor műveletek: Edit, Remove, CC Session (work / fix / review).\n * A parent adja a láthatóságot és a disabled állapotot; nincs üzleti logika.\n */\n@Component({\n selector: 'app-pm-item-row-actions',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './pm-item-row-actions.component.html',\n})\n/** PM_ItemRowActions_Component class. */\nexport class PM_ItemRowActions_Component {\n\n readonly showEdit = input<boolean>(true);\n\n readonly showRemove = input<boolean>(true);\n\n /** TODO / BACKLOG „dolgozd meg”. */\n readonly showCcWork = input<boolean>(false);\n\n /** BUG „fix”. */\n readonly showCcFix = input<boolean>(false);\n\n /** Általános „review / still valid”. */\n readonly showCcReview = input<boolean>(false);\n\n readonly disabledEdit = input<boolean>(false);\n\n readonly disabledRemove = input<boolean>(false);\n\n readonly disabledCc = input<boolean>(false);\n\n readonly edit = output<void>();\n\n readonly remove = output<void>();\n\n readonly ccWork = output<void>();\n\n readonly ccFix = output<void>();\n\n readonly ccReview = output<void>();\n\n /**\n * Edit gomb.\n */\n handleEdit(): void {\n this.edit.emit();\n }\n\n /**\n * Remove gomb.\n */\n handleRemove(): void {\n this.remove.emit();\n }\n\n /**\n * CC work.\n */\n handleCcWork(): void {\n this.ccWork.emit();\n }\n\n /**\n * CC fix.\n */\n handleCcFix(): void {\n this.ccFix.emit();\n }\n\n /**\n * CC review.\n */\n handleCcReview(): void {\n this.ccReview.emit();\n }\n}\n", "<div class=\"flex flex-wrap gap-2 mt-3\">\n @if (showEdit()) {\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-600 text-neutral-200\n hover:border-ccapAccent hover:text-ccapAccent disabled:opacity-40\"\n [disabled]=\"disabledEdit()\"\n (click)=\"handleEdit()\">\n Edit\n </button>\n }\n @if (showRemove()) {\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-700 text-neutral-400\n hover:border-red-500/60 hover:text-red-300 disabled:opacity-40\"\n [disabled]=\"disabledRemove()\"\n (click)=\"handleRemove()\">\n Remove\n </button>\n }\n @if (showCcWork()) {\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-600 text-neutral-200\n hover:border-ccapAccent hover:text-ccapAccent disabled:opacity-40\"\n [disabled]=\"disabledCc()\"\n (click)=\"handleCcWork()\">\n CC Session work\n </button>\n }\n @if (showCcFix()) {\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-600 text-neutral-200\n hover:border-ccapAccent hover:text-ccapAccent disabled:opacity-40\"\n [disabled]=\"disabledCc()\"\n (click)=\"handleCcFix()\">\n CC Session fix\n </button>\n }\n @if (showCcReview()) {\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-600 text-neutral-200\n hover:border-neonCyan/50 hover:text-neonCyan disabled:opacity-40\"\n [disabled]=\"disabledCc()\"\n (click)=\"handleCcReview()\">\n CC Session review\n </button>\n }\n</div>\n", "import {\n PM_BacklogEntry_Interface,\n PM_TodoEntry_Interface,\n PM_UserInputEntry_Interface,\n} from '../../../../_models/server-index';\n\n/**\n * CC Session indításhoz PM kontextus alapú initial prompt sablonok (angol, technikai).\n * A teljes prompt = sablon + opcionális user extra (wizardban fűzzük hozzá).\n */\nexport class PM_CcLaunchPrompt_Util {\n\n /**\n * Bug javítás — meglévő `buildCcSessionFixPrompt` logika.\n */\n static buildBugFixPrompt(entry: PM_BacklogEntry_Interface): string {\n const lines: string[] = [\n 'Fix the following Project Management bug in this workspace.',\n `Bug code: ${entry.code}`,\n `Title: ${entry.title}`,\n ];\n if (entry.details?.trim().length) {\n lines.push(`Details: ${entry.details.trim()}`);\n }\n const linked: string | undefined = entry.linkedCcapErrorId?.trim();\n if (linked?.length) {\n lines.push(`Linked central CCAP error table record id: ${linked}`);\n }\n return lines.join('\\n');\n }\n\n /**\n * Bug ellenőrzés — reprodukálhatóság / még létezik-e.\n */\n static buildBugReviewPrompt(entry: PM_BacklogEntry_Interface): string {\n const lines: string[] = [\n 'Review whether the following bug still exists and is reproducible in this workspace.',\n 'Report your findings clearly (still valid / cannot reproduce / needs more info).',\n `Bug code: ${entry.code}`,\n `Title: ${entry.title}`,\n ];\n if (entry.details?.trim().length) {\n lines.push(`Details: ${entry.details.trim()}`);\n }\n const linked: string | undefined = entry.linkedCcapErrorId?.trim();\n if (linked?.length) {\n lines.push(`Linked central CCAP error table record id: ${linked}`);\n }\n return lines.join('\\n');\n }\n\n /**\n * BACKLOG / BUGS listaelem — általános megvalósítási feladat.\n */\n static buildBacklogWorkPrompt(entry: PM_BacklogEntry_Interface): string {\n const lines: string[] = [\n 'Work on the following Project Management backlog item in this workspace.',\n `Type: ${entry.type}`,\n `Code: ${entry.code}`,\n `Title: ${entry.title}`,\n `Status: ${entry.statusRaw}`,\n ];\n if (entry.details?.trim().length) {\n lines.push(`Details: ${entry.details.trim()}`);\n }\n return lines.join('\\n');\n }\n\n /**\n * BACKLOG / BUGS listaelem — állapot / relevancia review.\n */\n static buildBacklogReviewPrompt(entry: PM_BacklogEntry_Interface): string {\n const lines: string[] = [\n 'Review the following backlog item for relevance and current status in this workspace.',\n `Type: ${entry.type}`,\n `Code: ${entry.code}`,\n `Title: ${entry.title}`,\n ];\n if (entry.details?.trim().length) {\n lines.push(`Details: ${entry.details.trim()}`);\n }\n return lines.join('\\n');\n }\n\n /**\n * TODO.md sor — megvalósítás.\n */\n static buildTodoWorkPrompt(entry: PM_TodoEntry_Interface): string {\n const lines: string[] = [\n 'Work on the following TODO item in this workspace.',\n `Code: ${entry.code}`,\n `Title: ${entry.title}`,\n ];\n if (entry.section?.trim().length) {\n lines.push(`Section: ${entry.section.trim()}`);\n }\n if (entry.details?.trim().length) {\n lines.push(`Details: ${entry.details.trim()}`);\n }\n return lines.join('\\n');\n }\n\n /**\n * TODO.md sor — review.\n */\n static buildTodoReviewPrompt(entry: PM_TodoEntry_Interface): string {\n const lines: string[] = [\n 'Review whether the following TODO item is still applicable in this workspace.',\n `Code: ${entry.code}`,\n `Title: ${entry.title}`,\n ];\n if (entry.details?.trim().length) {\n lines.push(`Details: ${entry.details.trim()}`);\n }\n return lines.join('\\n');\n }\n\n /**\n * USER-INPUT (etalon) entry — megvalósítási / spec feladat CC Session-ben.\n */\n static buildUserInputWorkPrompt(entry: PM_UserInputEntry_Interface): string {\n const lines: string[] = [\n 'Work on the following USER-INPUT tracked item in this workspace (respect raw user text immutability in specs).',\n `Type: ${entry.type}`,\n `Code: ${entry.code}`,\n `E1–E4: ${entry.e1} ${entry.e2} ${entry.e3} ${entry.e4}`,\n ];\n if (entry.details?.trim().length) {\n lines.push(`Details: ${entry.details.trim()}`);\n }\n if (entry.rawUserInput?.trim().length) {\n lines.push('', 'User raw input (verbatim context):', entry.rawUserInput.trim());\n }\n return lines.join('\\n');\n }\n\n /**\n * USER-INPUT entry — relevancia / állapot review.\n */\n static buildUserInputReviewPrompt(entry: PM_UserInputEntry_Interface): string {\n const lines: string[] = [\n 'Review whether the following USER-INPUT item is still valid and correctly prioritized in this workspace.',\n `Type: ${entry.type}`,\n `Code: ${entry.code}`,\n ];\n if (entry.details?.trim().length) {\n lines.push(`Details: ${entry.details.trim()}`);\n }\n return lines.join('\\n');\n }\n}\n", "import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n/**\n * PM kontroll fájl `filePreamble` (első `---` előtti leíró blokk) natív disclosure-ben.\n */\n@Component({\n selector: 'app-pm-control-file-preamble-disclosure',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './pm-control-file-preamble-disclosure.component.html',\n})\n/** PM_ControlFilePreambleDisclosure_Component class. */\nexport class PM_ControlFilePreambleDisclosure_Component {\n\n /** Szerverről jövő preamble; üres/whitespace esetén nem renderelünk. */\n @Input() filePreamble: string | null | undefined = null;\n}\n", "@if (filePreamble != null && filePreamble.trim().length > 0) {\n <details class=\"rounded-lg border border-neutral-600/50 bg-neutral-900/35 mb-4\">\n <summary\n class=\"cursor-pointer select-none list-none px-3 py-2 text-xs font-semibold text-neutral-400\n hover:text-neutral-200 transition-colors flex items-center gap-2\n [&::-webkit-details-marker]:hidden\">\n <svg class=\"w-3.5 h-3.5 shrink-0 text-neutral-500 transition-transform [details[open]>&]:rotate-90\"\n viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M4.5 2.5l4 3.5-4 3.5\" stroke=\"currentColor\" stroke-width=\"1.5\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n File description\n </summary>\n <div class=\"px-3 pb-3 pt-1 border-t border-neutral-700/40\">\n <pre class=\"text-xs text-neutral-300 whitespace-pre-wrap font-sans m-0 leading-relaxed\">{{ filePreamble }}</pre>\n </div>\n </details>\n}\n", "import { Component, computed, EventEmitter, inject, Input, Output, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n PM_ControlEntryMutationMode_Type,\n PM_ControlFileType_Type,\n PM_ControlFileContent_Response,\n PM_TodoEntry_Interface,\n} from '../../../../../_models/server-index';\nimport { PM_CcLaunchWizard_Component } from '../../pm-cc-launch-wizard/pm-cc-launch-wizard.component';\nimport { PM_EntryRawModal_Component } from '../../pm-entry-raw-modal/pm-entry-raw-modal.component';\nimport { PM_ControlEntryEditModal_Component } from '../pm-entry-mutation-ui/pm-control-entry-edit-modal.component';\nimport { PM_ItemRowActions_Component } from '../pm-entry-mutation-ui/pm-item-row-actions.component';\nimport { PM_CcLaunchPrompt_Util } from '../../../_collections/utils/pm-cc-launch-prompt.util';\nimport { CCAP_GlobalError_ControlService } from '../../../../../_services/control-services/ccap-global-error.control-service';\nimport { ProjectManagement_DataService } from '../../../_services/data-services/project-management.data-service';\nimport { S_ContentState_Component } from '../../../../shared/_components/s-content-state/s-content-state.component';\nimport { S_Modal_Component } from '../../../../shared/_components/s-modal/s-modal.component';\nimport { PM_ControlFilePreambleDisclosure_Component } from '../pm-control-file-preamble-disclosure/pm-control-file-preamble-disclosure.component';\n\n/**\n * TODO.md tab – parse-olt TODO entry-k megjelenítése, entry mutáció és CC Session.\n */\n@Component({\n selector: 'app-pm-todo-tab',\n standalone: true,\n imports: [\n CommonModule,\n S_ContentState_Component,\n PM_EntryRawModal_Component,\n PM_CcLaunchWizard_Component,\n PM_ControlEntryEditModal_Component,\n PM_ItemRowActions_Component,\n PM_ControlFilePreambleDisclosure_Component,\n S_Modal_Component,\n ],\n templateUrl: './pm-todo-tab.component.html',\n})\n/** PM_TodoTab_Component class. */\nexport class PM_TodoTab_Component {\n\n @Input() fileContent: PM_ControlFileContent_Response<PM_TodoEntry_Interface> | null = null;\n @Input() isLoading: boolean = false;\n @Input() error: unknown | null = null;\n\n @Input() projectId: string = '';\n\n @Input() workspacePath: string | undefined;\n\n @Output() readonly refresh: EventEmitter<void> = new EventEmitter<void>();\n\n private readonly pm_DS: ProjectManagement_DataService = inject(ProjectManagement_DataService);\n private readonly globalError_CS: CCAP_GlobalError_ControlService =\n inject(CCAP_GlobalError_ControlService);\n\n /** Nyers `rawLines` modal. */\n readonly rawModalOpen_$ = signal<boolean>(false);\n readonly rawModalTitle_$ = signal<string>('');\n readonly rawModalBody_$ = signal<string>('');\n\n readonly entryMutationBusy_$ = signal<boolean>(false);\n\n readonly ccLaunchOpen_$ = signal<boolean>(false);\n readonly ccLaunchTitle_$ = signal<string>('');\n readonly ccLaunchLabel_$ = signal<string>('');\n readonly ccLaunchBasePrompt_$ = signal<string>('');\n\n readonly editModalOpen_$ = signal<boolean>(false);\n readonly editModalTitle_$ = signal<string>('');\n readonly editModalInitial_$ = signal<string>('');\n private editPriorBlock_: string = '';\n\n /** `S_Modal` megerősítő — TODO entry törlés. */\n readonly confirmModalOpen_$ = signal<boolean>(false);\n readonly confirmModalTitle_$ = signal<string>('');\n readonly confirmModalBody_$ = signal<string>('');\n private pendingConfirmAction_: (() => Promise<void>) | null = null;\n\n readonly workspacePathForWizard_$ = computed((): string => this.workspacePath?.trim() ?? '');\n\n /**\n * Nyers entry blokk megnyitása modal-ban.\n */\n handleOpenRawTodo(entry: PM_TodoEntry_Interface): void {\n this.rawModalTitle_$.set(`TODO — ${entry.code}`);\n this.rawModalBody_$.set(entry.rawLines.join('\\n'));\n this.rawModalOpen_$.set(true);\n }\n\n /**\n * Nyers tartalom modal bezárása.\n */\n handleCloseRawModal(): void {\n this.rawModalOpen_$.set(false);\n this.rawModalTitle_$.set('');\n this.rawModalBody_$.set('');\n }\n\n /**\n * CC Session work wizard.\n */\n handleOpenCcWork(entry: PM_TodoEntry_Interface): void {\n this.ccLaunchTitle_$.set(`CC Session — TODO ${entry.code}`);\n this.ccLaunchLabel_$.set(`PM TODO ${entry.code}`);\n this.ccLaunchBasePrompt_$.set(PM_CcLaunchPrompt_Util.buildTodoWorkPrompt(entry));\n this.ccLaunchOpen_$.set(true);\n }\n\n /**\n * CC Session review wizard.\n */\n handleOpenCcReview(entry: PM_TodoEntry_Interface): void {\n this.ccLaunchTitle_$.set(`CC Session — Review TODO ${entry.code}`);\n this.ccLaunchLabel_$.set(`PM TODO review ${entry.code}`);\n this.ccLaunchBasePrompt_$.set(PM_CcLaunchPrompt_Util.buildTodoReviewPrompt(entry));\n this.ccLaunchOpen_$.set(true);\n }\n\n /**\n * CC wizard bezárás.\n */\n handleCcLaunchClosed(): void {\n this.ccLaunchOpen_$.set(false);\n this.ccLaunchBasePrompt_$.set('');\n }\n\n /**\n * Edit modal megnyitása.\n */\n handleOpenEdit(entry: PM_TodoEntry_Interface): void {\n if (!this.projectId.trim().length) {\n return;\n }\n const prior: string = entry.rawLines.join('\\n');\n this.editPriorBlock_ = prior;\n this.editModalTitle_$.set(`Edit TODO — ${entry.code}`);\n this.editModalInitial_$.set(prior);\n this.editModalOpen_$.set(true);\n }\n\n /**\n * Edit modal bezárás.\n */\n handleEditModalClosed(): void {\n this.editModalOpen_$.set(false);\n this.editPriorBlock_ = '';\n }\n\n /**\n * Mentés után update mutation.\n */\n async handleEditSaved(params: { newRawBlock: string }): Promise<void> {\n const pid: string = this.projectId.trim();\n const prior: string = this.editPriorBlock_;\n if (!pid.length || !prior.length || this.entryMutationBusy_$()) {\n return;\n }\n this.entryMutationBusy_$.set(true);\n try {\n await this.pm_DS.mutateControlFileEntryAndRefresh(pid, PM_ControlFileType_Type.todo, {\n mode: PM_ControlEntryMutationMode_Type.update,\n priorRawBlock: prior,\n newRawBlock: params.newRawBlock,\n });\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-todo-entry-update');\n } finally {\n this.entryMutationBusy_$.set(false);\n }\n }\n\n /**\n * Entry törlése — `S_Modal` megerősítés után.\n */\n handleRemove(entry: PM_TodoEntry_Interface): void {\n const pid: string = this.projectId.trim();\n if (!pid.length || this.entryMutationBusy_$()) {\n return;\n }\n this.confirmModalTitle_$.set('Remove TODO entry');\n this.confirmModalBody_$.set(`Remove TODO entry ${entry.code} from TODO.md?`);\n this.pendingConfirmAction_ = async (): Promise<void> => {\n await this.executeRemoveTodoEntry(pid, entry);\n };\n this.confirmModalOpen_$.set(true);\n }\n\n /**\n * TODO entry törlés mutation (megerősítés után).\n */\n private async executeRemoveTodoEntry(pid: string, entry: PM_TodoEntry_Interface): Promise<void> {\n const prior: string = entry.rawLines.join('\\n');\n this.entryMutationBusy_$.set(true);\n try {\n await this.pm_DS.mutateControlFileEntryAndRefresh(pid, PM_ControlFileType_Type.todo, {\n mode: PM_ControlEntryMutationMode_Type.remove,\n priorRawBlock: prior,\n });\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-todo-entry-remove');\n } finally {\n this.entryMutationBusy_$.set(false);\n }\n }\n\n /**\n * Megerősítő modal bezárása (backdrop, Escape, X).\n */\n handleConfirmModalDismissed(): void {\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n }\n\n /** Cancel gomb. */\n handleConfirmModalCancel(): void {\n this.handleConfirmModalDismissed();\n }\n\n /** Confirm gomb. */\n async handleConfirmModalConfirm(): Promise<void> {\n const action: (() => Promise<void>) | null = this.pendingConfirmAction_;\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n if (action) {\n await action();\n }\n }\n}\n", "<div class=\"flex flex-col gap-4\">\n <div class=\"flex items-center justify-between gap-3\">\n <div class=\"flex items-center gap-3\">\n <h2 class=\"text-base font-semibold text-neutral-200\">TODO.md</h2>\n @if (fileContent != null && fileContent.metadata != null && fileContent.metadata.lineCount) {\n <span class=\"text-xs text-neutral-500\">{{ fileContent.metadata.lineCount }} sor</span>\n }\n </div>\n <button type=\"button\"\n (click)=\"refresh.emit()\"\n class=\"px-3 py-1.5 border border-neutral-500 rounded text-neutral-300 text-xs font-semibold\n hover:border-ccapAccent hover:text-ccapAccent transition-colors duration-200\">\n Refresh\n </button>\n </div>\n\n <app-pm-control-file-preamble-disclosure [filePreamble]=\"fileContent?.filePreamble\">\n </app-pm-control-file-preamble-disclosure>\n\n <app-s-content-state [isLoading]=\"isLoading\"\n [error]=\"error\"\n [isEmpty]=\"!fileContent || !fileContent.exists\"\n [emptyMessage]=\"'A projekt nem tartalmaz TODO.md fájlt.'\"\n [loadingMessage]=\"'Betöltés…'\"\n (retry)=\"refresh.emit()\">\n\n @if (fileContent && fileContent.error) {\n <div class=\"rounded-lg bg-red-900/20 border border-red-800/50 p-3 mb-3\">\n <p class=\"text-red-400 text-xs\">{{ fileContent.error }}</p>\n </div>\n }\n\n @if (fileContent && fileContent.exists && fileContent.entries.length === 0) {\n <p class=\"text-neutral-500 text-sm\">A TODO.md üres (nincs parse-olható entry).</p>\n }\n\n <div class=\"flex flex-col gap-2\">\n @for (entry of fileContent?.entries ?? []; track entry.code) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <div class=\"flex items-start justify-between gap-2 flex-wrap w-full\">\n <div class=\"flex items-start gap-3 flex-wrap min-w-0 flex-1\">\n <span class=\"text-lg shrink-0\">{{ entry.statusEmoji }}</span>\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-900 text-neonCyan border border-neonCyan/40 font-mono shrink-0\">\n {{ entry.code }}\n </span>\n <span class=\"text-sm font-semibold text-neutral-100 min-w-0 break-words\">{{ entry.title }}</span>\n </div>\n <button type=\"button\"\n class=\"shrink-0 p-1.5 rounded-full border border-neutral-600/60 text-neutral-400\n hover:border-ccapAccent hover:text-ccapAccent transition-colors\"\n title=\"Raw entry\"\n (click)=\"handleOpenRawTodo(entry)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z\" />\n </svg>\n </button>\n </div>\n <div class=\"flex flex-wrap gap-x-4 gap-y-1 mt-2 text-xs text-neutral-400\">\n @if (entry.priority) {\n <span>\n <span class=\"text-neutral-500\">priority:</span>\n <span class=\"font-medium\"\n [class.text-red-400]=\"entry.priority === 'urgent'\"\n [class.text-amber-400]=\"entry.priority === 'high'\"\n [class.text-neutral-300]=\"entry.priority === 'medium' || entry.priority === 'low'\">\n {{ entry.priority }}\n </span>\n </span>\n }\n @if (entry.area) {\n <span><span class=\"text-neutral-500\">area:</span> {{ entry.area }}</span>\n }\n @if (entry.phase) {\n <span><span class=\"text-neutral-500\">phase:</span> {{ entry.phase }}</span>\n }\n @if (entry.source) {\n <span><span class=\"text-neutral-500\">source:</span> {{ entry.source }}</span>\n }\n </div>\n @if (entry.details) {\n <p class=\"text-neutral-400 text-xs mt-1.5\">{{ entry.details }}</p>\n }\n @if (entry.section) {\n <span class=\"text-[10px] text-neutral-600 mt-1 block\">{{ entry.section }}</span>\n }\n <app-pm-item-row-actions\n [showCcFix]=\"false\"\n [showCcWork]=\"true\"\n [showCcReview]=\"true\"\n [disabledCc]=\"!workspacePath?.trim()\"\n [disabledEdit]=\"entryMutationBusy_$()\"\n [disabledRemove]=\"entryMutationBusy_$()\"\n (edit)=\"handleOpenEdit(entry)\"\n (remove)=\"handleRemove(entry)\"\n (ccWork)=\"handleOpenCcWork(entry)\"\n (ccReview)=\"handleOpenCcReview(entry)\">\n </app-pm-item-row-actions>\n </div>\n }\n </div>\n </app-s-content-state>\n\n <app-pm-entry-raw-modal\n [isOpen]=\"rawModalOpen_$()\"\n [title]=\"rawModalTitle_$()\"\n [rawText]=\"rawModalBody_$()\"\n (closed)=\"handleCloseRawModal()\">\n </app-pm-entry-raw-modal>\n\n <app-pm-cc-launch-wizard\n [isOpen]=\"ccLaunchOpen_$()\"\n [modalTitle]=\"ccLaunchTitle_$()\"\n [sessionLabel]=\"ccLaunchLabel_$()\"\n [basePrompt]=\"ccLaunchBasePrompt_$()\"\n [workspacePath]=\"workspacePathForWizard_$()\"\n (closed)=\"handleCcLaunchClosed()\">\n </app-pm-cc-launch-wizard>\n\n <app-pm-control-entry-edit-modal\n [isOpen]=\"editModalOpen_$()\"\n [title]=\"editModalTitle_$()\"\n [initialText]=\"editModalInitial_$()\"\n (closed)=\"handleEditModalClosed()\"\n (saved)=\"handleEditSaved($event)\">\n </app-pm-control-entry-edit-modal>\n\n <app-s-modal [isOpen]=\"confirmModalOpen_$()\"\n [title]=\"confirmModalTitle_$()\"\n [maxWidth]=\"'md'\"\n (closed)=\"handleConfirmModalDismissed()\">\n <p class=\"text-sm text-neutral-300 whitespace-pre-wrap\">{{ confirmModalBody_$() }}</p>\n <div modal-footer\n class=\"flex items-center justify-end gap-2 px-4 py-3 border-t border-neutral-700 shrink-0 bg-neutral-900/80\">\n <button type=\"button\"\n (click)=\"handleConfirmModalCancel()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neutral-600 text-neutral-300\n hover:bg-neutral-700 transition-colors\">\n Cancel\n </button>\n <button type=\"button\"\n (click)=\"handleConfirmModalConfirm()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neonRed/60 text-neonRed/90\n hover:bg-neonRed/10 transition-colors\">\n Confirm\n </button>\n </div>\n </app-s-modal>\n</div>\n", "import { Component, computed, EventEmitter, inject, Input, Output, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n PM_BacklogEntry_Interface,\n PM_ControlEntryMutationMode_Type,\n PM_ControlFileType_Type,\n PM_ControlFileContent_Response,\n} from '../../../../../_models/server-index';\nimport { PM_CcLaunchWizard_Component } from '../../pm-cc-launch-wizard/pm-cc-launch-wizard.component';\nimport { PM_EntryRawModal_Component } from '../../pm-entry-raw-modal/pm-entry-raw-modal.component';\nimport { PM_ControlEntryEditModal_Component } from '../pm-entry-mutation-ui/pm-control-entry-edit-modal.component';\nimport { PM_ItemRowActions_Component } from '../pm-entry-mutation-ui/pm-item-row-actions.component';\nimport { PM_CcLaunchPrompt_Util } from '../../../_collections/utils/pm-cc-launch-prompt.util';\nimport { CCAP_GlobalError_ControlService } from '../../../../../_services/control-services/ccap-global-error.control-service';\nimport { ProjectManagement_DataService } from '../../../_services/data-services/project-management.data-service';\nimport { S_ContentState_Component } from '../../../../shared/_components/s-content-state/s-content-state.component';\nimport { S_Modal_Component } from '../../../../shared/_components/s-modal/s-modal.component';\nimport { PM_ControlFilePreambleDisclosure_Component } from '../pm-control-file-preamble-disclosure/pm-control-file-preamble-disclosure.component';\n\n/**\n * BACKLOG.md tab – parse-olt backlog entry-k, entry mutáció és CC Session.\n */\n@Component({\n selector: 'app-pm-backlog-tab',\n standalone: true,\n imports: [\n CommonModule,\n S_ContentState_Component,\n PM_EntryRawModal_Component,\n PM_CcLaunchWizard_Component,\n PM_ControlEntryEditModal_Component,\n PM_ItemRowActions_Component,\n PM_ControlFilePreambleDisclosure_Component,\n S_Modal_Component,\n ],\n templateUrl: './pm-backlog-tab.component.html',\n})\n/** PM_BacklogTab_Component class. */\nexport class PM_BacklogTab_Component {\n\n @Input() fileContent: PM_ControlFileContent_Response<PM_BacklogEntry_Interface> | null = null;\n @Input() isLoading: boolean = false;\n @Input() error: unknown | null = null;\n\n @Input() projectId: string = '';\n\n @Input() workspacePath: string | undefined;\n\n @Output() readonly refresh: EventEmitter<void> = new EventEmitter<void>();\n\n private readonly pm_DS: ProjectManagement_DataService = inject(ProjectManagement_DataService);\n private readonly globalError_CS: CCAP_GlobalError_ControlService =\n inject(CCAP_GlobalError_ControlService);\n\n readonly rawModalOpen_$ = signal<boolean>(false);\n readonly rawModalTitle_$ = signal<string>('');\n readonly rawModalBody_$ = signal<string>('');\n\n readonly entryMutationBusy_$ = signal<boolean>(false);\n\n readonly ccLaunchOpen_$ = signal<boolean>(false);\n readonly ccLaunchTitle_$ = signal<string>('');\n readonly ccLaunchLabel_$ = signal<string>('');\n readonly ccLaunchBasePrompt_$ = signal<string>('');\n\n readonly editModalOpen_$ = signal<boolean>(false);\n readonly editModalTitle_$ = signal<string>('');\n readonly editModalInitial_$ = signal<string>('');\n private editPriorBlock_: string = '';\n\n /** `S_Modal` megerősítő — backlog entry törlés. */\n readonly confirmModalOpen_$ = signal<boolean>(false);\n readonly confirmModalTitle_$ = signal<string>('');\n readonly confirmModalBody_$ = signal<string>('');\n private pendingConfirmAction_: (() => Promise<void>) | null = null;\n\n readonly workspacePathForWizard_$ = computed((): string => this.workspacePath?.trim() ?? '');\n\n /**\n * Nyers entry blokk megnyitása modal-ban.\n */\n handleOpenRawBacklog(entry: PM_BacklogEntry_Interface): void {\n this.rawModalTitle_$.set(`BACKLOG — ${entry.code}`);\n this.rawModalBody_$.set(entry.rawLines.join('\\n'));\n this.rawModalOpen_$.set(true);\n }\n\n /**\n * Nyers tartalom modal bezárása.\n */\n handleCloseRawModal(): void {\n this.rawModalOpen_$.set(false);\n this.rawModalTitle_$.set('');\n this.rawModalBody_$.set('');\n }\n\n /**\n * CC Session work.\n */\n handleOpenCcWork(entry: PM_BacklogEntry_Interface): void {\n this.ccLaunchTitle_$.set(`CC Session — BACKLOG ${entry.code}`);\n this.ccLaunchLabel_$.set(`PM BL ${entry.code}`);\n this.ccLaunchBasePrompt_$.set(PM_CcLaunchPrompt_Util.buildBacklogWorkPrompt(entry));\n this.ccLaunchOpen_$.set(true);\n }\n\n /**\n * CC Session review.\n */\n handleOpenCcReview(entry: PM_BacklogEntry_Interface): void {\n this.ccLaunchTitle_$.set(`CC Session — Review BACKLOG ${entry.code}`);\n this.ccLaunchLabel_$.set(`PM BL review ${entry.code}`);\n this.ccLaunchBasePrompt_$.set(PM_CcLaunchPrompt_Util.buildBacklogReviewPrompt(entry));\n this.ccLaunchOpen_$.set(true);\n }\n\n /**\n * CC wizard bezárás.\n */\n handleCcLaunchClosed(): void {\n this.ccLaunchOpen_$.set(false);\n this.ccLaunchBasePrompt_$.set('');\n }\n\n /**\n * Edit modal.\n */\n handleOpenEdit(entry: PM_BacklogEntry_Interface): void {\n if (!this.projectId.trim().length) {\n return;\n }\n const prior: string = entry.rawLines.join('\\n');\n this.editPriorBlock_ = prior;\n this.editModalTitle_$.set(`Edit BACKLOG — ${entry.code}`);\n this.editModalInitial_$.set(prior);\n this.editModalOpen_$.set(true);\n }\n\n /**\n * Edit modal bezárás.\n */\n handleEditModalClosed(): void {\n this.editModalOpen_$.set(false);\n this.editPriorBlock_ = '';\n }\n\n /**\n * Update mutation.\n */\n async handleEditSaved(params: { newRawBlock: string }): Promise<void> {\n const pid: string = this.projectId.trim();\n const prior: string = this.editPriorBlock_;\n if (!pid.length || !prior.length || this.entryMutationBusy_$()) {\n return;\n }\n this.entryMutationBusy_$.set(true);\n try {\n await this.pm_DS.mutateControlFileEntryAndRefresh(pid, PM_ControlFileType_Type.backlog, {\n mode: PM_ControlEntryMutationMode_Type.update,\n priorRawBlock: prior,\n newRawBlock: params.newRawBlock,\n });\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-backlog-entry-update');\n } finally {\n this.entryMutationBusy_$.set(false);\n }\n }\n\n /**\n * Remove entry — `S_Modal` megerősítés után.\n */\n handleRemove(entry: PM_BacklogEntry_Interface): void {\n const pid: string = this.projectId.trim();\n if (!pid.length || this.entryMutationBusy_$()) {\n return;\n }\n this.confirmModalTitle_$.set('Remove backlog entry');\n this.confirmModalBody_$.set(`Remove backlog entry ${entry.code} from BACKLOG.md?`);\n this.pendingConfirmAction_ = async (): Promise<void> => {\n await this.executeRemoveBacklogEntry(pid, entry);\n };\n this.confirmModalOpen_$.set(true);\n }\n\n /**\n * Backlog entry törlés mutation (megerősítés után).\n */\n private async executeRemoveBacklogEntry(\n pid: string,\n entry: PM_BacklogEntry_Interface,\n ): Promise<void> {\n const prior: string = entry.rawLines.join('\\n');\n this.entryMutationBusy_$.set(true);\n try {\n await this.pm_DS.mutateControlFileEntryAndRefresh(pid, PM_ControlFileType_Type.backlog, {\n mode: PM_ControlEntryMutationMode_Type.remove,\n priorRawBlock: prior,\n });\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-backlog-entry-remove');\n } finally {\n this.entryMutationBusy_$.set(false);\n }\n }\n\n /**\n * Megerősítő modal bezárása (backdrop, Escape, X).\n */\n handleConfirmModalDismissed(): void {\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n }\n\n /** Cancel gomb. */\n handleConfirmModalCancel(): void {\n this.handleConfirmModalDismissed();\n }\n\n /** Confirm gomb. */\n async handleConfirmModalConfirm(): Promise<void> {\n const action: (() => Promise<void>) | null = this.pendingConfirmAction_;\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n if (action) {\n await action();\n }\n }\n}\n", "<div class=\"flex flex-col gap-4\">\n <div class=\"flex items-center justify-between gap-3\">\n <div class=\"flex items-center gap-3\">\n <h2 class=\"text-base font-semibold text-neutral-200\">BACKLOG.md</h2>\n @if (fileContent != null && fileContent.metadata != null && fileContent.metadata.lineCount) {\n <span class=\"text-xs text-neutral-500\">{{ fileContent.metadata.lineCount }} sor</span>\n }\n @if (fileContent?.entries?.length) {\n <span class=\"text-xs text-neutral-400\">{{ fileContent!.entries.length }} entry</span>\n }\n </div>\n <button type=\"button\"\n (click)=\"refresh.emit()\"\n class=\"px-3 py-1.5 border border-neutral-500 rounded text-neutral-300 text-xs font-semibold\n hover:border-ccapAccent hover:text-ccapAccent transition-colors duration-200\">\n Refresh\n </button>\n </div>\n\n <app-pm-control-file-preamble-disclosure [filePreamble]=\"fileContent?.filePreamble\">\n </app-pm-control-file-preamble-disclosure>\n\n <app-s-content-state [isLoading]=\"isLoading\"\n [error]=\"error\"\n [isEmpty]=\"!fileContent || !fileContent.exists\"\n [emptyMessage]=\"'A projekt nem tartalmaz BACKLOG.md fájlt.'\"\n [loadingMessage]=\"'Betöltés…'\"\n (retry)=\"refresh.emit()\">\n\n @if (fileContent && fileContent.error) {\n <div class=\"rounded-lg bg-red-900/20 border border-red-800/50 p-3 mb-3\">\n <p class=\"text-red-400 text-xs\">{{ fileContent.error }}</p>\n </div>\n }\n\n @if (fileContent && fileContent.exists && fileContent.entries.length === 0) {\n <p class=\"text-neutral-500 text-sm\">A BACKLOG.md üres (nincs parse-olható entry).</p>\n }\n\n <div class=\"flex flex-col gap-2\">\n @for (entry of fileContent?.entries ?? []; track entry.code) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <div class=\"flex items-start justify-between gap-2 flex-wrap w-full\">\n <div class=\"flex items-start gap-2 flex-wrap min-w-0 flex-1\">\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-700 text-neutral-300 border border-neutral-600 font-mono uppercase shrink-0\">\n {{ entry.type }}\n </span>\n <span class=\"text-lg shrink-0\">{{ entry.statusEmoji }}</span>\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-900 text-neonCyan border border-neonCyan/40 font-mono shrink-0\">\n {{ entry.code }}\n </span>\n <span class=\"text-sm font-semibold text-neutral-100 min-w-0 break-words\">{{ entry.title }}</span>\n </div>\n <button type=\"button\"\n class=\"shrink-0 p-1.5 rounded-full border border-neutral-600/60 text-neutral-400\n hover:border-ccapAccent hover:text-ccapAccent transition-colors\"\n title=\"Raw entry\"\n (click)=\"handleOpenRawBacklog(entry)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z\" />\n </svg>\n </button>\n </div>\n <div class=\"flex flex-wrap gap-x-4 gap-y-1 mt-2 text-xs text-neutral-400\">\n @if (entry.statusKey) {\n <span><span class=\"text-neutral-500\">status:</span> {{ entry.statusKey }}</span>\n }\n @if (entry.priority) {\n <span>\n <span class=\"text-neutral-500\">priority:</span>\n <span class=\"font-medium\"\n [class.text-red-400]=\"entry.priority === 'urgent'\"\n [class.text-amber-400]=\"entry.priority === 'high'\"\n [class.text-neutral-300]=\"entry.priority === 'medium' || entry.priority === 'low'\">\n {{ entry.priority }}\n </span>\n </span>\n }\n @if (entry.area) {\n <span><span class=\"text-neutral-500\">area:</span> {{ entry.area }}</span>\n }\n @if (entry.phase) {\n <span><span class=\"text-neutral-500\">phase:</span> {{ entry.phase }}</span>\n }\n </div>\n @if (entry.details) {\n <p class=\"text-neutral-400 text-xs mt-1.5\">{{ entry.details }}</p>\n }\n @if (entry.reqCodes && entry.reqCodes.length > 0) {\n <div class=\"flex flex-wrap gap-1 mt-2\">\n @for (req of entry.reqCodes; track req) {\n <span class=\"px-1.5 py-0.5 text-[10px] rounded bg-purple-900/30 text-purple-300 border border-purple-800 font-mono\">\n {{ req }}\n </span>\n }\n </div>\n }\n <app-pm-item-row-actions\n [showCcFix]=\"false\"\n [showCcWork]=\"true\"\n [showCcReview]=\"true\"\n [disabledCc]=\"!workspacePath?.trim()\"\n [disabledEdit]=\"entryMutationBusy_$()\"\n [disabledRemove]=\"entryMutationBusy_$()\"\n (edit)=\"handleOpenEdit(entry)\"\n (remove)=\"handleRemove(entry)\"\n (ccWork)=\"handleOpenCcWork(entry)\"\n (ccReview)=\"handleOpenCcReview(entry)\">\n </app-pm-item-row-actions>\n </div>\n }\n </div>\n </app-s-content-state>\n\n <app-pm-entry-raw-modal\n [isOpen]=\"rawModalOpen_$()\"\n [title]=\"rawModalTitle_$()\"\n [rawText]=\"rawModalBody_$()\"\n (closed)=\"handleCloseRawModal()\">\n </app-pm-entry-raw-modal>\n\n <app-pm-cc-launch-wizard\n [isOpen]=\"ccLaunchOpen_$()\"\n [modalTitle]=\"ccLaunchTitle_$()\"\n [sessionLabel]=\"ccLaunchLabel_$()\"\n [basePrompt]=\"ccLaunchBasePrompt_$()\"\n [workspacePath]=\"workspacePathForWizard_$()\"\n (closed)=\"handleCcLaunchClosed()\">\n </app-pm-cc-launch-wizard>\n\n <app-pm-control-entry-edit-modal\n [isOpen]=\"editModalOpen_$()\"\n [title]=\"editModalTitle_$()\"\n [initialText]=\"editModalInitial_$()\"\n (closed)=\"handleEditModalClosed()\"\n (saved)=\"handleEditSaved($event)\">\n </app-pm-control-entry-edit-modal>\n\n <app-s-modal [isOpen]=\"confirmModalOpen_$()\"\n [title]=\"confirmModalTitle_$()\"\n [maxWidth]=\"'md'\"\n (closed)=\"handleConfirmModalDismissed()\">\n <p class=\"text-sm text-neutral-300 whitespace-pre-wrap\">{{ confirmModalBody_$() }}</p>\n <div modal-footer\n class=\"flex items-center justify-end gap-2 px-4 py-3 border-t border-neutral-700 shrink-0 bg-neutral-900/80\">\n <button type=\"button\"\n (click)=\"handleConfirmModalCancel()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neutral-600 text-neutral-300\n hover:bg-neutral-700 transition-colors\">\n Cancel\n </button>\n <button type=\"button\"\n (click)=\"handleConfirmModalConfirm()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neonRed/60 text-neonRed/90\n hover:bg-neonRed/10 transition-colors\">\n Confirm\n </button>\n </div>\n </app-s-modal>\n</div>\n", "import {\n Component,\n computed,\n EventEmitter,\n inject,\n input,\n Input,\n InputSignal,\n OnChanges,\n Output,\n signal,\n SimpleChanges,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n PM_AppendBugsFromErrors_Response,\n PM_AppendSingleBugFromErrorOutcome_Type,\n PM_BacklogEntry_Interface,\n PM_BugsPathCandidate_Interface,\n PM_BugsPathResolution_Response,\n PM_ControlEntryMutationMode_Type,\n PM_ControlFileType_Type,\n PM_ControlFileContent_Response,\n PM_ManualBugCreate_Request,\n PM_ManualBugCreate_Response,\n} from '../../../../../_models/server-index';\nimport { PM_EntryRawModal_Component } from '../../pm-entry-raw-modal/pm-entry-raw-modal.component';\nimport { PM_CcLaunchWizard_Component } from '../../pm-cc-launch-wizard/pm-cc-launch-wizard.component';\nimport { PM_ControlEntryEditModal_Component } from '../pm-entry-mutation-ui/pm-control-entry-edit-modal.component';\nimport { PM_ItemRowActions_Component } from '../pm-entry-mutation-ui/pm-item-row-actions.component';\nimport { PM_ManualBugModal_Component } from './pm-manual-bug-modal.component';\nimport { PM_CcLaunchPrompt_Util } from '../../../_collections/utils/pm-cc-launch-prompt.util';\nimport { CCAP_ErrorListItem_Response } from '../../../../../_models/interfaces/feedback-errors/ccap-error-list-item.interface';\nimport { Errors_DataService } from '../../../../system/_modules/errors/_services/errors.data-service';\nimport { CCAP_GlobalError_ControlService } from '../../../../../_services/control-services/ccap-global-error.control-service';\nimport { ProjectManagement_DataService } from '../../../_services/data-services/project-management.data-service';\nimport { S_ContentState_Component } from '../../../../shared/_components/s-content-state/s-content-state.component';\nimport { S_Modal_Component } from '../../../../shared/_components/s-modal/s-modal.component';\nimport { PM_ControlFilePreambleDisclosure_Component } from '../pm-control-file-preamble-disclosure/pm-control-file-preamble-disclosure.component';\n\n/**\n * Egy sor a host error táblában (track key + megjelenítés; template-ben nincs track logika).\n */\ninterface PM_BugsTab_ErrorRow_Interface {\n rowKey: string;\n messageShort: string;\n occurrenceCount: number | undefined;\n source: string | undefined;\n idLabel: string | undefined;\n /** Központi rekord `_id` (üres ha hiányzik). */\n errorId: string;\n /** User / PM manuális megjelölés aktív-e. */\n isPmUserMarked: boolean;\n}\n\n/**\n * BUGS.md tab – parse-olt bug entry-k + CCAP host esetén központi error lista és BUGS.md append.\n */\n@Component({\n selector: 'app-pm-bugs-tab',\n standalone: true,\n imports: [\n CommonModule,\n S_ContentState_Component,\n PM_EntryRawModal_Component,\n PM_CcLaunchWizard_Component,\n PM_ControlEntryEditModal_Component,\n PM_ItemRowActions_Component,\n PM_ManualBugModal_Component,\n PM_ControlFilePreambleDisclosure_Component,\n S_Modal_Component,\n ],\n templateUrl: './pm-bugs-tab.component.html',\n})\n/** PM_BugsTab_Component class. */\nexport class PM_BugsTab_Component implements OnChanges {\n\n readonly bugsFileContent: InputSignal<PM_ControlFileContent_Response<PM_BacklogEntry_Interface> | null> =\n input<PM_ControlFileContent_Response<PM_BacklogEntry_Interface> | null>(null);\n readonly backlogFileContent: InputSignal<PM_ControlFileContent_Response<PM_BacklogEntry_Interface> | null> =\n input<PM_ControlFileContent_Response<PM_BacklogEntry_Interface> | null>(null);\n @Input() isLoading: boolean = false;\n @Input() error: unknown | null = null;\n @Input() projectId: string = '';\n @Input() isCcapRevisionedHost: boolean = false;\n @Input() workspacePath: string | undefined;\n\n @Output() readonly refresh: EventEmitter<void> = new EventEmitter<void>();\n\n readonly errors_DS: Errors_DataService = inject(Errors_DataService);\n private readonly pm_DS: ProjectManagement_DataService = inject(ProjectManagement_DataService);\n private readonly globalError_CS: CCAP_GlobalError_ControlService =\n inject(CCAP_GlobalError_ControlService);\n\n /** append-from-errors POST folyamatban. */\n readonly isAppendFromErrorsBusy_$ = signal<boolean>(false);\n\n /** Utolsó „Create bugs from unlinked errors” összefoglaló (számlálók). */\n readonly lastAppendFromErrorsSummary_$ = signal<string | null>(null);\n\n /** Utolsó soronkénti „bug from error” visszajelzés. */\n readonly lastSingleBugFromErrorSummary_$ = signal<string | null>(null);\n\n /** PM megjelölés POST folyamatban erre az error `_id`-re (üres = nincs). */\n readonly pmUserMarkBusyErrorId_$ = signal<string>('');\n\n /** Egy errorből BUGS append folyamatban erre az `_id`-re (üres = nincs). */\n readonly singleBugFromErrorBusyErrorId_$ = signal<string>('');\n\n /** Entry mutáció (edit/remove) alatt. */\n readonly entryMutationBusy_$ = signal<boolean>(false);\n\n /** Nyers `rawLines` modal. */\n readonly rawModalOpen_$ = signal<boolean>(false);\n readonly rawModalTitle_$ = signal<string>('');\n readonly rawModalBody_$ = signal<string>('');\n\n /** CC Session launch wizard. */\n readonly ccLaunchOpen_$ = signal<boolean>(false);\n readonly ccLaunchTitle_$ = signal<string>('');\n readonly ccLaunchLabel_$ = signal<string>('');\n readonly ccLaunchBasePrompt_$ = signal<string>('');\n\n /** Kézi bug modal. */\n readonly manualBugModalOpen_$ = signal<boolean>(false);\n\n /** Kézi bug POST folyamatban. */\n readonly manualBugBusy_$ = signal<boolean>(false);\n\n /** Utolsó kézi bug összefoglaló (BG kód). */\n readonly lastManualBugSummary_$ = signal<string | null>(null);\n\n /** GET …/files/bugs/resolve eredmény (ambiguitás UI). */\n readonly bugsPathResolve_$ = signal<PM_BugsPathResolution_Response | null>(null);\n\n /** BUGS path resolve fetch folyamatban. */\n readonly bugsPathResolveLoading_$ = signal<boolean>(false);\n\n /** Edit modal: előző blokk + szerkesztett szöveg. */\n readonly editModalOpen_$ = signal<boolean>(false);\n readonly editModalTitle_$ = signal<string>('');\n readonly editModalInitial_$ = signal<string>('');\n private editPriorBlock_: string = '';\n\n /** `S_Modal` megerősítő — entry törlés / linked error törlés. */\n readonly confirmModalOpen_$ = signal<boolean>(false);\n readonly confirmModalTitle_$ = signal<string>('');\n readonly confirmModalBody_$ = signal<string>('');\n private pendingConfirmAction_: (() => Promise<void>) | null = null;\n\n /** Workspace path a wizard input számára (signal). */\n readonly workspacePathForWizard_$ = computed((): string => this.workspacePath?.trim() ?? '');\n\n /** Központi error lista sorai (track + rövid üzenet). */\n readonly errorTableRows_$ = computed((): PM_BugsTab_ErrorRow_Interface[] => {\n const list: CCAP_ErrorListItem_Response[] = this.errors_DS.errors_$();\n return list.map(\n (e: CCAP_ErrorListItem_Response, i: number): PM_BugsTab_ErrorRow_Interface => {\n const rawMsg: string = e.message ?? '';\n const hasId: boolean = typeof e._id === 'string' && e._id.length > 0;\n const rowKey: string = hasId ? `e-${e._id}` : `i-${String(i)}`;\n const errorId: string = hasId ? String(e._id) : '';\n const markedRaw: string | undefined = e.pmUserMarkedAt?.trim();\n const isPmUserMarked: boolean = Boolean(markedRaw?.length);\n return {\n rowKey: rowKey,\n messageShort: PM_BugsTab_Component.truncateText(rawMsg, 100),\n occurrenceCount: e.occurrenceCount,\n source: e.source,\n idLabel: hasId ? e._id : undefined,\n errorId: errorId,\n isPmUserMarked: isPmUserMarked,\n };\n },\n );\n });\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.projectId != null || changes.isCcapRevisionedHost != null) {\n const pid: string = this.projectId?.trim() ?? '';\n if (!pid.length) {\n this.bugsPathResolve_$.set(null);\n } else {\n void this.loadBugsPathResolve(pid);\n }\n if (this.isCcapRevisionedHost && pid.length) {\n void this.errors_DS.loadErrors();\n }\n }\n }\n\n /**\n * BUGS.md jelöltek betöltése — több fájl esetén user választhat preferenciát.\n */\n private async loadBugsPathResolve(projectId: string): Promise<void> {\n this.bugsPathResolveLoading_$.set(true);\n try {\n const resolution = await this.pm_DS.getBugsPathResolve(projectId);\n this.bugsPathResolve_$.set(resolution);\n } catch (err: unknown) {\n this.bugsPathResolve_$.set(null);\n this.globalError_CS.showError(err, 'pm-bugs-path-resolve');\n } finally {\n this.bugsPathResolveLoading_$.set(false);\n }\n }\n\n /**\n * Preferált BUGS.md relatív útvonal mentése a projektbe, majd kontroll fájlok frissítése.\n */\n async handleSelectPreferredBugsPath(cand: PM_BugsPathCandidate_Interface): Promise<void> {\n const pid: string = this.projectId.trim();\n if (!pid.length) {\n return;\n }\n try {\n await this.pm_DS.updateProject(pid, { preferredBugsMdRelativePath: cand.relativeToProject });\n await this.loadBugsPathResolve(pid);\n this.refresh.emit();\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-bugs-prefer-path');\n }\n }\n\n readonly backlogBugs_$ = computed((): PM_BacklogEntry_Interface[] => {\n const content: PM_ControlFileContent_Response<PM_BacklogEntry_Interface> | null =\n this.backlogFileContent();\n if (!content?.entries) {\n return [];\n }\n return content.entries.filter(\n (e: PM_BacklogEntry_Interface): boolean => e.type === 'BUG',\n );\n });\n\n readonly hasContent_$ = computed((): boolean => {\n const bugsEntries: number = this.bugsFileContent()?.entries?.length ?? 0;\n return bugsEntries > 0 || this.backlogBugs_$().length > 0;\n });\n\n readonly isBacklogFallback_$ = computed((): boolean => {\n const bugs: PM_ControlFileContent_Response<PM_BacklogEntry_Interface> | null =\n this.bugsFileContent();\n return (!bugs?.exists || bugs.entries.length === 0)\n && this.backlogBugs_$().length > 0;\n });\n\n /**\n * Nyers entry blokk megnyitása modal-ban (BUGS.md vagy backlog fallback).\n */\n handleOpenRawBug(entry: PM_BacklogEntry_Interface, source: 'bugs' | 'backlog'): void {\n const prefix: string = source === 'backlog' ? 'BUG (from BACKLOG)' : 'BUGS';\n this.rawModalTitle_$.set(`${prefix} — ${entry.code}`);\n this.rawModalBody_$.set(entry.rawLines.join('\\n'));\n this.rawModalOpen_$.set(true);\n }\n\n /**\n * Nyers tartalom modal bezárása.\n */\n handleCloseRawModal(): void {\n this.rawModalOpen_$.set(false);\n this.rawModalTitle_$.set('');\n this.rawModalBody_$.set('');\n }\n\n /**\n * CC Session wizard megnyitása — fix.\n */\n handleOpenCcFixWizard(entry: PM_BacklogEntry_Interface): void {\n this.ccLaunchTitle_$.set(`CC Session — Fix ${entry.code}`);\n this.ccLaunchLabel_$.set(`PM ${entry.code}`);\n this.ccLaunchBasePrompt_$.set(PM_CcLaunchPrompt_Util.buildBugFixPrompt(entry));\n this.ccLaunchOpen_$.set(true);\n }\n\n /**\n * CC Session wizard megnyitása — review.\n */\n handleOpenCcReviewWizard(entry: PM_BacklogEntry_Interface): void {\n this.ccLaunchTitle_$.set(`CC Session — Review ${entry.code}`);\n this.ccLaunchLabel_$.set(`PM review ${entry.code}`);\n this.ccLaunchBasePrompt_$.set(PM_CcLaunchPrompt_Util.buildBugReviewPrompt(entry));\n this.ccLaunchOpen_$.set(true);\n }\n\n /**\n * CC launch wizard bezárás.\n */\n handleCcLaunchClosed(): void {\n this.ccLaunchOpen_$.set(false);\n this.ccLaunchBasePrompt_$.set('');\n }\n\n /**\n * Edit modal megnyitása (BUGS.md entry — közvetlen fájl).\n */\n handleOpenEditBugFromFile(entry: PM_BacklogEntry_Interface): void {\n if (!this.projectId?.length) {\n return;\n }\n const prior: string = entry.rawLines.join('\\n');\n this.editPriorBlock_ = prior;\n this.editModalTitle_$.set(`Edit BUGS — ${entry.code}`);\n this.editModalInitial_$.set(prior);\n this.editModalOpen_$.set(true);\n }\n\n /**\n * Edit modal megnyitása (backlog fallback BUG).\n */\n handleOpenEditBugFromBacklog(entry: PM_BacklogEntry_Interface): void {\n if (!this.projectId?.length) {\n return;\n }\n const prior: string = entry.rawLines.join('\\n');\n this.editPriorBlock_ = prior;\n this.editModalTitle_$.set(`Edit BACKLOG (BUG) — ${entry.code}`);\n this.editModalInitial_$.set(prior);\n this.editModalOpen_$.set(true);\n }\n\n /**\n * Edit modal bezárás.\n */\n handleEditModalClosed(): void {\n this.editModalOpen_$.set(false);\n this.editPriorBlock_ = '';\n }\n\n /**\n * Mentés: update mutation — `bugs` vagy `backlog` típus szerint.\n */\n async handleEditSaved(params: { newRawBlock: string }): Promise<void> {\n const pid: string = this.projectId.trim();\n if (!pid.length || this.entryMutationBusy_$()) {\n return;\n }\n const fileType: PM_ControlFileType_Type = this.isBacklogFallback_$()\n ? PM_ControlFileType_Type.backlog\n : PM_ControlFileType_Type.bugs;\n this.entryMutationBusy_$.set(true);\n try {\n await this.pm_DS.mutateControlFileEntryAndRefresh(pid, fileType, {\n mode: PM_ControlEntryMutationMode_Type.update,\n priorRawBlock: this.editPriorBlock_,\n newRawBlock: params.newRawBlock,\n });\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-bugs-entry-update');\n } finally {\n this.entryMutationBusy_$.set(false);\n }\n }\n\n /**\n * Remove entry — `S_Modal` megerősítés után mutáció.\n */\n handleRemoveBugEntry(entry: PM_BacklogEntry_Interface, fromBacklogFallback: boolean): void {\n const pid: string = this.projectId.trim();\n if (!pid.length || this.entryMutationBusy_$()) {\n return;\n }\n this.confirmModalTitle_$.set('Remove entry');\n this.confirmModalBody_$.set(\n `Remove entry ${entry.code} from the control file? This cannot be undone.`,\n );\n this.pendingConfirmAction_ = async (): Promise<void> => {\n await this.executeRemoveBugEntry(pid, entry, fromBacklogFallback);\n };\n this.confirmModalOpen_$.set(true);\n }\n\n /**\n * Entry törlés mutation (megerősítés után).\n */\n private async executeRemoveBugEntry(\n pid: string,\n entry: PM_BacklogEntry_Interface,\n fromBacklogFallback: boolean,\n ): Promise<void> {\n const fileType: PM_ControlFileType_Type = fromBacklogFallback\n ? PM_ControlFileType_Type.backlog\n : PM_ControlFileType_Type.bugs;\n const prior: string = entry.rawLines.join('\\n');\n this.entryMutationBusy_$.set(true);\n try {\n await this.pm_DS.mutateControlFileEntryAndRefresh(pid, fileType, {\n mode: PM_ControlEntryMutationMode_Type.remove,\n priorRawBlock: prior,\n });\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-bugs-entry-remove');\n } finally {\n this.entryMutationBusy_$.set(false);\n }\n }\n\n /**\n * Kézi bug modal megnyitása.\n */\n handleOpenManualBugModal(): void {\n if (!this.projectId?.trim().length) {\n return;\n }\n this.lastManualBugSummary_$.set(null);\n this.manualBugModalOpen_$.set(true);\n }\n\n /**\n * Kézi bug modal bezárás (cancel).\n */\n handleCloseManualBugModal(): void {\n this.manualBugModalOpen_$.set(false);\n }\n\n /**\n * Kézi bug létrehozása — BUGS.md + pm_user_request, majd fájlok és user request lista frissítése.\n */\n async handleManualBugSubmitted(body: PM_ManualBugCreate_Request): Promise<void> {\n const pid: string = this.projectId.trim();\n if (!pid.length || this.manualBugBusy_$()) {\n return;\n }\n this.manualBugBusy_$.set(true);\n this.lastManualBugSummary_$.set(null);\n try {\n const result: PM_ManualBugCreate_Response =\n await this.pm_DS.createManualBugAndRefresh(pid, body);\n this.manualBugModalOpen_$.set(false);\n this.lastManualBugSummary_$.set(\n `Created bug ${result.createdCode} (user request ${result.userRequestId}).`,\n );\n this.refresh.emit();\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-manual-bug-create');\n } finally {\n this.manualBugBusy_$.set(false);\n }\n }\n\n /**\n * Központi error tábla → BUGS.md append (szerver; utána a PM DS frissíti a fileContents-t).\n */\n async handleAppendBugsFromErrors(): Promise<void> {\n if (!this.projectId || this.isAppendFromErrorsBusy_$()) {\n return;\n }\n this.isAppendFromErrorsBusy_$.set(true);\n this.lastAppendFromErrorsSummary_$.set(null);\n this.lastSingleBugFromErrorSummary_$.set(null);\n try {\n const result: PM_AppendBugsFromErrors_Response =\n await this.pm_DS.appendBugsFromErrorsAndRefreshFiles(this.projectId);\n const parts: string[] = [];\n if (result.createdCodes.length > 0) {\n parts.push(\n `Created ${String(result.createdCodes.length)}: ${result.createdCodes.join(', ')}`,\n );\n }\n parts.push(`Skipped (already in BUGS.md): ${String(result.skippedAlreadyLinkedCount)}`);\n parts.push(`Skipped (no id): ${String(result.skippedMissingIdCount)}`);\n parts.push(`Skipped (user marked): ${String(result.skippedUserMarkedCount)}`);\n this.lastAppendFromErrorsSummary_$.set(parts.join(' · '));\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-bugs-append-from-errors');\n } finally {\n this.isAppendFromErrorsBusy_$.set(false);\n }\n }\n\n /**\n * Egy központi error → egy BUGS.md bejegyzés (ikon gomb).\n */\n async handleAppendSingleBugFromError(row: PM_BugsTab_ErrorRow_Interface): Promise<void> {\n const id: string = row.errorId.trim();\n if (!this.projectId?.length || !id.length) {\n return;\n }\n if (this.singleBugFromErrorBusyErrorId_$() === id) {\n return;\n }\n this.singleBugFromErrorBusyErrorId_$.set(id);\n this.lastSingleBugFromErrorSummary_$.set(null);\n try {\n const result = await this.pm_DS.appendSingleBugFromErrorAndRefreshFiles(this.projectId, id);\n if (\n result.outcome === PM_AppendSingleBugFromErrorOutcome_Type.created\n && result.createdCode != null\n && result.createdCode.length > 0\n ) {\n this.lastSingleBugFromErrorSummary_$.set(`Created bug ${result.createdCode}.`);\n return;\n }\n if (result.outcome === PM_AppendSingleBugFromErrorOutcome_Type.alreadyLinked) {\n this.lastSingleBugFromErrorSummary_$.set(\n 'This central error is already linked in BUGS.md.',\n );\n return;\n }\n if (result.outcome === PM_AppendSingleBugFromErrorOutcome_Type.userMarked) {\n this.lastSingleBugFromErrorSummary_$.set(\n 'This error is user-marked; unmark to create a bug from it.',\n );\n return;\n }\n if (result.outcome === PM_AppendSingleBugFromErrorOutcome_Type.errorNotFound) {\n this.lastSingleBugFromErrorSummary_$.set(\n 'Central error record not found (try Refresh).',\n );\n }\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-bugs-append-single-from-error');\n } finally {\n this.singleBugFromErrorBusyErrorId_$.set('');\n }\n }\n\n /**\n * Központi error sor PM megjelölése / jelölés törlése.\n */\n async handlePmUserMarkToggle(row: PM_BugsTab_ErrorRow_Interface): Promise<void> {\n const id: string = row.errorId.trim();\n if (!id.length || this.pmUserMarkBusyErrorId_$() === id) {\n return;\n }\n this.pmUserMarkBusyErrorId_$.set(id);\n try {\n await this.errors_DS.setPmUserMark(id, !row.isPmUserMarked);\n } finally {\n this.pmUserMarkBusyErrorId_$.set('');\n }\n }\n\n /**\n * Linkelt központi error rekord törlése — `S_Modal` megerősítés után.\n */\n handleRemoveLinkedError(entry: PM_BacklogEntry_Interface): void {\n const id: string | undefined = entry.linkedCcapErrorId?.trim();\n if (!id?.length) {\n return;\n }\n this.confirmModalTitle_$.set('Remove central error');\n this.confirmModalBody_$.set(`Remove central error record ${id} from the error table?`);\n this.pendingConfirmAction_ = async (): Promise<void> => {\n try {\n await this.errors_DS.clearOne(id);\n await this.errors_DS.loadErrors();\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-bugs-remove-linked-error');\n }\n };\n this.confirmModalOpen_$.set(true);\n }\n\n /**\n * Megerősítő modal bezárása (backdrop, Escape, X).\n */\n handleConfirmModalDismissed(): void {\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n }\n\n /** Cancel gomb. */\n handleConfirmModalCancel(): void {\n this.handleConfirmModalDismissed();\n }\n\n /** Confirm gomb: pending action. */\n async handleConfirmModalConfirm(): Promise<void> {\n const action: (() => Promise<void>) | null = this.pendingConfirmAction_;\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n if (action) {\n await action();\n }\n }\n\n /**\n * Szöveg rövidítés (egysoros megjelenítés).\n */\n private static truncateText(raw: string, maxLen: number): string {\n const t: string = raw.replace(/\\s+/g, ' ').trim();\n if (t.length <= maxLen) {\n return t.length > 0 ? t : '—';\n }\n return `${t.slice(0, maxLen - 1)}…`;\n }\n}\n", "<div class=\"flex flex-col gap-4\">\n <div class=\"flex flex-col gap-2\">\n <div class=\"flex flex-wrap gap-2\">\n <button type=\"button\"\n class=\"px-3 py-1.5 border border-neonRed/50 rounded text-neonRed/90 text-xs font-semibold\n hover:border-neonRed hover:bg-neonRed/10 transition-colors duration-200\n disabled:opacity-40 disabled:pointer-events-none\"\n [disabled]=\"!projectId.trim().length || manualBugBusy_$()\"\n (click)=\"handleOpenManualBugModal()\">\n New bug\n </button>\n </div>\n <div class=\"flex items-center justify-between gap-3 flex-wrap\">\n <div class=\"flex items-center gap-3 flex-wrap\">\n <h2 class=\"text-base font-semibold text-neutral-200\">Bugs</h2>\n @if (isBacklogFallback_$()) {\n <span class=\"text-xs text-neutral-500\">(from BACKLOG.md)</span>\n }\n </div>\n <button type=\"button\"\n (click)=\"refresh.emit()\"\n class=\"px-3 py-1.5 border border-neutral-500 rounded text-neutral-300 text-xs font-semibold shrink-0\n hover:border-ccapAccent hover:text-ccapAccent transition-colors duration-200\">\n Refresh\n </button>\n </div>\n </div>\n\n @if (bugsPathResolveLoading_$()) {\n <p class=\"text-[11px] text-neutral-500\">Resolving BUGS.md paths…</p>\n }\n\n @if (bugsPathResolve_$()?.isAmbiguous) {\n <div class=\"rounded-lg border border-amber-600/45 bg-amber-950/25 p-3 flex flex-col gap-2\">\n <p class=\"text-xs text-amber-100/90 leading-snug\">\n Multiple BUGS.md files were found under this project. Choose which file PM should use for reads and appends\n (saved as <span class=\"font-mono text-[10px]\">preferredBugsMdRelativePath</span> on the project).\n </p>\n <div class=\"flex flex-wrap gap-2\">\n @for (cand of bugsPathResolve_$()!.candidates; track cand.absolutePath) {\n <button type=\"button\"\n class=\"px-2.5 py-1 text-[11px] font-semibold rounded border border-amber-500/60 text-amber-100\n hover:bg-amber-500/15 disabled:opacity-40 disabled:pointer-events-none\"\n [disabled]=\"!projectId.trim().length\"\n (click)=\"handleSelectPreferredBugsPath(cand)\">\n {{ cand.relativeToProject }}\n </button>\n }\n </div>\n </div>\n }\n\n @if (lastManualBugSummary_$()) {\n <p class=\"text-[11px] text-emerald-400/90 leading-snug\">{{ lastManualBugSummary_$() }}</p>\n }\n\n @if (isCcapRevisionedHost) {\n <div class=\"rounded-lg border border-neonCyan/30 bg-neutral-900/40 p-3 flex flex-col gap-2\">\n <div class=\"flex items-center justify-between gap-2 flex-wrap\">\n <span class=\"text-xs font-semibold text-neutral-200\">Central error table (CCAP host)</span>\n <button type=\"button\"\n class=\"px-2 py-1 text-xs font-semibold rounded border border-ccapAccent text-ccapAccent\n hover:bg-ccapAccent/10 disabled:opacity-40 disabled:pointer-events-none\"\n [disabled]=\"!projectId || isAppendFromErrorsBusy_$() || errors_DS.errorsLoading_$()\"\n (click)=\"handleAppendBugsFromErrors()\">\n {{ isAppendFromErrorsBusy_$() ? 'Creating…' : 'Create bugs from unlinked errors' }}\n </button>\n </div>\n @if (lastAppendFromErrorsSummary_$()) {\n <p class=\"text-[11px] text-neutral-400 leading-snug\">{{ lastAppendFromErrorsSummary_$() }}</p>\n }\n @if (lastSingleBugFromErrorSummary_$()) {\n <p class=\"text-[11px] text-amber-200/80 leading-snug\">{{ lastSingleBugFromErrorSummary_$() }}</p>\n }\n @if (errors_DS.errorsLoadError_$()) {\n <div class=\"text-xs text-red-400\">{{ errors_DS.errorsLoadError_$() }}</div>\n }\n @if (errors_DS.errorsLoading_$()) {\n <div class=\"text-xs text-neutral-500\">Loading errors…</div>\n } @else if (!errorTableRows_$().length && !errors_DS.errorsLoadError_$()) {\n <div class=\"text-xs text-neutral-500\">No errors in the central table.</div>\n } @else if (errorTableRows_$().length) {\n <div class=\"overflow-x-auto max-h-48 overflow-y-auto border border-neutral-800 rounded\">\n <table class=\"w-full text-left text-[11px] text-neutral-300\">\n <thead class=\"sticky top-0 bg-neutral-900 text-neutral-500 uppercase tracking-wide\">\n <tr>\n <th class=\"px-2 py-1 font-medium\">Message</th>\n <th class=\"px-2 py-1 font-medium w-16\">Count</th>\n <th class=\"px-2 py-1 font-medium w-28\">Source</th>\n <th class=\"px-2 py-1 font-medium w-24\">Id</th>\n <th class=\"px-2 py-1 font-medium w-28\">Mark</th>\n <th class=\"px-2 py-1 font-medium w-10 text-center\" title=\"Create BUGS.md entry from this error\">\n Bug\n </th>\n </tr>\n </thead>\n <tbody>\n @for (row of errorTableRows_$(); track row.rowKey) {\n <tr class=\"border-t border-neutral-800/80\"\n [ngClass]=\"{ 'bg-amber-900/15': row.isPmUserMarked }\">\n <td class=\"px-2 py-1 align-top break-words max-w-[240px]\">{{ row.messageShort }}</td>\n <td class=\"px-2 py-1 align-top text-neutral-400\">{{ row.occurrenceCount ?? '—' }}</td>\n <td class=\"px-2 py-1 align-top text-neutral-500 truncate\">{{ row.source ?? '—' }}</td>\n <td class=\"px-2 py-1 align-top font-mono text-[10px] text-neutral-500 truncate\"\n [title]=\"row.idLabel ?? ''\">\n {{ row.idLabel ?? '—' }}\n </td>\n <td class=\"px-2 py-1 align-top whitespace-nowrap\">\n <button type=\"button\"\n class=\"px-1.5 py-0.5 text-[10px] font-semibold rounded border transition-colors\n disabled:opacity-40 disabled:pointer-events-none\"\n [ngClass]=\"{\n 'border-amber-500/60 text-amber-300': row.isPmUserMarked,\n 'border-neutral-600 text-neutral-300': !row.isPmUserMarked\n }\"\n [disabled]=\"!row.errorId.length || pmUserMarkBusyErrorId_$() === row.errorId\"\n (click)=\"handlePmUserMarkToggle(row)\">\n @if (pmUserMarkBusyErrorId_$() === row.errorId) {\n …\n } @else if (row.isPmUserMarked) {\n Unmark\n } @else {\n Mark\n }\n </button>\n </td>\n <td class=\"px-2 py-1 align-top text-center\">\n <button type=\"button\"\n class=\"inline-flex items-center justify-center p-1 rounded-md border border-neutral-600/70\n text-neutral-400 hover:border-ccapAccent hover:text-ccapAccent\n disabled:opacity-40 disabled:pointer-events-none transition-colors\"\n title=\"Create BUGS.md entry from this central error\"\n [disabled]=\"!row.errorId.length\n || errors_DS.errorsLoading_$()\n || isAppendFromErrorsBusy_$()\n || singleBugFromErrorBusyErrorId_$() === row.errorId\"\n (click)=\"handleAppendSingleBugFromError(row)\">\n @if (singleBugFromErrorBusyErrorId_$() === row.errorId) {\n <span class=\"text-[10px] font-mono text-neutral-500\">…</span>\n } @else {\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\"\n viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M12 4.5v15m7.5-7.5h-15\" />\n </svg>\n }\n </button>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n </div>\n }\n\n <app-s-content-state [isLoading]=\"isLoading\"\n [error]=\"error\"\n [isEmpty]=\"!hasContent_$() && !isLoading\"\n [emptyMessage]=\"'Nincs bug bejegyzes a projektben.'\"\n [loadingMessage]=\"'Betöltés…'\"\n (retry)=\"refresh.emit()\">\n\n <app-pm-control-file-preamble-disclosure [filePreamble]=\"bugsFileContent()?.filePreamble\">\n </app-pm-control-file-preamble-disclosure>\n\n <!-- BUGS.md entry-k (ha vannak) -->\n @if (bugsFileContent()?.entries?.length) {\n <div class=\"flex flex-col gap-2\">\n @for (entry of bugsFileContent()!.entries; track entry.code) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonRed/30 p-4\">\n <div class=\"flex items-start justify-between gap-2 flex-wrap w-full\">\n <div class=\"flex items-start gap-2 flex-wrap min-w-0 flex-1\">\n <span class=\"text-lg shrink-0\">{{ entry.statusEmoji }}</span>\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-900 text-neonCyan border border-neonCyan/40 font-mono shrink-0\">\n {{ entry.code }}\n </span>\n <span class=\"text-sm font-semibold text-neutral-100 min-w-0 break-words\">{{ entry.title }}</span>\n </div>\n <button type=\"button\"\n class=\"shrink-0 p-1.5 rounded-full border border-neutral-600/60 text-neutral-400\n hover:border-ccapAccent hover:text-ccapAccent transition-colors\"\n title=\"Raw entry\"\n (click)=\"handleOpenRawBug(entry, 'bugs')\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z\" />\n </svg>\n </button>\n </div>\n <div class=\"flex flex-wrap gap-x-4 gap-y-1 mt-2 text-xs text-neutral-400\">\n @if (entry.priority) {\n <span>\n <span class=\"text-neutral-500\">priority:</span>\n <span class=\"font-medium\"\n [class.text-red-400]=\"entry.priority === 'urgent'\"\n [class.text-amber-400]=\"entry.priority === 'high'\">\n {{ entry.priority }}\n </span>\n </span>\n }\n @if (entry.area) {\n <span><span class=\"text-neutral-500\">area:</span> {{ entry.area }}</span>\n }\n @if (entry.linkedCcapErrorId) {\n <span class=\"font-mono text-[10px] text-neutral-500\">\n linked error: {{ entry.linkedCcapErrorId }}\n </span>\n }\n </div>\n @if (entry.details) {\n <p class=\"text-neutral-400 text-xs mt-1.5\">{{ entry.details }}</p>\n }\n <app-pm-item-row-actions\n [showCcWork]=\"false\"\n [showCcFix]=\"true\"\n [showCcReview]=\"true\"\n [disabledCc]=\"!workspacePath?.trim()\"\n [disabledEdit]=\"entryMutationBusy_$()\"\n [disabledRemove]=\"entryMutationBusy_$()\"\n (edit)=\"handleOpenEditBugFromFile(entry)\"\n (remove)=\"handleRemoveBugEntry(entry, false)\"\n (ccFix)=\"handleOpenCcFixWizard(entry)\"\n (ccReview)=\"handleOpenCcReviewWizard(entry)\">\n </app-pm-item-row-actions>\n @if (entry.linkedCcapErrorId?.trim()) {\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-700 text-neutral-400 mt-2\n hover:border-red-500/60 hover:text-red-300\"\n (click)=\"handleRemoveLinkedError(entry)\">\n Remove error from DB\n </button>\n }\n </div>\n }\n </div>\n }\n\n <app-pm-control-file-preamble-disclosure [filePreamble]=\"backlogFileContent()?.filePreamble\">\n </app-pm-control-file-preamble-disclosure>\n\n <!-- Backlog fallback BUG entry-k -->\n @if (isBacklogFallback_$()) {\n <div class=\"flex flex-col gap-2\">\n @for (entry of backlogBugs_$(); track entry.code) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonRed/30 p-4\">\n <div class=\"flex items-start justify-between gap-2 flex-wrap w-full\">\n <div class=\"flex items-start gap-2 flex-wrap min-w-0 flex-1\">\n <span class=\"text-lg shrink-0\">{{ entry.statusEmoji }}</span>\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-900 text-neonCyan border border-neonCyan/40 font-mono shrink-0\">\n {{ entry.code }}\n </span>\n <span class=\"text-sm font-semibold text-neutral-100 min-w-0 break-words\">{{ entry.title }}</span>\n <span class=\"px-1.5 py-0.5 text-[10px] rounded bg-neutral-800 text-neutral-500 border border-neutral-700\">\n from BACKLOG\n </span>\n </div>\n <button type=\"button\"\n class=\"shrink-0 p-1.5 rounded-full border border-neutral-600/60 text-neutral-400\n hover:border-ccapAccent hover:text-ccapAccent transition-colors\"\n title=\"Raw entry\"\n (click)=\"handleOpenRawBug(entry, 'backlog')\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z\" />\n </svg>\n </button>\n </div>\n <div class=\"flex flex-wrap gap-x-4 gap-y-1 mt-2 text-xs text-neutral-400\">\n @if (entry.priority) {\n <span>\n <span class=\"text-neutral-500\">priority:</span>\n <span class=\"font-medium\"\n [class.text-red-400]=\"entry.priority === 'urgent'\"\n [class.text-amber-400]=\"entry.priority === 'high'\">\n {{ entry.priority }}\n </span>\n </span>\n }\n @if (entry.area) {\n <span><span class=\"text-neutral-500\">area:</span> {{ entry.area }}</span>\n }\n @if (entry.linkedCcapErrorId) {\n <span class=\"font-mono text-[10px] text-neutral-500\">\n linked error: {{ entry.linkedCcapErrorId }}\n </span>\n }\n </div>\n @if (entry.details) {\n <p class=\"text-neutral-400 text-xs mt-1.5\">{{ entry.details }}</p>\n }\n <app-pm-item-row-actions\n [showCcWork]=\"false\"\n [showCcFix]=\"true\"\n [showCcReview]=\"true\"\n [disabledCc]=\"!workspacePath?.trim()\"\n [disabledEdit]=\"entryMutationBusy_$()\"\n [disabledRemove]=\"entryMutationBusy_$()\"\n (edit)=\"handleOpenEditBugFromBacklog(entry)\"\n (remove)=\"handleRemoveBugEntry(entry, true)\"\n (ccFix)=\"handleOpenCcFixWizard(entry)\"\n (ccReview)=\"handleOpenCcReviewWizard(entry)\">\n </app-pm-item-row-actions>\n @if (entry.linkedCcapErrorId?.trim()) {\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-700 text-neutral-400 mt-2\n hover:border-red-500/60 hover:text-red-300\"\n (click)=\"handleRemoveLinkedError(entry)\">\n Remove error from DB\n </button>\n }\n </div>\n }\n </div>\n }\n </app-s-content-state>\n\n <app-pm-entry-raw-modal\n [isOpen]=\"rawModalOpen_$()\"\n [title]=\"rawModalTitle_$()\"\n [rawText]=\"rawModalBody_$()\"\n (closed)=\"handleCloseRawModal()\">\n </app-pm-entry-raw-modal>\n\n <app-pm-cc-launch-wizard\n [isOpen]=\"ccLaunchOpen_$()\"\n [modalTitle]=\"ccLaunchTitle_$()\"\n [sessionLabel]=\"ccLaunchLabel_$()\"\n [basePrompt]=\"ccLaunchBasePrompt_$()\"\n [workspacePath]=\"workspacePathForWizard_$()\"\n (closed)=\"handleCcLaunchClosed()\">\n </app-pm-cc-launch-wizard>\n\n <app-pm-control-entry-edit-modal\n [isOpen]=\"editModalOpen_$()\"\n [title]=\"editModalTitle_$()\"\n [initialText]=\"editModalInitial_$()\"\n (closed)=\"handleEditModalClosed()\"\n (saved)=\"handleEditSaved($event)\">\n </app-pm-control-entry-edit-modal>\n\n <app-pm-manual-bug-modal\n [isOpen]=\"manualBugModalOpen_$()\"\n [isBusy]=\"manualBugBusy_$()\"\n (closed)=\"handleCloseManualBugModal()\"\n (submitted)=\"handleManualBugSubmitted($event)\">\n </app-pm-manual-bug-modal>\n\n <app-s-modal [isOpen]=\"confirmModalOpen_$()\"\n [title]=\"confirmModalTitle_$()\"\n [maxWidth]=\"'md'\"\n (closed)=\"handleConfirmModalDismissed()\">\n <p class=\"text-sm text-neutral-300 whitespace-pre-wrap\">{{ confirmModalBody_$() }}</p>\n <div modal-footer\n class=\"flex items-center justify-end gap-2 px-4 py-3 border-t border-neutral-700 shrink-0 bg-neutral-900/80\">\n <button type=\"button\"\n (click)=\"handleConfirmModalCancel()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neutral-600 text-neutral-300\n hover:bg-neutral-700 transition-colors\">\n Cancel\n </button>\n <button type=\"button\"\n (click)=\"handleConfirmModalConfirm()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neonRed/60 text-neonRed/90\n hover:bg-neonRed/10 transition-colors\">\n Confirm\n </button>\n </div>\n </app-s-modal>\n</div>\n", "import { Component, computed, EventEmitter, input, Input, InputSignal, Output, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PM_ChangelogEntry_Interface, PM_ControlFileContent_Response } from '../../../../../_models/server-index';\nimport { PM_EntryRawModal_Component } from '../../pm-entry-raw-modal/pm-entry-raw-modal.component';\nimport { S_ContentState_Component } from '../../../../shared/_components/s-content-state/s-content-state.component';\nimport { PM_ControlFilePreambleDisclosure_Component } from '../pm-control-file-preamble-disclosure/pm-control-file-preamble-disclosure.component';\n\n/**\n * CHANGELOG.md tab – parse-olt changelog entry-k verzió szekciókba csoportosítva.\n */\n@Component({\n selector: 'app-pm-changelog-tab',\n standalone: true,\n imports: [\n CommonModule,\n S_ContentState_Component,\n PM_EntryRawModal_Component,\n PM_ControlFilePreambleDisclosure_Component,\n ],\n templateUrl: './pm-changelog-tab.component.html',\n})\n/** PM_ChangelogTab_Component class. */\nexport class PM_ChangelogTab_Component {\n\n readonly fileContent: InputSignal<PM_ControlFileContent_Response<PM_ChangelogEntry_Interface> | null> =\n input<PM_ControlFileContent_Response<PM_ChangelogEntry_Interface> | null>(null);\n @Input() isLoading: boolean = false;\n @Input() error: unknown | null = null;\n\n @Output() readonly refresh: EventEmitter<void> = new EventEmitter<void>();\n\n /** Nyers `rawLines` modal. */\n readonly rawModalOpen_$ = signal<boolean>(false);\n readonly rawModalTitle_$ = signal<string>('');\n readonly rawModalBody_$ = signal<string>('');\n\n /**\n * Nyers entry blokk megnyitása modal-ban.\n */\n handleOpenRawChangelog(entry: PM_ChangelogEntry_Interface): void {\n this.rawModalTitle_$.set(`CHANGELOG v${entry.version} — ${entry.code}`);\n this.rawModalBody_$.set(entry.rawLines.join('\\n'));\n this.rawModalOpen_$.set(true);\n }\n\n /**\n * Nyers tartalom modal bezárása.\n */\n handleCloseRawModal(): void {\n this.rawModalOpen_$.set(false);\n this.rawModalTitle_$.set('');\n this.rawModalBody_$.set('');\n }\n\n readonly versionSections_$ = computed(\n (): { version: string; entries: PM_ChangelogEntry_Interface[] }[] => {\n const content: PM_ControlFileContent_Response<PM_ChangelogEntry_Interface> | null =\n this.fileContent();\n if (!content?.entries?.length) {\n return [];\n }\n const map: Map<string, PM_ChangelogEntry_Interface[]> =\n new Map<string, PM_ChangelogEntry_Interface[]>();\n const order: string[] = [];\n for (const entry of content.entries) {\n const ver: string = entry.version;\n if (!map.has(ver)) {\n map.set(ver, []);\n order.push(ver);\n }\n map.get(ver)!.push(entry);\n }\n return order.map(\n (ver: string): { version: string; entries: PM_ChangelogEntry_Interface[] } => ({\n version: ver,\n entries: map.get(ver)!,\n }),\n );\n },\n );\n}\n", "<div class=\"flex flex-col gap-4\">\n <div class=\"flex items-center justify-between gap-3\">\n <div class=\"flex items-center gap-3\">\n <h2 class=\"text-base font-semibold text-neutral-200\">CHANGELOG.md</h2>\n @if (fileContent() != null && fileContent()!.metadata != null && fileContent()!.metadata.lineCount) {\n <span class=\"text-xs text-neutral-500\">{{ fileContent()!.metadata.lineCount }} sor</span>\n }\n @if (fileContent()?.entries?.length) {\n <span class=\"text-xs text-neutral-400\">{{ fileContent()!.entries.length }} entry</span>\n }\n </div>\n <button type=\"button\"\n (click)=\"refresh.emit()\"\n class=\"px-3 py-1.5 border border-neutral-500 rounded text-neutral-300 text-xs font-semibold\n hover:border-ccapAccent hover:text-ccapAccent transition-colors duration-200\">\n Refresh\n </button>\n </div>\n\n <app-pm-control-file-preamble-disclosure [filePreamble]=\"fileContent()?.filePreamble\">\n </app-pm-control-file-preamble-disclosure>\n\n <app-s-content-state [isLoading]=\"isLoading\"\n [error]=\"error\"\n [isEmpty]=\"!fileContent() || !fileContent()!.exists\"\n [emptyMessage]=\"'A projekt nem tartalmaz CHANGELOG.md fájlt.'\"\n [loadingMessage]=\"'Betöltés…'\"\n (retry)=\"refresh.emit()\">\n\n @if (fileContent() && fileContent()!.error) {\n <div class=\"rounded-lg bg-red-900/20 border border-red-800/50 p-3 mb-3\">\n <p class=\"text-red-400 text-xs\">{{ fileContent()!.error }}</p>\n </div>\n }\n\n @for (section of versionSections_$(); track section.version) {\n <div class=\"mb-4\">\n <h3 class=\"text-sm font-bold text-neutral-300 mb-2 border-b border-neutral-700 pb-1\">\n v{{ section.version }}\n <span class=\"text-neutral-500 font-normal ml-2\">({{ section.entries.length }})</span>\n </h3>\n <div class=\"flex flex-col gap-2\">\n @for (entry of section.entries; track entry.code) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-3\">\n <div class=\"flex items-start justify-between gap-2 flex-wrap w-full\">\n <div class=\"flex items-start gap-2 flex-wrap min-w-0 flex-1\">\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-700 text-neutral-300 border border-neutral-600 font-mono uppercase shrink-0\">\n {{ entry.type }}\n </span>\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-900 text-neonCyan border border-neonCyan/40 font-mono shrink-0\">\n {{ entry.code }}\n </span>\n <span class=\"text-sm text-neutral-100 min-w-0 break-words\">{{ entry.title }}</span>\n </div>\n <button type=\"button\"\n class=\"shrink-0 p-1.5 rounded-full border border-neutral-600/60 text-neutral-400\n hover:border-ccapAccent hover:text-ccapAccent transition-colors\"\n title=\"Raw entry\"\n (click)=\"handleOpenRawChangelog(entry)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z\" />\n </svg>\n </button>\n </div>\n @if (entry.summary) {\n <p class=\"text-neutral-400 text-xs mt-1.5\">{{ entry.summary }}</p>\n }\n <div class=\"flex flex-wrap gap-x-4 gap-y-1 mt-1.5 text-[11px] text-neutral-500\">\n @if (entry.source) {\n <span>source: <span class=\"text-neutral-400 font-mono\">{{ entry.source }}</span></span>\n }\n @if (entry.area) {\n <span>area: {{ entry.area }}</span>\n }\n @if (entry.doc && entry.doc !== 'n/a') {\n <span>doc: <span class=\"text-neutral-400 font-mono\">{{ entry.doc }}</span></span>\n }\n </div>\n @if (entry.reqCodes && entry.reqCodes.length > 0) {\n <div class=\"flex flex-wrap gap-1 mt-1.5\">\n @for (req of entry.reqCodes; track req) {\n <span class=\"px-1.5 py-0.5 text-[10px] rounded bg-purple-900/30 text-purple-300 border border-purple-800 font-mono\">\n {{ req }}\n </span>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n </app-s-content-state>\n\n <app-pm-entry-raw-modal\n [isOpen]=\"rawModalOpen_$()\"\n [title]=\"rawModalTitle_$()\"\n [rawText]=\"rawModalBody_$()\"\n (closed)=\"handleCloseRawModal()\">\n </app-pm-entry-raw-modal>\n</div>\n", "import { Component, computed, input, output, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n PM_ControlFileContent_Response,\n PM_TestErrorReportEntry_Interface,\n PM_TestErrorReportKind_Type,\n} from '../../../../../_models/server-index';\nimport { S_ContentState_Component } from '../../../../shared/_components/s-content-state/s-content-state.component';\n\n/**\n * TEST-ERROR-REPORTS.json tab – build + E2E error report rekordok (file-sync, read-only lista + Clear).\n */\n@Component({\n selector: 'app-pm-test-error-reports-tab',\n standalone: true,\n imports: [CommonModule, S_ContentState_Component],\n templateUrl: './pm-test-error-reports-tab.component.html',\n})\n/** PM_TestErrorReportsTab_Component class. */\nexport class PM_TestErrorReportsTab_Component {\n\n /** Parse-olt report wrapper (PM file sync). */\n readonly fileContent =\n input<PM_ControlFileContent_Response<PM_TestErrorReportEntry_Interface> | null>(null);\n\n /** Lista betöltés alatt. */\n readonly isLoading = input<boolean>(false);\n\n /** Általános sync hiba. */\n readonly error = input<unknown | null>(null);\n\n /** Clear POST fut alatt. */\n readonly isClearing = input<boolean>(false);\n\n /** Enum a template badge összehasonlításokhoz. */\n readonly reportKindEnum: typeof PM_TestErrorReportKind_Type = PM_TestErrorReportKind_Type;\n\n /** Szűrő: összes / csak E2E / csak build (nem e2e) stream. */\n readonly filterMode_$ = signal<'all' | 'e2e' | 'build'>('all');\n\n readonly refresh = output<void>();\n readonly clearFile = output<void>();\n\n /**\n * Aktív szűrőnek megfelelő rekordok (signature stabil track-hez).\n */\n readonly filteredEntries_$ = computed((): PM_TestErrorReportEntry_Interface[] => {\n const fc: PM_ControlFileContent_Response<PM_TestErrorReportEntry_Interface> | null =\n this.fileContent();\n const entries: PM_TestErrorReportEntry_Interface[] = fc?.entries ?? [];\n const mode: 'all' | 'e2e' | 'build' = this.filterMode_$();\n if (mode === 'all') {\n return entries;\n }\n if (mode === 'e2e') {\n return entries.filter((e: PM_TestErrorReportEntry_Interface): boolean =>\n e.reportKind === PM_TestErrorReportKind_Type.e2e,\n );\n }\n return entries.filter((e: PM_TestErrorReportEntry_Interface): boolean =>\n e.reportKind !== PM_TestErrorReportKind_Type.e2e,\n );\n });\n\n /**\n * Chip kattintás – szűrő mód váltás.\n */\n handleSetFilter(mode: 'all' | 'e2e' | 'build'): void {\n this.filterMode_$.set(mode);\n }\n}\n", "<div class=\"flex flex-col gap-4\">\n <div class=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between\">\n <div>\n <h2 class=\"text-base font-semibold text-neutral-200\">Test &amp; build error reports</h2>\n <p class=\"text-xs text-neutral-500 mt-1\">\n TEST-ERROR-REPORTS.json — E2E és build/unit stream egy fájlban (<code class=\"text-neutral-400\">reportKind</code>).\n </p>\n </div>\n <div class=\"flex flex-wrap items-center gap-2\">\n <button type=\"button\"\n (click)=\"refresh.emit()\"\n [disabled]=\"isLoading()\"\n class=\"px-3 py-1.5 border border-neutral-500 rounded text-neutral-300 text-xs font-semibold\n hover:border-ccapAccent hover:text-ccapAccent transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n Refresh\n </button>\n <button type=\"button\"\n (click)=\"clearFile.emit()\"\n [disabled]=\"isClearing() || isLoading()\"\n class=\"px-3 py-1.5 border border-red-800/60 rounded text-red-300 text-xs font-semibold\n hover:border-red-500 hover:text-red-200 transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n Clear file\n </button>\n </div>\n </div>\n\n <div class=\"flex flex-wrap gap-2\">\n <button type=\"button\"\n (click)=\"handleSetFilter('all')\"\n class=\"px-2.5 py-1 rounded text-xs font-medium border transition-colors duration-200\"\n [class.border-ccapAccent]=\"filterMode_$() === 'all'\"\n [class.text-ccapAccent]=\"filterMode_$() === 'all'\"\n [class.border-neutral-600]=\"filterMode_$() !== 'all'\"\n [class.text-neutral-400]=\"filterMode_$() !== 'all'\">\n All\n </button>\n <button type=\"button\"\n (click)=\"handleSetFilter('e2e')\"\n class=\"px-2.5 py-1 rounded text-xs font-medium border transition-colors duration-200\"\n [class.border-ccapAccent]=\"filterMode_$() === 'e2e'\"\n [class.text-ccapAccent]=\"filterMode_$() === 'e2e'\"\n [class.border-neutral-600]=\"filterMode_$() !== 'e2e'\"\n [class.text-neutral-400]=\"filterMode_$() !== 'e2e'\">\n E2E\n </button>\n <button type=\"button\"\n (click)=\"handleSetFilter('build')\"\n class=\"px-2.5 py-1 rounded text-xs font-medium border transition-colors duration-200\"\n [class.border-ccapAccent]=\"filterMode_$() === 'build'\"\n [class.text-ccapAccent]=\"filterMode_$() === 'build'\"\n [class.border-neutral-600]=\"filterMode_$() !== 'build'\"\n [class.text-neutral-400]=\"filterMode_$() !== 'build'\">\n Build\n </button>\n </div>\n\n <app-s-content-state [isLoading]=\"isLoading()\"\n [error]=\"error()\"\n [isEmpty]=\"!fileContent() || !fileContent()!.exists\"\n [emptyMessage]=\"'Nincs TEST-ERROR-REPORTS.json a projektben (opcionális fájl).'\"\n [loadingMessage]=\"'Betöltés…'\"\n (retry)=\"refresh.emit()\">\n\n @if (fileContent(); as fc) {\n @if (fc.error) {\n <div class=\"rounded-lg bg-red-900/20 border border-red-800/50 p-3 mb-3\">\n <p class=\"text-red-400 text-xs\">{{ fc.error }}</p>\n </div>\n }\n\n @if (fc.exists && fc.metadata != null && fc.metadata.lineCount != null) {\n <p class=\"text-xs text-neutral-500 mb-3\">\n {{ fc.metadata.lineCount }} sor a fájlban\n </p>\n }\n }\n\n <div class=\"flex flex-col gap-2\">\n @for (entry of filteredEntries_$(); track entry.signature) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-3\">\n <div class=\"flex flex-wrap items-center gap-2 mb-2\">\n @if (entry.reportKind === reportKindEnum.e2e) {\n <span class=\"px-2 py-0.5 text-[10px] rounded uppercase tracking-wide bg-purple-900/40 text-purple-200 border border-purple-700/50\">\n E2E\n </span>\n } @else {\n <span class=\"px-2 py-0.5 text-[10px] rounded uppercase tracking-wide bg-amber-900/40 text-amber-200 border border-amber-700/50\">\n Build\n </span>\n }\n <span class=\"text-[11px] text-neutral-500 font-mono\">{{ entry.reportKind }}</span>\n <span class=\"text-[11px] text-neutral-500\">{{ entry.recordedAt }}</span>\n </div>\n <p class=\"text-sm text-neutral-100 break-words\">{{ entry.message }}</p>\n @if (entry.stackTop) {\n <pre class=\"text-[11px] text-neutral-400 mt-2 whitespace-pre-wrap font-mono\">{{ entry.stackTop }}</pre>\n }\n @if (entry.meta && (entry.meta['specFile'] || entry.meta['testTitle'])) {\n <div class=\"mt-2 text-[11px] text-neutral-500 flex flex-col gap-0.5\">\n @if (entry.meta['specFile']) {\n <span>spec: <span class=\"text-neutral-400 font-mono\">{{ entry.meta['specFile'] }}</span></span>\n }\n @if (entry.meta['testTitle']) {\n <span>test: {{ entry.meta['testTitle'] }}</span>\n }\n </div>\n }\n </div>\n }\n </div>\n </app-s-content-state>\n</div>\n", "import { Component, computed, EventEmitter, Input, Output, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n DT_DeveloperReviewMeta_Response,\n DT_DeveloperRun_Response,\n DT_DeveloperReviewResult_Interface,\n DT_DeveloperReviewIssue_Interface,\n DT_DeveloperReviewIssueSourceLine_Interface,\n} from '../../../../../_models/server-index';\nimport { S_ContentState_Component } from '../../../../shared/_components/s-content-state/s-content-state.component';\nimport { S_CopyButton_Component } from '../../../../shared/_components/s-copy-button/s-copy-button.component';\n\n/**\n * Reviews tab – developer kód minőség review-k futtatása a projekt localPath-ján.\n * Checkboxokkal kiválaszthatók az egyes review-k, futtathatók egyenként vagy batch-ben.\n */\n@Component({\n selector: 'app-pm-reviews-tab',\n standalone: true,\n imports: [CommonModule, S_ContentState_Component, S_CopyButton_Component],\n templateUrl: './pm-reviews-tab.component.html',\n})\n/** PM_ReviewsTab_Component class. */\nexport class PM_ReviewsTab_Component {\n\n /** Elérhető review-k metaadatai. */\n @Input() reviewsMeta: DT_DeveloperReviewMeta_Response[] = [];\n\n /** Utolsó review futtatás eredménye. */\n @Input() reviewResult: DT_DeveloperRun_Response | null = null;\n\n /** Meta betöltés folyamatban. */\n @Input() isMetaLoading: boolean = false;\n\n /** Review futtatás folyamatban. */\n @Input() isRunning: boolean = false;\n\n /** Meta betöltési hiba. */\n @Input() metaError: unknown | null = null;\n\n /** Review futtatási hiba. */\n @Input() runError: unknown | null = null;\n\n /** Review-ok futtatása – reviewIds (szelektív) vagy undefined (összes). */\n @Output() readonly runReviews: EventEmitter<string[] | undefined> =\n new EventEmitter<string[] | undefined>();\n\n /** Meta újratöltés kérése. */\n @Output() readonly refreshMeta: EventEmitter<void> = new EventEmitter<void>();\n\n /** Kiválasztott review ID-k (checkbox state). */\n readonly selectedReviewIds_$ = signal<Set<string>>(new Set<string>());\n\n /** Van-e legalább egy kiválasztott review. */\n readonly hasSelection_$ = computed(\n (): boolean => this.selectedReviewIds_$().size > 0,\n );\n\n /** Eredmény szöveg a vágólapra (linter-stílusú plain text riport forráskód kontextussal). */\n readonly clipboardText_$ = computed((): string => {\n const result: DT_DeveloperRun_Response | null = this.reviewResult;\n if (!result) {\n return '';\n }\n const lines: string[] = [\n 'Code Review Report',\n '==================',\n `Executed: ${result.executedAt}`,\n `Target: ${result.targetPath}`,\n `Total issues: ${result.totalIssueCnt} | Failed: ${result.failedReviewCnt}/${result.results.length}`,\n '',\n ];\n for (const r of result.results) {\n const status: string = r.isPassed ? 'PASSED' : `FAILED - ${r.issueCnt} issue(s)`;\n lines.push(`--- ${r.reviewName} (${status}) ---`);\n if (r.isPassed) {\n lines.push(' No issues found.');\n } else {\n for (const issue of r.issues) {\n const loc: string = issue.line ? `${issue.filePath}:${issue.line}` : issue.filePath;\n lines.push('');\n lines.push(` ${loc}`);\n if (issue.sourceLines && issue.sourceLines.length > 0) {\n const maxNum: number =\n issue.sourceLines[issue.sourceLines.length - 1].lineNumber;\n const pad: number = String(maxNum).length;\n for (const sl of issue.sourceLines) {\n const prefix: string = sl.lineNumber === issue.line ? '>' : ' ';\n const numStr: string = String(sl.lineNumber).padStart(pad);\n lines.push(` ${prefix} ${numStr} | ${sl.content}`);\n }\n }\n lines.push(` ⚠ ${issue.message}`);\n }\n }\n lines.push('');\n }\n return lines.join('\\n');\n });\n\n /** Checkbox toggle egyedi review-ra. */\n handleToggleReview(reviewId: string): void {\n this.selectedReviewIds_$.update((set: Set<string>): Set<string> => {\n const next: Set<string> = new Set<string>(set);\n if (next.has(reviewId)) {\n next.delete(reviewId);\n } else {\n next.add(reviewId);\n }\n return next;\n });\n }\n\n /** Összes kijelölése / kijelölés törlése. */\n handleToggleAll(): void {\n const allIds: string[] = this.reviewsMeta.map(\n (r: DT_DeveloperReviewMeta_Response): string => r.reviewId,\n );\n const isAllSelected: boolean = this.selectedReviewIds_$().size === allIds.length;\n if (isAllSelected) {\n this.selectedReviewIds_$.set(new Set<string>());\n } else {\n this.selectedReviewIds_$.set(new Set<string>(allIds));\n }\n }\n\n /** Kiválasztott review-k futtatása. */\n handleRunSelected(): void {\n const ids: string[] = Array.from(this.selectedReviewIds_$());\n this.runReviews.emit(ids.length > 0 ? ids : undefined);\n }\n\n /** Összes review futtatása. */\n handleRunAll(): void {\n this.runReviews.emit(undefined);\n }\n\n /** Egyetlen review futtatása (sorból). */\n handleRunSingle(reviewId: string): void {\n this.runReviews.emit([reviewId]);\n }\n}\n", "<div class=\"flex flex-col gap-4\">\n\n <!-- Fejléc: cím + akciógombok -->\n <div class=\"flex items-center justify-between gap-3 flex-wrap\">\n <h2 class=\"text-base font-semibold text-neutral-200\">Code Reviews</h2>\n <div class=\"flex items-center gap-2\">\n <button type=\"button\"\n (click)=\"handleRunSelected()\"\n [disabled]=\"isRunning || !hasSelection_$()\"\n class=\"px-3 py-1.5 border border-neonCyan rounded text-neonCyan text-xs font-semibold\n hover:bg-neonCyan/10 transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (isRunning) { Running... } @else { Run Selected }\n </button>\n <button type=\"button\"\n (click)=\"handleRunAll()\"\n [disabled]=\"isRunning\"\n class=\"px-3 py-1.5 border border-ccapAccent rounded text-ccapAccent text-xs font-semibold\n hover:bg-ccapAccent/10 transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (isRunning) { Running... } @else { Run All }\n </button>\n </div>\n </div>\n\n <!-- Review lista – meta loading/error/empty state -->\n <app-s-content-state\n [isLoading]=\"isMetaLoading\"\n [error]=\"metaError\"\n [isEmpty]=\"reviewsMeta.length === 0\"\n emptyMessage=\"Nincs elérhető review.\"\n errorSourceLabel=\"Review meta\"\n (retry)=\"refreshMeta.emit()\">\n </app-s-content-state>\n\n <!-- Review lista – checkboxok -->\n @if (!isMetaLoading && !metaError && reviewsMeta.length > 0) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n\n <!-- Select All fejléc -->\n <label class=\"flex items-center gap-2 pb-3 mb-3 border-b border-neutral-700 cursor-pointer\n text-xs text-neutral-400 hover:text-neutral-200 transition-colors duration-200\">\n <input type=\"checkbox\"\n [checked]=\"selectedReviewIds_$().size === reviewsMeta.length && reviewsMeta.length > 0\"\n (change)=\"handleToggleAll()\"\n class=\"accent-ccapAccent w-3.5 h-3.5\" />\n Select All ({{ reviewsMeta.length }})\n </label>\n\n <!-- Review sorok -->\n <div class=\"flex flex-col gap-1.5 max-h-[480px] overflow-y-auto\">\n @for (review of reviewsMeta; track review.reviewId) {\n <div class=\"flex items-center gap-3 py-1.5 px-1 rounded\n hover:bg-neutral-700/40 transition-colors duration-150\">\n <input type=\"checkbox\"\n [checked]=\"selectedReviewIds_$().has(review.reviewId)\"\n (change)=\"handleToggleReview(review.reviewId)\"\n class=\"accent-ccapAccent w-3.5 h-3.5 shrink-0 cursor-pointer\" />\n <div class=\"flex-1 min-w-0\">\n <span class=\"text-sm text-neutral-200 font-medium\">{{ review.name }}</span>\n <span class=\"text-xs text-neutral-500 ml-2\">{{ review.description }}</span>\n </div>\n <button type=\"button\"\n (click)=\"handleRunSingle(review.reviewId)\"\n [disabled]=\"isRunning\"\n class=\"shrink-0 px-2 py-0.5 text-[10px] border border-neutral-600 rounded\n text-neutral-400 hover:border-neonCyan hover:text-neonCyan\n transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n Run\n </button>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Futtatási hiba -->\n @if (runError) {\n <app-s-content-state\n [isLoading]=\"false\"\n [error]=\"runError\"\n [isEmpty]=\"false\"\n errorSourceLabel=\"Review futtatás\">\n </app-s-content-state>\n }\n\n <!-- Eredmények – plain text nézet, pontosan ahogy a tool visszaadja -->\n @if (reviewResult) {\n <div class=\"flex flex-col gap-2 mt-2\">\n <div class=\"flex items-center justify-end\">\n <app-s-copy-button\n [content]=\"clipboardText_$()\"\n buttonTitle=\"Riport másolása\">\n </app-s-copy-button>\n </div>\n <pre class=\"rounded-lg bg-neutral-900/80 border border-neonDefault p-4\n text-xs text-neutral-300 font-mono whitespace-pre-wrap\n overflow-x-auto max-h-[600px] overflow-y-auto leading-relaxed\">{{ clipboardText_$() }}</pre>\n </div>\n }\n\n</div>\n", "import {\n Component,\n computed,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n signal,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n PM_ControlEntryMutationMode_Type,\n PM_ControlFileType_Type,\n PM_ControlFileContent_Response,\n PM_UserInputEntry_Interface,\n} from '../../../../../_models/server-index';\nimport { PM_CcLaunchWizard_Component } from '../../pm-cc-launch-wizard/pm-cc-launch-wizard.component';\nimport { PM_EntryRawModal_Component } from '../../pm-entry-raw-modal/pm-entry-raw-modal.component';\nimport { PM_UserInputWizard_Component } from '../pm-user-input-wizard/pm-user-input-wizard.component';\nimport { PM_ControlEntryEditModal_Component } from '../pm-entry-mutation-ui/pm-control-entry-edit-modal.component';\nimport { PM_ItemRowActions_Component } from '../pm-entry-mutation-ui/pm-item-row-actions.component';\nimport { PM_CcLaunchPrompt_Util } from '../../../_collections/utils/pm-cc-launch-prompt.util';\nimport { CCAP_GlobalError_ControlService } from '../../../../../_services/control-services/ccap-global-error.control-service';\nimport { ProjectManagement_DataService } from '../../../_services/data-services/project-management.data-service';\nimport { S_ContentState_Component } from '../../../../shared/_components/s-content-state/s-content-state.component';\nimport { PM_ControlFilePreambleDisclosure_Component } from '../pm-control-file-preamble-disclosure/pm-control-file-preamble-disclosure.component';\nimport { S_Modal_Component } from '../../../../shared/_components/s-modal/s-modal.component';\n\n/** Egy USER-INPUT sor a listában — stabil @for track (kód + index). */\ntype PM_UserInputTabRow_Type = {\n stableId: string;\n entry: PM_UserInputEntry_Interface;\n};\n\n/**\n * USER-INPUT.md (multi-file) tab — parse-olt entry-k megjelenítése (Etalon formátum).\n * Fejlécből New USER-INPUT wizard; soronként Edit/Remove és CC Session work/review.\n */\n@Component({\n selector: 'app-pm-user-input-tab',\n standalone: true,\n imports: [\n CommonModule,\n S_ContentState_Component,\n PM_EntryRawModal_Component,\n S_Modal_Component,\n PM_UserInputWizard_Component,\n PM_CcLaunchWizard_Component,\n PM_ControlEntryEditModal_Component,\n PM_ItemRowActions_Component,\n PM_ControlFilePreambleDisclosure_Component,\n ],\n templateUrl: './pm-user-input-tab.component.html',\n})\n/** PM_UserInputTab_Component class. */\nexport class PM_UserInputTab_Component implements OnChanges {\n\n @Input() fileContent: PM_ControlFileContent_Response<PM_UserInputEntry_Interface> | null = null;\n @Input() isLoading: boolean = false;\n @Input() error: unknown | null = null;\n\n @Input() projectId: string = '';\n\n @Input() workspacePath: string | undefined;\n\n @Output() readonly refresh: EventEmitter<void> = new EventEmitter<void>();\n\n private readonly pm_DS: ProjectManagement_DataService = inject(ProjectManagement_DataService);\n private readonly globalError_CS: CCAP_GlobalError_ControlService =\n inject(CCAP_GlobalError_ControlService);\n\n readonly displayRows_$ = signal<PM_UserInputTabRow_Type[]>([]);\n\n readonly rawModalOpen_$ = signal<boolean>(false);\n readonly rawModalTitle_$ = signal<string>('');\n readonly rawModalBody_$ = signal<string>('');\n\n readonly userInputWizardModalOpen_$ = signal<boolean>(false);\n\n /**\n * REQ-QI-008: true ha a wizard skip-suggest módban nyílt (közvetlen létrehozás — AI Format rejtve).\n */\n readonly userInputWizardSkipSuggest_$ = signal<boolean>(false);\n\n readonly entryMutationBusy_$ = signal<boolean>(false);\n\n readonly ccLaunchOpen_$ = signal<boolean>(false);\n readonly ccLaunchTitle_$ = signal<string>('');\n readonly ccLaunchLabel_$ = signal<string>('');\n readonly ccLaunchBasePrompt_$ = signal<string>('');\n\n readonly editModalOpen_$ = signal<boolean>(false);\n readonly editModalTitle_$ = signal<string>('');\n readonly editModalInitial_$ = signal<string>('');\n private editPriorBlock_: string = '';\n\n /** `S_Modal` megerősítő — USER-INPUT entry törlés. */\n readonly confirmModalOpen_$ = signal<boolean>(false);\n readonly confirmModalTitle_$ = signal<string>('');\n readonly confirmModalBody_$ = signal<string>('');\n private pendingConfirmAction_: (() => Promise<void>) | null = null;\n\n readonly workspacePathForWizard_$ = computed((): string => this.workspacePath?.trim() ?? '');\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.fileContent) {\n const entries: PM_UserInputEntry_Interface[] = this.fileContent?.entries ?? [];\n const rows: PM_UserInputTabRow_Type[] = entries.map(\n (entry: PM_UserInputEntry_Interface, index: number): PM_UserInputTabRow_Type => ({\n stableId: `${entry.code}:${String(index)}`,\n entry: entry,\n }),\n );\n this.displayRows_$.set(rows);\n }\n }\n\n handleOpenRawUserInput(entry: PM_UserInputEntry_Interface): void {\n this.rawModalTitle_$.set(`USER-INPUT — ${entry.code}`);\n this.rawModalBody_$.set(entry.rawLines.join('\\n'));\n this.rawModalOpen_$.set(true);\n }\n\n handleCloseRawModal(): void {\n this.rawModalOpen_$.set(false);\n this.rawModalTitle_$.set('');\n this.rawModalBody_$.set('');\n }\n\n handleOpenUserInputWizardModal(): void {\n this.userInputWizardSkipSuggest_$.set(false);\n this.userInputWizardModalOpen_$.set(true);\n }\n\n /**\n * REQ-QI-008: USER-INPUT létrehozás wizard nélkül (skip-suggest) — AI Format rejtve,\n * review blokk azonnal látható.\n */\n handleOpenUserInputDirectCreateModal(): void {\n this.userInputWizardSkipSuggest_$.set(true);\n this.userInputWizardModalOpen_$.set(true);\n }\n\n handleCloseUserInputWizardModal(): void {\n this.userInputWizardModalOpen_$.set(false);\n this.userInputWizardSkipSuggest_$.set(false);\n }\n\n handleUserInputWizardCompleted(): void {\n this.userInputWizardModalOpen_$.set(false);\n this.userInputWizardSkipSuggest_$.set(false);\n }\n\n handleOpenCcWork(entry: PM_UserInputEntry_Interface): void {\n this.ccLaunchTitle_$.set(`CC Session — USER-INPUT ${entry.code}`);\n this.ccLaunchLabel_$.set(`PM UI ${entry.code}`);\n this.ccLaunchBasePrompt_$.set(PM_CcLaunchPrompt_Util.buildUserInputWorkPrompt(entry));\n this.ccLaunchOpen_$.set(true);\n }\n\n handleOpenCcReview(entry: PM_UserInputEntry_Interface): void {\n this.ccLaunchTitle_$.set(`CC Session — Review USER-INPUT ${entry.code}`);\n this.ccLaunchLabel_$.set(`PM UI review ${entry.code}`);\n this.ccLaunchBasePrompt_$.set(PM_CcLaunchPrompt_Util.buildUserInputReviewPrompt(entry));\n this.ccLaunchOpen_$.set(true);\n }\n\n handleCcLaunchClosed(): void {\n this.ccLaunchOpen_$.set(false);\n this.ccLaunchBasePrompt_$.set('');\n }\n\n handleOpenEdit(entry: PM_UserInputEntry_Interface): void {\n if (!this.projectId.trim().length) {\n return;\n }\n const prior: string = entry.rawLines.join('\\n');\n this.editPriorBlock_ = prior;\n this.editModalTitle_$.set(`Edit USER-INPUT — ${entry.code}`);\n this.editModalInitial_$.set(prior);\n this.editModalOpen_$.set(true);\n }\n\n handleEditModalClosed(): void {\n this.editModalOpen_$.set(false);\n this.editPriorBlock_ = '';\n }\n\n async handleEditSaved(params: { newRawBlock: string }): Promise<void> {\n const pid: string = this.projectId.trim();\n const prior: string = this.editPriorBlock_;\n if (!pid.length || !prior.length || this.entryMutationBusy_$()) {\n return;\n }\n this.entryMutationBusy_$.set(true);\n try {\n await this.pm_DS.mutateControlFileEntryAndRefresh(pid, PM_ControlFileType_Type.userInput, {\n mode: PM_ControlEntryMutationMode_Type.update,\n priorRawBlock: prior,\n newRawBlock: params.newRawBlock,\n });\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-user-input-entry-update');\n } finally {\n this.entryMutationBusy_$.set(false);\n }\n }\n\n handleRemove(entry: PM_UserInputEntry_Interface): void {\n const pid: string = this.projectId.trim();\n if (!pid.length || this.entryMutationBusy_$()) {\n return;\n }\n this.confirmModalTitle_$.set('Remove USER-INPUT entry');\n this.confirmModalBody_$.set(`Remove USER-INPUT entry ${entry.code} from file(s)?`);\n this.pendingConfirmAction_ = async (): Promise<void> => {\n await this.executeRemoveUserInputEntry(pid, entry);\n };\n this.confirmModalOpen_$.set(true);\n }\n\n /**\n * USER-INPUT entry törlés mutation (megerősítés után).\n */\n private async executeRemoveUserInputEntry(\n pid: string,\n entry: PM_UserInputEntry_Interface,\n ): Promise<void> {\n const prior: string = entry.rawLines.join('\\n');\n this.entryMutationBusy_$.set(true);\n try {\n await this.pm_DS.mutateControlFileEntryAndRefresh(pid, PM_ControlFileType_Type.userInput, {\n mode: PM_ControlEntryMutationMode_Type.remove,\n priorRawBlock: prior,\n });\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-user-input-entry-remove');\n } finally {\n this.entryMutationBusy_$.set(false);\n }\n }\n\n /**\n * Megerősítő modal bezárása (backdrop, Escape, X).\n */\n handleConfirmModalDismissed(): void {\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n }\n\n /** Cancel gomb. */\n handleConfirmModalCancel(): void {\n this.handleConfirmModalDismissed();\n }\n\n /** Confirm gomb. */\n async handleConfirmModalConfirm(): Promise<void> {\n const action: (() => Promise<void>) | null = this.pendingConfirmAction_;\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n if (action) {\n await action();\n }\n }\n}\n", "<div class=\"flex flex-col gap-4\">\n <div class=\"flex flex-col gap-2\">\n @if (projectId) {\n <div class=\"flex flex-wrap gap-2\">\n <button type=\"button\"\n (click)=\"handleOpenUserInputWizardModal()\"\n class=\"px-3 py-1.5 border border-ccapAccent rounded text-ccapAccent text-xs font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\"\n title=\"Open the multi-step AI-assisted USER-INPUT wizard; guides refinement before writing to the repo.\">\n New USER-INPUT (wizard)\n </button>\n <button type=\"button\"\n (click)=\"handleOpenUserInputDirectCreateModal()\"\n class=\"px-3 py-1.5 border border-neutral-500 rounded text-neutral-200 text-xs font-semibold\n hover:border-neonCyan hover:text-neonCyan transition-colors duration-200\"\n title=\"Skip the AI Format step — go straight to the meta-field review form (REQ-QI-008).\">\n New USER-INPUT (direct)\n </button>\n </div>\n }\n <div class=\"flex items-center justify-between gap-3 flex-wrap\">\n <div class=\"flex items-center gap-3 flex-wrap\">\n <h3 class=\"text-sm font-semibold text-neutral-200\">USER-INPUT (repo)</h3>\n @if (\n fileContent != null\n && fileContent.metadata != null\n && fileContent.metadata.fileCount !== undefined\n && fileContent.metadata.fileCount > 1\n ) {\n <span class=\"text-xs text-neutral-500\">{{ fileContent.metadata.fileCount }} files</span>\n }\n @if (fileContent != null && fileContent.metadata != null && fileContent.metadata.lineCount) {\n <span class=\"text-xs text-neutral-500\">{{ fileContent.metadata.lineCount }} lines</span>\n }\n @if (fileContent?.entries?.length) {\n <span class=\"text-xs text-neutral-400\">{{ fileContent!.entries.length }} entries</span>\n }\n </div>\n <button type=\"button\"\n (click)=\"refresh.emit()\"\n class=\"px-3 py-1.5 border border-neutral-500 rounded text-neutral-300 text-xs font-semibold shrink-0\n hover:border-ccapAccent hover:text-ccapAccent transition-colors duration-200\">\n Refresh\n </button>\n </div>\n </div>\n\n <app-pm-control-file-preamble-disclosure [filePreamble]=\"fileContent?.filePreamble\">\n </app-pm-control-file-preamble-disclosure>\n\n <app-s-content-state [isLoading]=\"isLoading\"\n [error]=\"error\"\n [isEmpty]=\"!fileContent || !fileContent.exists\"\n [emptyMessage]=\"'No USER-INPUT*.md found (root, __specifications, __documentations, docs).'\"\n [loadingMessage]=\"'Loading…'\"\n (retry)=\"refresh.emit()\">\n\n @if (fileContent && fileContent.error) {\n <div class=\"rounded-lg bg-amber-900/20 border border-amber-800/50 p-3 mb-3\">\n <p class=\"text-amber-200 text-xs font-medium mb-1\">Partial read / parse warnings</p>\n <p class=\"text-amber-400/90 text-xs whitespace-pre-wrap\">{{ fileContent.error }}</p>\n </div>\n }\n\n @if (fileContent && fileContent.exists && fileContent.entries.length === 0) {\n <p class=\"text-neutral-500 text-sm\">File exists but no parseable USER-INPUT blocks (expected ### [TYPE] (CODE) …).</p>\n }\n\n <div class=\"flex flex-col gap-2\">\n @for (row of displayRows_$(); track row.stableId) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <div class=\"flex items-start justify-between gap-2 flex-wrap w-full\">\n <div class=\"flex items-start gap-2 flex-wrap min-w-0 flex-1\">\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-700 text-neutral-300 border border-neutral-600\n font-mono uppercase shrink-0\">\n {{ row.entry.type }}\n </span>\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-900 text-neonCyan border border-neonCyan/40\n font-mono shrink-0\">\n {{ row.entry.code }}\n </span>\n <div class=\"flex gap-1 shrink-0 text-base leading-none\" title=\"E1 Spec · E2 Impl · E3 Test · E4 Done\">\n <span>{{ row.entry.e1 }}</span>\n <span>{{ row.entry.e2 }}</span>\n <span>{{ row.entry.e3 }}</span>\n <span>{{ row.entry.e4 }}</span>\n </div>\n </div>\n <button type=\"button\"\n class=\"shrink-0 p-1.5 rounded-full border border-neutral-600/60 text-neutral-400\n hover:border-ccapAccent hover:text-ccapAccent transition-colors\"\n title=\"Raw block lines\"\n (click)=\"handleOpenRawUserInput(row.entry)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z\" />\n </svg>\n </button>\n </div>\n <div class=\"flex flex-wrap gap-x-4 gap-y-1 mt-2 text-xs text-neutral-400\">\n @if (row.entry.priority) {\n <span>\n <span class=\"text-neutral-500\">priority:</span>\n <span class=\"font-medium\"\n [class.text-red-400]=\"row.entry.priority === 'urgent'\"\n [class.text-amber-400]=\"row.entry.priority === 'high'\"\n [class.text-neutral-300]=\"row.entry.priority === 'medium' || row.entry.priority === 'low'\">\n {{ row.entry.priority }}\n </span>\n </span>\n }\n @if (row.entry.source) {\n <span><span class=\"text-neutral-500\">source:</span> {{ row.entry.source }}</span>\n }\n @if (row.entry.area) {\n <span><span class=\"text-neutral-500\">area:</span> {{ row.entry.area }}</span>\n }\n @if (row.entry.phase) {\n <span><span class=\"text-neutral-500\">phase:</span> {{ row.entry.phase }}</span>\n }\n @if (row.entry.isAriLess) {\n <span class=\"text-neutral-500\">ari-less</span>\n }\n </div>\n @if (row.entry.details) {\n <p class=\"text-neutral-400 text-xs mt-2 border-l-2 border-neutral-600 pl-2\">{{ row.entry.details }}</p>\n }\n @if (row.entry.extraFields && (row.entry.extraFields | keyvalue).length > 0) {\n <div class=\"flex flex-wrap gap-2 mt-2\">\n @for (kv of row.entry.extraFields | keyvalue; track kv.key) {\n <span class=\"px-1.5 py-0.5 text-[10px] rounded bg-neutral-900/80 text-neutral-400 border border-neutral-700 font-mono\">\n {{ kv.key }}: {{ kv.value }}\n </span>\n }\n </div>\n }\n @if (row.entry.rawUserInput) {\n <p class=\"text-neutral-200 text-sm mt-3 whitespace-pre-wrap border-t border-neutral-700/60 pt-3\">\n {{ row.entry.rawUserInput }}\n </p>\n }\n <app-pm-item-row-actions\n [showCcFix]=\"false\"\n [showCcWork]=\"true\"\n [showCcReview]=\"true\"\n [disabledCc]=\"!workspacePath?.trim()\"\n [disabledEdit]=\"entryMutationBusy_$()\"\n [disabledRemove]=\"entryMutationBusy_$()\"\n (edit)=\"handleOpenEdit(row.entry)\"\n (remove)=\"handleRemove(row.entry)\"\n (ccWork)=\"handleOpenCcWork(row.entry)\"\n (ccReview)=\"handleOpenCcReview(row.entry)\">\n </app-pm-item-row-actions>\n </div>\n }\n </div>\n </app-s-content-state>\n\n <app-pm-entry-raw-modal\n [isOpen]=\"rawModalOpen_$()\"\n [title]=\"rawModalTitle_$()\"\n [rawText]=\"rawModalBody_$()\"\n (closed)=\"handleCloseRawModal()\">\n </app-pm-entry-raw-modal>\n\n @if (projectId) {\n <app-s-modal [isOpen]=\"userInputWizardModalOpen_$()\"\n [title]=\"userInputWizardSkipSuggest_$() ? 'New USER-INPUT (direct)' : 'New USER-INPUT (wizard)'\"\n maxWidth=\"5xl\"\n headerBorderClass=\"border-ccapAccent/30\"\n (closed)=\"handleCloseUserInputWizardModal()\">\n <app-pm-user-input-wizard [projectId]=\"projectId\"\n [isEmbeddedInModal]=\"true\"\n [skipSuggestMode]=\"userInputWizardSkipSuggest_$()\"\n (wizardCompleted)=\"handleUserInputWizardCompleted()\">\n </app-pm-user-input-wizard>\n </app-s-modal>\n }\n\n <app-pm-cc-launch-wizard\n [isOpen]=\"ccLaunchOpen_$()\"\n [modalTitle]=\"ccLaunchTitle_$()\"\n [sessionLabel]=\"ccLaunchLabel_$()\"\n [basePrompt]=\"ccLaunchBasePrompt_$()\"\n [workspacePath]=\"workspacePathForWizard_$()\"\n (closed)=\"handleCcLaunchClosed()\">\n </app-pm-cc-launch-wizard>\n\n <app-pm-control-entry-edit-modal\n [isOpen]=\"editModalOpen_$()\"\n [title]=\"editModalTitle_$()\"\n [initialText]=\"editModalInitial_$()\"\n (closed)=\"handleEditModalClosed()\"\n (saved)=\"handleEditSaved($event)\">\n </app-pm-control-entry-edit-modal>\n\n <app-s-modal [isOpen]=\"confirmModalOpen_$()\"\n [title]=\"confirmModalTitle_$()\"\n [maxWidth]=\"'md'\"\n (closed)=\"handleConfirmModalDismissed()\">\n <p class=\"text-sm text-neutral-300 whitespace-pre-wrap\">{{ confirmModalBody_$() }}</p>\n <div modal-footer\n class=\"flex items-center justify-end gap-2 px-4 py-3 border-t border-neutral-700 shrink-0 bg-neutral-900/80\">\n <button type=\"button\"\n (click)=\"handleConfirmModalCancel()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neutral-600 text-neutral-300\n hover:bg-neutral-700 transition-colors\">\n Cancel\n </button>\n <button type=\"button\"\n (click)=\"handleConfirmModalConfirm()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neonRed/60 text-neonRed/90\n hover:bg-neonRed/10 transition-colors\">\n Confirm\n </button>\n </div>\n </app-s-modal>\n</div>\n", "import { Component, inject, OnInit, signal } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { PM_UserRequest } from '../../../../_models/server-index';\nimport { PM_UserRequestType_Type } from '../../../../_models/server-index';\nimport { PM_Priority_Type } from '../../../../_models/server-index';\nimport { ProjectManagement_DataService } from '../../_services/data-services/project-management.data-service';\nimport { Terminals_DataService } from '../../../dev/_modules/devtools/_modules/terminals/_services/terminals.data-service';\n\n/** Tab azonosítók a projekt részlet nézethez. */\ntype PM_DetailTab_Type =\n | 'user-requests'\n | 'overview'\n | 'git'\n | 'todo'\n | 'backlog'\n | 'bugs'\n | 'changelog'\n | 'test-error-reports'\n | 'reviews'\n | 'source-ide';\n\n/**\n * Project Management – projekt részlet nézet.\n * Tabokkal: User Input, TODO, Backlog, Bugs, Changelog.\n */\n@Component({\n selector: 'app-pm-project-detail',\n templateUrl: './pm-detail.component.html',\n})\n/** PM_Detail_Component class. */\nexport class PM_Detail_Component implements OnInit {\n\n readonly pm_DS: ProjectManagement_DataService =\n inject(ProjectManagement_DataService);\n\n private readonly terminal_DS: Terminals_DataService =\n inject(Terminals_DataService);\n\n private readonly route: ActivatedRoute = inject(ActivatedRoute);\n private readonly router: Router = inject(Router);\n\n /** Aktív tab. */\n readonly activeTab_$ = signal<PM_DetailTab_Type>('overview');\n\n /** Projekt ID az URL-ből. */\n projectId: string = '';\n\n /** Új user request form látható-e. */\n readonly isNewRequestFormOpen_$ = signal<boolean>(false);\n\n /** Új user request – tartalom (nyers szöveg). */\n readonly newRequestContent_$ = signal<string>('');\n\n /** Új user request – típus. */\n readonly newRequestType_$ = signal<PM_UserRequestType_Type>(PM_UserRequestType_Type.req);\n\n /** Új user request – prioritás. */\n readonly newRequestPriority_$ = signal<PM_Priority_Type>(PM_Priority_Type.medium);\n\n /** Új user request – kód (pl. REQ-UI-001). */\n readonly newRequestCode_$ = signal<string>('');\n\n /** Mentés folyamatban. */\n readonly isSaving_$ = signal<boolean>(false);\n\n /** Mentési hiba. */\n readonly saveError_$ = signal<unknown | null>(null);\n\n /** `S_Modal` megerősítő — package script futtatás előtt. */\n readonly confirmModalOpen_$ = signal<boolean>(false);\n readonly confirmModalTitle_$ = signal<string>('');\n readonly confirmModalBody_$ = signal<string>('');\n private pendingConfirmAction_: (() => Promise<void>) | null = null;\n\n /** Enum értékek a template-ben. */\n readonly requestTypes: PM_UserRequestType_Type[] = Object.values(PM_UserRequestType_Type);\n readonly priorities: PM_Priority_Type[] = Object.values(PM_Priority_Type);\n\n ngOnInit(): void {\n this.projectId = this.route.snapshot.params.projectId as string;\n void this.pm_DS.loadProject(this.projectId);\n void this.pm_DS.loadUserRequests(this.projectId);\n }\n\n /** Fájl tartalmak betöltve-e (lazy load: csak tab nyitáskor töltjük). */\n private isFileContentsLoaded: boolean = false;\n\n /** Review meta betöltve-e (lazy load: csak a Reviews tab nyitásakor töltjük). */\n private isReviewsMetaLoaded: boolean = false;\n\n /** Tab váltás – fájl tartalom lazy loading. */\n setTab(tab: PM_DetailTab_Type): void {\n this.activeTab_$.set(tab);\n // Fájl tartalmak lazy loading: első file-sync tab nyitáskor töltjük.\n const fileTabs: PM_DetailTab_Type[] = [\n 'user-requests',\n 'todo',\n 'backlog',\n 'bugs',\n 'changelog',\n 'test-error-reports',\n ];\n if (fileTabs.includes(tab) && !this.isFileContentsLoaded && this.projectId) {\n this.isFileContentsLoaded = true;\n void this.pm_DS.loadAllFileContents(this.projectId);\n }\n // Reviews tab: meta lazy loading az első megnyitáskor.\n if (tab === 'reviews' && !this.isReviewsMetaLoaded && this.projectId) {\n this.isReviewsMetaLoaded = true;\n void this.pm_DS.loadReviewsMeta(this.projectId);\n }\n }\n\n /** Fájl tartalom újratöltése (tab Refresh gomb). */\n handleFileRefresh(): void {\n if (this.projectId) {\n void this.pm_DS.loadAllFileContents(this.projectId);\n }\n }\n\n /** TEST-ERROR-REPORTS.json ürítése, majd lista frissítése. */\n handleClearTestErrorReports(): void {\n if (this.projectId) {\n void this.pm_DS.clearTestErrorReportsAndRefresh(this.projectId);\n }\n }\n\n /** Git állapot gyors frissítése (csak git, nem teljes sync). */\n handleGitRefresh(): void {\n if (this.projectId) {\n void this.pm_DS.refreshGitStatus(this.projectId);\n }\n }\n\n /** Sync indítása az aktuális projektre. */\n handleSync(): void {\n if (this.projectId) {\n void this.pm_DS.syncProject(this.projectId);\n }\n }\n\n /** Review-ok futtatása (szelektív vagy teljes). */\n handleRunReviews(reviewIds?: string[]): void {\n if (this.projectId) {\n void this.pm_DS.runProjectReviews(this.projectId, reviewIds);\n }\n }\n\n /** Review meta újratöltése. */\n handleReviewsMetaRefresh(): void {\n if (this.projectId) {\n this.isReviewsMetaLoaded = false;\n void this.pm_DS.loadReviewsMeta(this.projectId);\n this.isReviewsMetaLoaded = true;\n }\n }\n\n /** Vissza a projekt listára. */\n goBack(): void {\n void this.router.navigate(['/project-management']);\n }\n\n /**\n * Navigálás a projekt alá tartozó agent-scope-os route-ra (REQ-PM-AGT-001 Slice 3).\n * Pl. `agent-reports` → `/project-management/projects/:projectId/agent-reports`.\n * A cél route-ot a Slice 4 (Reports UI) regisztrálja.\n */\n handleNavigateToAgentRoute(routeSegment: string): void {\n if (!this.projectId || !routeSegment) {\n return;\n }\n void this.router.navigate(['/project-management/projects', this.projectId, routeSegment]);\n }\n\n /** Új request form toggle. */\n toggleNewRequestForm(): void {\n this.isNewRequestFormOpen_$.update((open: boolean): boolean => !open);\n if (!this.isNewRequestFormOpen_$()) {\n this.resetRequestForm();\n }\n }\n\n /** User request mentése. */\n async handleCreateUserRequest(): Promise<void> {\n const content: string = this.newRequestContent_$().trim();\n if (!content) {\n return;\n }\n this.isSaving_$.set(true);\n this.saveError_$.set(null);\n try {\n await this.pm_DS.createUserRequest(this.projectId, {\n content: content,\n type: this.newRequestType_$(),\n priority: this.newRequestPriority_$(),\n code: this.newRequestCode_$().trim() || undefined,\n });\n this.isNewRequestFormOpen_$.set(false);\n this.resetRequestForm();\n } catch (err: unknown) {\n this.saveError_$.set(err);\n } finally {\n this.isSaving_$.set(false);\n }\n }\n\n /** User request archiválása (törlés). */\n async handleArchiveUserRequest(request: PM_UserRequest): Promise<void> {\n if (!request._id) {\n return;\n }\n try {\n await this.pm_DS.updateUserRequest(this.projectId, request._id, {\n status: undefined,\n });\n } catch {\n // hiba a UI-ban jelenik meg\n }\n }\n\n /**\n * Package script futtatása terminálban — `S_Modal` megerősítés után indít.\n * A terminal a projekt localPath-jában indul, majd a `pnpm <scriptName>` parancsot futtatja.\n */\n handleRunScript(scriptName: string): void {\n const project = this.pm_DS.activeProject_$();\n if (!project?.localPath) {\n return;\n }\n const localPath: string = project.localPath;\n const name: string = project.name ?? '';\n this.confirmModalTitle_$.set('Run package script');\n this.confirmModalBody_$.set(\n `Futtatás: pnpm ${scriptName}\\nProjekt: ${name}\\nÚtvonal: ${localPath}`,\n );\n this.pendingConfirmAction_ = async (): Promise<void> => {\n try {\n await this.terminal_DS.startTerminalRest({ path: localPath });\n await this.terminal_DS.runCommand({ action: 'shell', command: `pnpm ${scriptName}` });\n } catch {\n // Hiba a terminal data service signal-okon keresztül jelenik meg.\n }\n };\n this.confirmModalOpen_$.set(true);\n }\n\n /**\n * Megerősítő modal bezárása (backdrop, Escape, X) — pending action törlése.\n */\n handleConfirmModalDismissed(): void {\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n }\n\n /** Cancel gomb a megerősítő modal-ban. */\n handleConfirmModalCancel(): void {\n this.handleConfirmModalDismissed();\n }\n\n /** Confirm gomb: pending terminal action futtatása. */\n async handleConfirmModalConfirm(): Promise<void> {\n const action: (() => Promise<void>) | null = this.pendingConfirmAction_;\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n if (action) {\n await action();\n }\n }\n\n /** Form reset. */\n private resetRequestForm(): void {\n this.newRequestContent_$.set('');\n this.newRequestType_$.set(PM_UserRequestType_Type.req);\n this.newRequestPriority_$.set(PM_Priority_Type.medium);\n this.newRequestCode_$.set('');\n this.saveError_$.set(null);\n }\n}\n", "<div class=\"flex flex-col min-h-full text-neutral-100 p-4 gt-xs:p-6\">\n\n <!-- Fejléc -->\n <header class=\"mb-6\">\n <button type=\"button\"\n (click)=\"goBack()\"\n class=\"flex items-center gap-2 text-neutral-400 text-sm hover:text-neutral-200\n transition-colors duration-200 mb-3\">\n <svg class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 19l-7-7 7-7\"/>\n </svg>\n Projektek\n </button>\n @if (pm_DS.activeProjectLoading_$()) {\n <p class=\"text-neutral-400 text-sm\">Betöltés…</p>\n } @else if (pm_DS.activeProject_$()) {\n @let project = pm_DS.activeProject_$()!;\n <div class=\"flex flex-wrap items-start gap-3\">\n <div class=\"min-w-0 flex-1\">\n <div class=\"flex items-center gap-3 mb-1\">\n <h1 class=\"text-2xl gt-xs:text-3xl font-bold text-neutral-100 break-words\">\n {{ project.name }}\n </h1>\n <!-- Sync gomb -->\n <button type=\"button\"\n (click)=\"handleSync()\"\n [disabled]=\"pm_DS.syncLoading_$()\"\n class=\"shrink-0 px-3 py-1 border border-neutral-500 rounded text-neutral-300 text-xs font-semibold\n hover:border-neonCyan hover:text-neonCyan transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (pm_DS.syncLoading_$()) { Syncing... } @else { Sync }\n </button>\n </div>\n @if (project.description) {\n <p class=\"text-neutral-400 text-sm mt-1\">{{ project.description }}</p>\n }\n <!-- Git + version badges -->\n @if (project.gitBranch || project.packageVersion || project.localPath) {\n <div class=\"flex flex-wrap gap-2 mt-2\">\n @if (project.gitBranch) {\n <span class=\"px-2 py-0.5 text-xs rounded border font-mono\"\n [class]=\"project.gitStatus === 'clean'\n ? 'bg-green-900/30 text-green-300 border-green-800'\n : project.gitStatus === 'dirty'\n ? 'bg-yellow-900/30 text-yellow-300 border-yellow-800'\n : 'bg-neutral-800 text-neutral-400 border-neutral-700'\">\n {{ project.gitBranch }}\n @if (project.gitStatus === 'dirty') { * }\n </span>\n }\n @if (project.packageVersion) {\n <span class=\"px-2 py-0.5 text-xs rounded bg-blue-900/30 text-blue-300 border border-blue-800 font-mono\">\n v{{ project.packageVersion }}\n </span>\n }\n @if (project.gitAheadBehind && project.gitAheadBehind !== 'ahead 0 / behind 0') {\n <span class=\"px-2 py-0.5 text-xs rounded bg-purple-900/30 text-purple-300 border border-purple-800 font-mono\">\n {{ project.gitAheadBehind }}\n </span>\n }\n @if (project.lastSyncAt) {\n <span class=\"text-neutral-500 text-xs self-center\">\n synced: {{ project.lastSyncAt | date:'MM.dd HH:mm' }}\n </span>\n }\n </div>\n }\n @if (project.localPath) {\n <p class=\"text-neutral-600 text-xs font-mono mt-1 truncate max-w-xl\">{{ project.localPath }}</p>\n }\n </div>\n </div>\n <!-- Sync hiba -->\n @if (pm_DS.syncError_$()) {\n <p class=\"text-red-400 text-xs mt-2\">Sync hiba - kerjuk probald ujra.</p>\n }\n <!-- Sync report (REQ-PM-SYNC-001) — legutóbbi sync eredménye -->\n @if (pm_DS.lastSyncResult_$(); as sync) {\n <div class=\"mt-3 rounded-md border px-3 py-2 text-xs gt-xs:text-sm\"\n [class]=\"sync.syncStatus === 'success'\n ? 'border-green-700/60 bg-green-950/30 text-green-100'\n : sync.syncStatus === 'partial'\n ? 'border-amber-600/60 bg-amber-950/30 text-amber-100'\n : 'border-red-700/60 bg-red-950/30 text-red-100'\">\n <div class=\"flex flex-wrap items-center gap-x-3 gap-y-1\">\n <span class=\"font-semibold uppercase tracking-wide\">\n Sync — {{ sync.syncStatus }}\n </span>\n <span class=\"text-neutral-400 font-mono text-[10px] gt-xs:text-xs\">\n {{ sync.durationMs }}ms\n </span>\n <span class=\"text-neutral-500 font-mono text-[10px] gt-xs:text-xs\">\n {{ sync.syncedAt | date:'yyyy-MM-dd HH:mm:ss' }}\n </span>\n </div>\n @if (sync.summary) {\n <p class=\"mt-1 text-neutral-200\">{{ sync.summary }}</p>\n }\n @if (sync.gitInfo?.autoPulled && sync.gitInfo?.autoPullResult) {\n <p class=\"mt-1 text-neutral-300 font-mono text-[10px] gt-xs:text-xs\">\n auto-pull: {{ sync.gitInfo?.autoPullResult }}\n </p>\n }\n @if (sync.errors.length > 0) {\n <ul class=\"mt-1 list-disc list-inside text-red-200\">\n @for (err of sync.errors; track err) {\n <li class=\"break-words\">{{ err }}</li>\n }\n </ul>\n }\n </div>\n }\n }\n </header>\n\n <!-- Betöltési hiba -->\n @if (pm_DS.activeProjectError_$()) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-red-500/50 p-5 max-w-lg mb-6\">\n <p class=\"text-red-400 text-sm\">Projekt betöltése sikertelen.</p>\n </div>\n }\n\n <!-- Tab nav -->\n <nav class=\"flex gap-1 border-b border-neonDefault mb-6 overflow-x-auto\">\n @for (tab of [\n { id: 'overview', label: 'Overview' },\n { id: 'git', label: 'Git' },\n { id: 'user-requests', label: 'User Input' },\n { id: 'todo', label: 'TODO' },\n { id: 'backlog', label: 'Backlog' },\n { id: 'bugs', label: 'Bugs' },\n { id: 'changelog', label: 'Changelog' },\n { id: 'test-error-reports', label: 'Error reports' },\n { id: 'reviews', label: 'Reviews' },\n { id: 'source-ide', label: 'Source IDE' }\n ]; track tab.id) {\n <button type=\"button\"\n (click)=\"setTab($any(tab.id))\"\n class=\"px-4 py-2.5 text-sm font-medium border-b-2 transition-colors duration-200\n whitespace-nowrap -mb-px\"\n [class.border-ccapAccent]=\"activeTab_$() === tab.id\"\n [class.text-ccapAccent]=\"activeTab_$() === tab.id\"\n [class.border-transparent]=\"activeTab_$() !== tab.id\"\n [class.text-neutral-400]=\"activeTab_$() !== tab.id\"\n [class.hover:text-neutral-200]=\"activeTab_$() !== tab.id\">\n {{ tab.label }}\n </button>\n }\n </nav>\n\n <!-- Tab: Overview -->\n @if (activeTab_$() === 'overview' && pm_DS.activeProject_$()) {\n @let p = pm_DS.activeProject_$()!;\n <div class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\n\n <!-- Git summary card (részletek a Git tab-on) -->\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <div class=\"flex items-center justify-between mb-3\">\n <h3 class=\"text-sm font-semibold text-neutral-300\">Git</h3>\n <button type=\"button\"\n (click)=\"setTab('git')\"\n class=\"text-[10px] text-neutral-500 hover:text-neonCyan transition-colors duration-200\">\n Git tab &rarr;\n </button>\n </div>\n @if (p.gitInfo) {\n <div class=\"flex flex-col gap-2 text-xs\">\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Branch</span>\n <span class=\"text-neutral-200 font-mono\">{{ p.gitInfo.branch }}</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Status</span>\n <span class=\"font-mono\"\n [class]=\"p.gitInfo.status === 'clean' ? 'text-green-400' : p.gitInfo.status === 'dirty' ? 'text-yellow-400' : 'text-neutral-400'\">\n {{ p.gitInfo.status }}\n </span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Ahead/Behind</span>\n <span class=\"text-neutral-300 font-mono\">{{ p.gitInfo.aheadBehind }}</span>\n </div>\n @if (p.gitInfo.uncommittedFiles.length > 0) {\n <span class=\"text-yellow-400 mt-1\">{{ p.gitInfo.uncommittedFiles.length }} uncommitted file(s)</span>\n }\n </div>\n } @else if (p.gitStatus === 'no-git') {\n <p class=\"text-neutral-500 text-xs\">Nem git repository.</p>\n } @else {\n <p class=\"text-neutral-500 text-xs\">Nincs adat – futtass Git Refresh-t vagy Sync-et.</p>\n }\n </div>\n\n <!-- Package info card -->\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <h3 class=\"text-sm font-semibold text-neutral-300 mb-3\">Package</h3>\n @if (p.packageInfo) {\n <div class=\"flex flex-col gap-2 text-xs\">\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Name</span>\n <span class=\"text-neutral-200 font-mono\">{{ p.packageInfo.packageName }}</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Version</span>\n <span class=\"text-blue-300 font-mono\">{{ p.packageInfo.packageVersion }}</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Dependencies</span>\n <span class=\"text-neutral-300\">{{ p.packageInfo.packageDependencyCount }}</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">DevDependencies</span>\n <span class=\"text-neutral-300\">{{ p.packageInfo.packageDevDependencyCount }}</span>\n </div>\n @if (p.packageInfo.packageScripts.length > 0) {\n <div class=\"border-t border-neutral-700 pt-2 mt-1\">\n <span class=\"text-neutral-500\">Scripts ({{ p.packageInfo.packageScripts.length }})</span>\n <div class=\"flex flex-wrap gap-1 mt-1\">\n @for (script of p.packageInfo.packageScripts; track script) {\n <button type=\"button\"\n (click)=\"handleRunScript(script)\"\n class=\"px-1.5 py-0.5 text-[10px] rounded bg-neutral-900 text-neutral-400\n border border-neutral-700 font-mono cursor-pointer\n hover:border-neonCyan hover:text-neonCyan transition-colors duration-200\"\n [title]=\"'Futtatás: pnpm ' + script\">\n {{ script }}\n </button>\n }\n </div>\n </div>\n }\n </div>\n } @else {\n <p class=\"text-neutral-500 text-xs\">Nincs sync adat. Nyomj Sync-et.</p>\n }\n </div>\n\n <!-- Artifacts card -->\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <h3 class=\"text-sm font-semibold text-neutral-300 mb-3\">Artifacts</h3>\n @if (p.artifacts) {\n <div class=\"flex flex-col gap-1.5 text-xs\">\n @for (artifact of [\n { key: 'todoMd', label: 'TODO.md', tab: 'todo' },\n { key: 'backlogMd', label: 'BACKLOG.md', tab: 'backlog' },\n { key: 'changelogMd', label: 'CHANGELOG.md', tab: 'changelog' },\n { key: 'bugsMd', label: 'BUGS.md', tab: 'bugs' },\n { key: 'userInputMd', label: 'USER-INPUT.md', tab: 'user-requests' },\n { key: 'specifications', label: '__specifications/', tab: '' },\n { key: 'agent', label: '__agent/', tab: '' },\n { key: 'documentations', label: '__documentations/', tab: '' },\n { key: 'statusMd', label: 'STATUS.md', tab: '' },\n { key: 'claudeMd', label: 'CLAUDE.md', tab: '' }\n ]; track artifact.key) {\n @let state = $any(p.artifacts)[artifact.key];\n <div class=\"flex items-center justify-between gap-2 rounded px-1 -mx-1 py-0.5\"\n [ngClass]=\"{ 'cursor-pointer hover:bg-neutral-700/40': artifact.tab }\"\n (click)=\"artifact.tab ? setTab($any(artifact.tab)) : null\">\n <span class=\"font-mono\" [class]=\"state?.exists ? 'text-neutral-200' : 'text-neutral-600'\">\n {{ artifact.label }}\n </span>\n <div class=\"flex items-center gap-2\">\n @if (state?.exists) {\n @if (state.sizeBytes !== undefined) {\n <span class=\"text-neutral-500\">{{ state.sizeBytes > 1024 ? (state.sizeBytes / 1024 | number:'1.0-0') + 'KB' : state.sizeBytes + 'B' }}</span>\n }\n @if (state.lineCount !== undefined) {\n <span class=\"text-neutral-500\">{{ state.lineCount }}L</span>\n }\n @if (state.entryCount !== undefined) {\n <span class=\"text-neutral-400 font-medium\" title=\"Parsed item count (same parsers as file sync)\">\n {{ state.entryCount }} items\n </span>\n }\n <span class=\"w-2 h-2 rounded-full bg-green-500\"></span>\n } @else {\n <span class=\"w-2 h-2 rounded-full bg-neutral-700\"></span>\n }\n @if (artifact.tab) {\n <span class=\"text-[10px] text-neutral-600 group-hover:text-neutral-400\">&rarr;</span>\n }\n </div>\n </div>\n }\n\n <!-- REQ-PM-AGT-001 Slice 3: Agent activity subsection -->\n <div class=\"mt-3 pt-2 border-t border-neutral-700/60\">\n <div class=\"text-[11px] uppercase tracking-wide text-neutral-500 mb-1 font-semibold\">\n Agent activity\n </div>\n @for (artifact of [\n { key: 'agentStatusMd', label: '__agent/STATUS.md', route: '' },\n { key: 'agentUserInputMd', label: '__agent/USER_INPUT.md', route: '' },\n { key: 'agentReports', label: '__agent/reports/', route: 'agent-reports' }\n ]; track artifact.key) {\n @let state = $any(p.artifacts)[artifact.key];\n <div class=\"flex items-center justify-between gap-2 rounded px-1 -mx-1 py-0.5\"\n [ngClass]=\"{ 'cursor-pointer hover:bg-neutral-700/40': artifact.route }\"\n (click)=\"artifact.route ? handleNavigateToAgentRoute(artifact.route) : null\">\n <span class=\"font-mono\" [class]=\"state?.exists ? 'text-neutral-200' : 'text-neutral-600'\">\n {{ artifact.label }}\n </span>\n <div class=\"flex items-center gap-2\">\n @if (state?.exists) {\n @if (state.fileCount !== undefined) {\n <span class=\"text-neutral-400 font-medium\" title=\"Agent report files\">\n {{ state.fileCount }} files\n </span>\n }\n @if (state.sizeBytes !== undefined) {\n <span class=\"text-neutral-500\">{{ state.sizeBytes > 1024 ? (state.sizeBytes / 1024 | number:'1.0-0') + 'KB' : state.sizeBytes + 'B' }}</span>\n }\n @if (state.lineCount !== undefined) {\n <span class=\"text-neutral-500\">{{ state.lineCount }}L</span>\n }\n <span class=\"w-2 h-2 rounded-full bg-green-500\"></span>\n } @else {\n <span class=\"w-2 h-2 rounded-full bg-neutral-700\"></span>\n }\n @if (artifact.route) {\n <span class=\"text-[10px] text-neutral-600 group-hover:text-neutral-400\">&rarr;</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n } @else {\n <p class=\"text-neutral-500 text-xs\">Nincs sync adat. Nyomj Sync-et.</p>\n }\n </div>\n\n <!-- Sync summary card -->\n @if (p.lastSyncAt) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <h3 class=\"text-sm font-semibold text-neutral-300 mb-3\">Last Sync</h3>\n <div class=\"flex flex-col gap-2 text-xs\">\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Status</span>\n <span class=\"font-mono\"\n [class]=\"p.lastSyncStatus === 'success' ? 'text-green-400' : p.lastSyncStatus === 'partial' ? 'text-yellow-400' : 'text-red-400'\">\n {{ p.lastSyncStatus }}\n </span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Time</span>\n <span class=\"text-neutral-300\">{{ p.lastSyncAt | date:'yyyy.MM.dd HH:mm:ss' }}</span>\n </div>\n @if (p.lastSyncDurationMs) {\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Duration</span>\n <span class=\"text-neutral-300\">{{ p.lastSyncDurationMs }}ms</span>\n </div>\n }\n @if (p.lastSyncSummary) {\n <div class=\"border-t border-neutral-700 pt-2 mt-1\">\n <span class=\"text-neutral-400\">{{ p.lastSyncSummary }}</span>\n </div>\n }\n @if (p.lastSyncErrors && p.lastSyncErrors.length > 0) {\n <div class=\"border-t border-neutral-700 pt-2 mt-1\">\n <span class=\"text-red-400\">Errors:</span>\n @for (err of p.lastSyncErrors; track err) {\n <p class=\"text-red-400/70 font-mono truncate mt-0.5\">{{ err }}</p>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Tab: Git -->\n @if (activeTab_$() === 'git' && pm_DS.activeProject_$()) {\n @let g = pm_DS.activeProject_$()!;\n <div class=\"flex flex-col gap-4\">\n\n <!-- Fejléc + Git Refresh gomb -->\n <div class=\"flex items-center justify-between gap-3\">\n <h2 class=\"text-base font-semibold text-neutral-200\">Git Status</h2>\n <button type=\"button\"\n (click)=\"handleGitRefresh()\"\n [disabled]=\"pm_DS.gitStatusLoading_$()\"\n class=\"px-3 py-1.5 border border-neonCyan rounded text-neonCyan text-xs font-semibold\n hover:bg-neonCyan/10 transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (pm_DS.gitStatusLoading_$()) { Refreshing... } @else { Git Refresh }\n </button>\n </div>\n\n <!-- Git refresh hiba -->\n @if (pm_DS.gitStatusError_$()) {\n <p class=\"text-red-400 text-xs\">Git status frissítés sikertelen.</p>\n }\n\n @if (g.gitInfo) {\n <div class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\n\n <!-- Branch & Status card -->\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <h3 class=\"text-sm font-semibold text-neutral-300 mb-3\">Branch & Status</h3>\n <div class=\"flex flex-col gap-2 text-xs\">\n <div class=\"flex justify-between items-center\">\n <span class=\"text-neutral-500\">Branch</span>\n <span class=\"px-2 py-0.5 rounded border font-mono\"\n [class]=\"g.gitInfo.status === 'clean'\n ? 'bg-green-900/30 text-green-300 border-green-800'\n : g.gitInfo.status === 'dirty'\n ? 'bg-yellow-900/30 text-yellow-300 border-yellow-800'\n : 'bg-neutral-800 text-neutral-400 border-neutral-700'\">\n {{ g.gitInfo.branch }}\n @if (g.gitInfo.status === 'dirty') { * }\n </span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Status</span>\n <span class=\"font-mono\"\n [class]=\"g.gitInfo.status === 'clean' ? 'text-green-400' : g.gitInfo.status === 'dirty' ? 'text-yellow-400' : 'text-neutral-400'\">\n {{ g.gitInfo.status }}\n </span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Ahead / Behind</span>\n <span class=\"text-neutral-300 font-mono\">{{ g.gitInfo.aheadBehind }}</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Remote</span>\n <span class=\"text-neutral-300 font-mono truncate max-w-48 text-right\" [title]=\"g.gitInfo.remoteUrl\">\n {{ g.gitInfo.remoteUrl }}\n </span>\n </div>\n @if (g.gitInfo.lastFetchedAt) {\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Fetched</span>\n <span class=\"text-neutral-400 font-mono\">{{ g.gitInfo.lastFetchedAt | date:'HH:mm:ss' }}</span>\n </div>\n }\n @if (g.gitInfo.autoPulled) {\n <div class=\"border-t border-neutral-700 pt-2 mt-1\">\n <span class=\"text-green-400 text-xs\">{{ g.gitInfo.autoPullResult }}</span>\n </div>\n } @else if (g.gitInfo.autoPullResult) {\n <div class=\"border-t border-neutral-700 pt-2 mt-1\">\n <span class=\"text-yellow-400 text-xs\">{{ g.gitInfo.autoPullResult }}</span>\n </div>\n }\n </div>\n </div>\n\n <!-- Last Commit card -->\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <h3 class=\"text-sm font-semibold text-neutral-300 mb-3\">Last Commit</h3>\n @if (g.gitInfo.lastCommitHash) {\n <div class=\"flex flex-col gap-2 text-xs\">\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Hash</span>\n <span class=\"text-neonCyan font-mono\">{{ g.gitInfo.lastCommitHash }}</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Author</span>\n <span class=\"text-neutral-200\">{{ g.gitInfo.lastCommitAuthor }}</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Date</span>\n <span class=\"text-neutral-300 font-mono\">{{ g.gitInfo.lastCommitDate | date:'yyyy.MM.dd HH:mm' }}</span>\n </div>\n <div class=\"border-t border-neutral-700 pt-2 mt-1\">\n <span class=\"text-neutral-200\">{{ g.gitInfo.lastCommitMessage }}</span>\n </div>\n </div>\n } @else {\n <p class=\"text-neutral-500 text-xs\">Nincs commit adat.</p>\n }\n </div>\n\n <!-- Uncommitted Files card -->\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <h3 class=\"text-sm font-semibold text-neutral-300 mb-3\">\n Uncommitted Files\n @if (g.gitInfo.uncommittedFiles.length > 0) {\n <span class=\"text-yellow-400 font-normal ml-1\">({{ g.gitInfo.uncommittedFiles.length }})</span>\n }\n </h3>\n @if (g.gitInfo.uncommittedFiles.length > 0) {\n <div class=\"flex flex-col gap-1 text-xs max-h-52 overflow-y-auto\">\n @for (file of g.gitInfo.uncommittedFiles; track file) {\n <div class=\"flex items-center gap-2\">\n <span class=\"shrink-0 w-5 font-mono font-bold\"\n [class]=\"file.startsWith(' M') || file.startsWith('M ')\n ? 'text-yellow-400'\n : file.startsWith('??')\n ? 'text-green-400'\n : file.startsWith(' D') || file.startsWith('D ')\n ? 'text-red-400'\n : 'text-neutral-400'\">\n {{ file.substring(0, 2) }}\n </span>\n <span class=\"text-neutral-300 font-mono truncate\">{{ file.substring(3) }}</span>\n </div>\n }\n </div>\n } @else {\n <p class=\"text-green-400 text-xs\">Nincs uncommitted file – working tree clean.</p>\n }\n </div>\n </div>\n\n <!-- Recent Commits (teljes szélesség) -->\n @if (g.gitInfo.recentCommits.length > 0) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <h3 class=\"text-sm font-semibold text-neutral-300 mb-3\">\n Recent Commits ({{ g.gitInfo.recentCommits.length }})\n </h3>\n <div class=\"flex flex-col gap-1.5 text-xs max-h-72 overflow-y-auto\">\n @for (commit of g.gitInfo.recentCommits; track commit.hash) {\n <div class=\"flex items-baseline gap-3\">\n <span class=\"text-neonCyan font-mono shrink-0\">{{ commit.hash }}</span>\n <span class=\"text-neutral-200 min-w-0 truncate flex-1\">{{ commit.message }}</span>\n <span class=\"text-neutral-500 shrink-0\">{{ commit.author }}</span>\n <span class=\"text-neutral-600 font-mono shrink-0\">{{ commit.date | date:'MM.dd HH:mm' }}</span>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Git error (ha a scan-ben volt hiba) -->\n @if (g.gitInfo.error) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-red-500/50 p-4\">\n <h3 class=\"text-sm font-semibold text-red-400 mb-2\">Git Scan Errors</h3>\n <p class=\"text-red-400/70 text-xs font-mono whitespace-pre-wrap\">{{ g.gitInfo.error }}</p>\n </div>\n }\n } @else if (g.gitStatus === 'no-git') {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-6 text-center\">\n <p class=\"text-neutral-500 text-sm\">Ez nem git repository. A git funkciók nem elérhetők.</p>\n </div>\n } @else {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-6 text-center\">\n <p class=\"text-neutral-500 text-sm mb-2\">Még nincs git adat ehhez a projekthez.</p>\n <p class=\"text-neutral-600 text-xs\">Nyomj a <strong class=\"text-neonCyan\">Git Refresh</strong> gombra a git állapot lekéréséhez.</p>\n </div>\n }\n </div>\n }\n\n <!-- Tab: User Input (USER-INPUT fájl + PM DB) -->\n @if (activeTab_$() === 'user-requests') {\n <div class=\"flex flex-col gap-6\">\n <app-pm-user-input-tab\n [fileContent]=\"pm_DS.fileContents_$()?.userInput ?? null\"\n [isLoading]=\"pm_DS.fileContentLoading_$()\"\n [error]=\"pm_DS.fileContentError_$()\"\n [projectId]=\"projectId\"\n [workspacePath]=\"pm_DS.activeProject_$()?.localPath\"\n (refresh)=\"handleFileRefresh()\">\n </app-pm-user-input-tab>\n\n <div class=\"border-t border-neutral-700/60 pt-4 flex flex-col gap-4\">\n <div class=\"flex items-center justify-between gap-3\">\n <h2 class=\"text-base font-semibold text-neutral-200\">PM database</h2>\n <button type=\"button\"\n (click)=\"toggleNewRequestForm()\"\n class=\"px-3 py-1.5 border border-ccapAccent rounded text-ccapAccent text-xs font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\">\n @if (isNewRequestFormOpen_$()) { Mégse } @else { + Új user input }\n </button>\n </div>\n\n <!-- Új user input form -->\n @if (isNewRequestFormOpen_$()) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-ccapAccent/40 p-4\">\n <div class=\"flex flex-col gap-3 max-w-2xl\">\n <div class=\"flex gap-3\">\n <div class=\"flex flex-col gap-1 flex-1\">\n <label class=\"text-xs text-neutral-400\">Típus</label>\n <select [value]=\"newRequestType_$()\"\n (change)=\"newRequestType_$.set($any($event.target).value)\"\n class=\"bg-neutral-900 border border-neutral-600 rounded px-2 py-1.5 text-sm\n text-neutral-100 focus:outline-none focus:border-ccapAccent\">\n @for (t of requestTypes; track t) {\n <option [value]=\"t\">{{ t }}</option>\n }\n </select>\n </div>\n <div class=\"flex flex-col gap-1 flex-1\">\n <label class=\"text-xs text-neutral-400\">Prioritás</label>\n <select [value]=\"newRequestPriority_$()\"\n (change)=\"newRequestPriority_$.set($any($event.target).value)\"\n class=\"bg-neutral-900 border border-neutral-600 rounded px-2 py-1.5 text-sm\n text-neutral-100 focus:outline-none focus:border-ccapAccent\">\n @for (p of priorities; track p) {\n <option [value]=\"p\">{{ p }}</option>\n }\n </select>\n </div>\n <div class=\"flex flex-col gap-1 w-36\">\n <label class=\"text-xs text-neutral-400\">Kód (pl. REQ-001)</label>\n <input type=\"text\"\n [value]=\"newRequestCode_$()\"\n (input)=\"newRequestCode_$.set($any($event.target).value)\"\n placeholder=\"REQ-UI-001\"\n class=\"bg-neutral-900 border border-neutral-600 rounded px-2 py-1.5 text-sm\n text-neutral-100 placeholder:text-neutral-600\n focus:outline-none focus:border-ccapAccent\" />\n </div>\n </div>\n <div class=\"flex flex-col gap-1\">\n <label class=\"text-xs text-neutral-400\">Tartalom (nyers szöveg) *</label>\n <textarea [value]=\"newRequestContent_$()\"\n (input)=\"newRequestContent_$.set($any($event.target).value)\"\n placeholder=\"A user eredeti kérése, igénye…\"\n rows=\"4\"\n class=\"bg-neutral-900 border border-neutral-600 rounded px-3 py-2 text-sm\n text-neutral-100 placeholder:text-neutral-600\n focus:outline-none focus:border-ccapAccent resize-none\"></textarea>\n </div>\n @if (saveError_$()) {\n <p class=\"text-red-400 text-xs\">Mentési hiba – kérjük próbálja újra.</p>\n }\n <div class=\"flex gap-3\">\n <button type=\"button\"\n (click)=\"handleCreateUserRequest()\"\n [disabled]=\"isSaving_$() || !newRequestContent_$().trim()\"\n class=\"px-4 py-2 border border-ccapAccent rounded text-ccapAccent text-sm font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (isSaving_$()) { Mentés… } @else { Mentés }\n </button>\n </div>\n </div>\n </div>\n }\n\n <!-- User input lista (PM DB) -->\n @if (pm_DS.userRequestsLoading_$()) {\n <p class=\"text-neutral-400 text-sm py-4\">Betöltés…</p>\n } @else if (pm_DS.userRequestsError_$()) {\n <p class=\"text-red-400 text-sm py-4\">User input lista betöltése sikertelen.</p>\n } @else if (pm_DS.userRequests_$().length === 0) {\n <div class=\"rounded-lg bg-neutral-800/40 border border-neonDefault p-6 text-center\">\n <p class=\"text-neutral-500 text-sm\">Még nincs user input ehhez a projekthez.</p>\n </div>\n } @else {\n <div class=\"flex flex-col gap-2\">\n @for (req of pm_DS.userRequests_$(); track req._id) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <div class=\"flex items-start gap-3 flex-wrap\">\n <div class=\"flex gap-2 shrink-0 flex-wrap\">\n @if (req.type) {\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-700 text-neutral-300\n border border-neutral-600 font-mono uppercase\">\n {{ req.type }}\n </span>\n }\n @if (req.code) {\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-900 text-neonCyan\n border border-neonCyan/40 font-mono\">\n {{ req.code }}\n </span>\n }\n @if (req.priority) {\n <span class=\"px-2 py-0.5 text-xs rounded font-medium\"\n [class.bg-red-900]=\"req.priority === 'urgent'\"\n [class.text-red-300]=\"req.priority === 'urgent'\"\n [class.bg-amber-900]=\"req.priority === 'high'\"\n [class.text-amber-300]=\"req.priority === 'high'\"\n [class.bg-neutral-700]=\"req.priority === 'medium' || req.priority === 'low'\"\n [class.text-neutral-300]=\"req.priority === 'medium' || req.priority === 'low'\">\n {{ req.priority }}\n </span>\n }\n </div>\n <div class=\"flex gap-2 ml-auto shrink-0 text-neutral-500 text-xs font-mono\">\n <span title=\"Spec\">{{ req.specStatus ?? '❌' }}</span>\n <span title=\"Impl\">{{ req.implStatus ?? '❌' }}</span>\n <span title=\"Test\">{{ req.testStatus ?? '❌' }}</span>\n <span title=\"Complete\">{{ req.completeStatus ?? '❌' }}</span>\n </div>\n </div>\n <p class=\"text-neutral-200 text-sm mt-2 whitespace-pre-wrap\">{{ req.content }}</p>\n @if (req.__created) {\n <p class=\"text-neutral-600 text-xs mt-2\">\n {{ req.__created | date:'yyyy.MM.dd HH:mm' }}\n </p>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Tab: TODO -->\n @if (activeTab_$() === 'todo') {\n <app-pm-todo-tab\n [fileContent]=\"pm_DS.fileContents_$()?.todo ?? null\"\n [isLoading]=\"pm_DS.fileContentLoading_$()\"\n [error]=\"pm_DS.fileContentError_$()\"\n [projectId]=\"projectId\"\n [workspacePath]=\"pm_DS.activeProject_$()?.localPath\"\n (refresh)=\"handleFileRefresh()\">\n </app-pm-todo-tab>\n }\n\n <!-- Tab: Backlog -->\n @if (activeTab_$() === 'backlog') {\n <app-pm-backlog-tab\n [fileContent]=\"pm_DS.fileContents_$()?.backlog ?? null\"\n [isLoading]=\"pm_DS.fileContentLoading_$()\"\n [error]=\"pm_DS.fileContentError_$()\"\n [projectId]=\"projectId\"\n [workspacePath]=\"pm_DS.activeProject_$()?.localPath\"\n (refresh)=\"handleFileRefresh()\">\n </app-pm-backlog-tab>\n }\n\n <!-- Tab: Bugs -->\n @if (activeTab_$() === 'bugs') {\n <app-pm-bugs-tab\n [bugsFileContent]=\"pm_DS.fileContents_$()?.bugs ?? null\"\n [backlogFileContent]=\"pm_DS.fileContents_$()?.backlog ?? null\"\n [isLoading]=\"pm_DS.fileContentLoading_$()\"\n [error]=\"pm_DS.fileContentError_$()\"\n [projectId]=\"projectId\"\n [isCcapRevisionedHost]=\"pm_DS.activeProjectComputedCcapHost_$()\"\n [workspacePath]=\"pm_DS.activeProject_$()?.localPath\"\n (refresh)=\"handleFileRefresh()\">\n </app-pm-bugs-tab>\n }\n\n <!-- Tab: Changelog -->\n @if (activeTab_$() === 'changelog') {\n <app-pm-changelog-tab\n [fileContent]=\"pm_DS.fileContents_$()?.changelog ?? null\"\n [isLoading]=\"pm_DS.fileContentLoading_$()\"\n [error]=\"pm_DS.fileContentError_$()\"\n (refresh)=\"handleFileRefresh()\">\n </app-pm-changelog-tab>\n }\n\n <!-- Tab: Test & build error reports (TEST-ERROR-REPORTS.json) -->\n @if (activeTab_$() === 'test-error-reports') {\n <app-pm-test-error-reports-tab\n [fileContent]=\"pm_DS.fileContents_$()?.testErrorReports ?? null\"\n [isLoading]=\"pm_DS.fileContentLoading_$()\"\n [error]=\"pm_DS.fileContentError_$()\"\n [isClearing]=\"pm_DS.testErrorReportsClearing_$()\"\n (refresh)=\"handleFileRefresh()\"\n (clearFile)=\"handleClearTestErrorReports()\">\n </app-pm-test-error-reports-tab>\n }\n\n <!-- Tab: Reviews -->\n @if (activeTab_$() === 'reviews') {\n <app-pm-reviews-tab\n [reviewsMeta]=\"pm_DS.reviewsMeta_$()\"\n [reviewResult]=\"pm_DS.reviewResult_$()\"\n [isMetaLoading]=\"pm_DS.reviewsMetaLoading_$()\"\n [isRunning]=\"pm_DS.reviewsRunning_$()\"\n [metaError]=\"pm_DS.reviewsMetaError_$()\"\n [runError]=\"pm_DS.reviewsRunError_$()\"\n (runReviews)=\"handleRunReviews($event)\"\n (refreshMeta)=\"handleReviewsMetaRefresh()\">\n </app-pm-reviews-tab>\n }\n\n <!-- Tab: Source IDE -->\n @if (activeTab_$() === 'source-ide') {\n <div class=\"flex flex-col\" style=\"height: calc(100vh - 280px); min-height: 400px;\">\n <app-ps-ide-shell [projectId]=\"projectId\"></app-ps-ide-shell>\n </div>\n }\n\n <app-s-modal [isOpen]=\"confirmModalOpen_$()\"\n [title]=\"confirmModalTitle_$()\"\n [maxWidth]=\"'lg'\"\n (closed)=\"handleConfirmModalDismissed()\">\n <p class=\"text-sm text-neutral-300 whitespace-pre-wrap font-mono\">{{ confirmModalBody_$() }}</p>\n <div modal-footer\n class=\"flex items-center justify-end gap-2 px-4 py-3 border-t border-neutral-700 shrink-0 bg-neutral-900/80\">\n <button type=\"button\"\n (click)=\"handleConfirmModalCancel()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neutral-600 text-neutral-300\n hover:bg-neutral-700 transition-colors\">\n Cancel\n </button>\n <button type=\"button\"\n (click)=\"handleConfirmModalConfirm()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neonCyan/60 text-neonCyan\n hover:bg-neonCyan/10 transition-colors\">\n Run\n </button>\n </div>\n </app-s-modal>\n\n</div>\n", "import { Component, computed, inject, OnInit, signal, Signal } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { CCAP_TextSearch_Util } from '../../../../_collections/utils/ccap-text-search.util';\nimport { PM_GroupFileEntry_Interface } from '../../../../_models/server-index';\nimport { ProjectManagement_DataService } from '../../_services/data-services/project-management.data-service';\n\n/**\n * Project Management – csoport részlet nézet.\n * Extra (nem-projekt) fájlok listázása a csoport scanPath mappájából.\n */\n@Component({\n selector: 'app-pm-group-detail',\n templateUrl: './pm-group-detail.component.html',\n})\n/** PM_GroupDetail_Component class. */\nexport class PM_GroupDetail_Component implements OnInit {\n\n readonly pm_DS: ProjectManagement_DataService =\n inject(ProjectManagement_DataService);\n\n private readonly route: ActivatedRoute = inject(ActivatedRoute);\n private readonly router: Router = inject(Router);\n\n /** Group ID az URL-ből. */\n groupId: string = '';\n\n /** Szűrő szöveg a fájl listára. */\n readonly filterText_$ = signal<string>('');\n\n /** Csak fájlok mutatása (könyvtárak nélkül). */\n readonly isFilesOnly_$ = signal<boolean>(false);\n\n /** Szűrt fájlok — filterText és isFilesOnly alapján (computed signal). */\n readonly filteredFiles_$: Signal<PM_GroupFileEntry_Interface[]> = computed((): PM_GroupFileEntry_Interface[] => {\n const response = this.pm_DS.groupFiles_$();\n if (!response?.files) {\n return [];\n }\n let files: PM_GroupFileEntry_Interface[] = response.files;\n if (this.isFilesOnly_$()) {\n files = files.filter((f: PM_GroupFileEntry_Interface): boolean => !f.isDirectory);\n }\n const filter: string = this.filterText_$();\n if (filter.trim()) {\n // REQ-SE-001: ékezet- és kisbetű/nagybetű-érzéketlen match.\n files = files.filter((f: PM_GroupFileEntry_Interface): boolean =>\n CCAP_TextSearch_Util.includesText(f.relativePath, filter),\n );\n }\n return files;\n });\n\n ngOnInit(): void {\n this.groupId = this.route.snapshot.params.groupId;\n void this.pm_DS.loadGroupFiles(this.groupId);\n }\n\n /** Vissza a projekt listára. */\n goBack(): void {\n void this.router.navigate(['/project-management']);\n }\n\n /** Fájl lista frissítése. */\n handleRefresh(): void {\n void this.pm_DS.loadGroupFiles(this.groupId);\n }\n}\n", "<div class=\"flex flex-col min-h-full text-neutral-100 p-4 gt-xs:p-6\">\n\n <!-- Fejléc -->\n <header class=\"mb-6\">\n <button type=\"button\"\n (click)=\"goBack()\"\n class=\"flex items-center gap-2 text-neutral-400 text-sm hover:text-neutral-200\n transition-colors duration-200 mb-3 py-1\">\n <svg class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 19l-7-7 7-7\"/>\n </svg>\n Projektek\n </button>\n\n @if (pm_DS.groupFilesLoading_$() && !pm_DS.groupFiles_$()) {\n <p class=\"text-neutral-400 text-sm\">Betöltés…</p>\n } @else if (pm_DS.groupFiles_$()) {\n @let gf = pm_DS.groupFiles_$()!;\n <div class=\"flex flex-col gt-xs:flex-row gt-xs:items-start gt-xs:justify-between gap-3\">\n <div class=\"min-w-0\">\n <h1 class=\"text-xl gt-xs:text-2xl md:text-3xl font-bold text-neutral-100 break-words\">\n {{ gf.groupName }}\n </h1>\n <p class=\"text-neutral-500 text-xs font-mono mt-1 break-all gt-xs:truncate gt-xs:max-w-xl\">\n {{ gf.scanPath }}\n </p>\n <div class=\"flex gap-3 mt-2 text-xs text-neutral-400\">\n <span>{{ gf.totalFiles }} fájl</span>\n <span>{{ gf.totalDirectories }} mappa</span>\n </div>\n </div>\n <button type=\"button\"\n (click)=\"handleRefresh()\"\n [disabled]=\"pm_DS.groupFilesLoading_$()\"\n class=\"shrink-0 self-start px-3 py-2 gt-xs:py-1.5 border border-neonCyan rounded text-neonCyan\n text-xs font-semibold hover:bg-neonCyan/10 transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (pm_DS.groupFilesLoading_$()) { Scan… } @else { Újrascan }\n </button>\n </div>\n }\n </header>\n\n <!-- Hiba -->\n @if (pm_DS.groupFilesError_$()) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-red-500/50 p-4 gt-xs:p-5 mb-6\">\n <p class=\"text-red-400 text-sm\">Fájl lista betöltése sikertelen.</p>\n </div>\n }\n\n <!-- Szűrők -->\n @if (pm_DS.groupFiles_$()) {\n <div class=\"flex flex-col gt-xs:flex-row gt-xs:items-center gap-3 mb-4\">\n <input type=\"text\"\n [value]=\"filterText_$()\"\n (input)=\"filterText_$.set($any($event.target).value)\"\n placeholder=\"Szűrés útvonal alapján…\"\n class=\"bg-neutral-900 border border-neutral-600 rounded-md px-3 py-2.5 gt-xs:py-1.5\n text-sm text-neutral-100 placeholder:text-neutral-600 focus:outline-none\n focus:border-neonCyan transition-colors gt-xs:max-w-sm flex-1 font-mono\" />\n <label class=\"flex items-center gap-2 text-xs text-neutral-400 cursor-pointer select-none py-1\">\n <input type=\"checkbox\"\n [checked]=\"isFilesOnly_$()\"\n (change)=\"isFilesOnly_$.set($any($event.target).checked)\"\n class=\"rounded border-neutral-600 bg-neutral-900 text-neonCyan focus:ring-neonCyan/30\n w-4 h-4\" />\n Csak fájlok\n </label>\n </div>\n\n <!-- Fájl lista -->\n @if (filteredFiles_$().length === 0) {\n <div class=\"rounded-lg bg-neutral-800/40 border border-neonDefault p-6 text-center\">\n <p class=\"text-neutral-500 text-sm\">\n @if (filterText_$()) {\n Nincs a szűrőnek megfelelő fájl.\n } @else {\n Nincs extra fájl a csoport mappájában.\n }\n </p>\n </div>\n } @else {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault overflow-hidden\">\n <!-- Fejléc sor (csak desktop) -->\n <div class=\"hidden gt-xs:grid grid-cols-[1fr_auto_auto_auto] gap-3 px-4 py-2 border-b border-neutral-700\n text-[11px] font-semibold text-neutral-500 uppercase tracking-wider\">\n <span>Útvonal</span>\n <span class=\"text-right w-20\">Méret</span>\n <span class=\"text-right w-32\">Módosítva</span>\n <span class=\"text-center w-10\">Típus</span>\n </div>\n <!-- Fájl sorok -->\n <div class=\"max-h-[calc(100vh-380px)] overflow-y-auto\">\n @for (file of filteredFiles_$(); track file.relativePath) {\n <!-- Desktop sor -->\n <div class=\"hidden gt-xs:grid grid-cols-[1fr_auto_auto_auto] gap-3 px-4 py-2\n border-b border-neutral-800/60 text-xs hover:bg-neutral-700/20 transition-colors\">\n <span class=\"font-mono text-neutral-200 truncate min-w-0\"\n [class.text-neutral-400]=\"file.isDirectory\"\n [title]=\"file.relativePath\">\n @if (file.isDirectory) {\n <span class=\"text-neutral-500 mr-1\">📁</span>\n }\n {{ file.relativePath }}\n </span>\n <span class=\"text-right text-neutral-400 w-20 font-mono\">\n {{ file.sizeBytes === 0 ? '—' : file.sizeBytes < 1024 ? file.sizeBytes + ' B' : file.sizeBytes < 1048576 ? (file.sizeBytes / 1024 | number:'1.0-1') + ' KB' : (file.sizeBytes / 1048576 | number:'1.0-1') + ' MB' }}\n </span>\n <span class=\"text-right text-neutral-500 w-32 font-mono\">\n {{ file.lastModifiedAt | date:'yyyy.MM.dd HH:mm' }}\n </span>\n <span class=\"text-center w-10\">\n @if (file.isDirectory) {\n <span class=\"text-neutral-500 text-[10px]\">dir</span>\n } @else {\n <span class=\"text-neutral-400 text-[10px]\">file</span>\n }\n </span>\n </div>\n <!-- Mobil sor (kompakt kártya layout) -->\n <div class=\"gt-xs:hidden flex flex-col gap-0.5 px-3 py-2.5 border-b border-neutral-800/60\">\n <div class=\"flex items-center gap-1.5 min-w-0\">\n @if (file.isDirectory) {\n <span class=\"text-neutral-500 shrink-0\">📁</span>\n }\n <span class=\"font-mono text-xs truncate min-w-0\"\n [class]=\"file.isDirectory ? 'text-neutral-400' : 'text-neutral-200'\"\n [title]=\"file.relativePath\">\n {{ file.relativePath }}\n </span>\n </div>\n <div class=\"flex items-center gap-3 text-[11px] text-neutral-500\">\n @if (!file.isDirectory) {\n <span class=\"font-mono\">\n {{ file.sizeBytes < 1024 ? file.sizeBytes + ' B' : file.sizeBytes < 1048576 ? (file.sizeBytes / 1024 | number:'1.0-1') + ' KB' : (file.sizeBytes / 1048576 | number:'1.0-1') + ' MB' }}\n </span>\n }\n <span class=\"font-mono\">{{ file.lastModifiedAt | date:'MM.dd HH:mm' }}</span>\n </div>\n </div>\n }\n </div>\n <!-- Összesítő sor -->\n <div class=\"px-3 gt-xs:px-4 py-2 border-t border-neutral-700 text-[11px] text-neutral-500\n flex justify-between\">\n <span>{{ filteredFiles_$().length }} elem</span>\n @if (filterText_$() || isFilesOnly_$()) {\n <span class=\"text-neutral-600\">(szűrve)</span>\n }\n </div>\n </div>\n }\n }\n</div>\n", "import { Component, computed, inject, OnInit, signal, Signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nimport { CCAP_AssistantMarkdownRender_Util } from '../../../../_collections/display/ccap-assistant-markdown-render.util';\nimport { PM_AgentReport_Interface } from '../../../../_models/server-index';\nimport { ProjectManagement_DataService } from '../../_services/data-services/project-management.data-service';\n\n/**\n * Dedikált Agent Reports nézet (REQ-PM-AGT-001 Slice 4).\n * Listázza az `__agent/reports/YYYY-MM/YYYY-MM-DD.md` fájlokat descending dátum-rendben\n * hónap-szekciókkal. A kiválasztott riport markdown tartalma jobb oldalt (desktop) vagy\n * alatta (mobile) renderelődik — `CCAP_AssistantMarkdownRender_Util` + DOMPurify\n * pipeline-on keresztül.\n */\n@Component({\n selector: 'app-pm-agent-reports',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './pm-agent-reports.component.html',\n})\n/** PM_AgentReports_Component class. */\nexport class PM_AgentReports_Component implements OnInit {\n\n private readonly route: ActivatedRoute = inject(ActivatedRoute);\n private readonly router: Router = inject(Router);\n private readonly sanitizer: DomSanitizer = inject(DomSanitizer);\n\n readonly pm_DS: ProjectManagement_DataService =\n inject(ProjectManagement_DataService);\n\n /** Aktuális projekt ID az URL-ből. */\n projectId: string = '';\n\n /** A kiválasztott riport relPath-ja (vagy null, ha nincs). */\n readonly selectedRelPath_$ = signal<string | null>(null);\n\n /**\n * A reports lista hónap szerint csoportosítva a timeline rendereléshez.\n * Minden csoport rendezetten tartja a riportokat a DS által biztosított\n * descending dátum-rendben (`2026-04-24` → `2026-04-23` → ...).\n */\n readonly reportsByMonth_$: Signal<Array<{ month: string; items: PM_AgentReport_Interface[] }>> =\n computed((): Array<{ month: string; items: PM_AgentReport_Interface[] }> => {\n const reports: PM_AgentReport_Interface[] = this.pm_DS.agentReports_$();\n const groups: Map<string, PM_AgentReport_Interface[]> =\n new Map<string, PM_AgentReport_Interface[]>();\n for (const r of reports) {\n const month: string = r.date.slice(0, 7); // YYYY-MM\n const bucket: PM_AgentReport_Interface[] | undefined = groups.get(month);\n if (bucket) {\n bucket.push(r);\n } else {\n groups.set(month, [r]);\n }\n }\n // Hónap kulcsok descending (legfrissebb hónap elöl).\n const months: string[] = Array.from(groups.keys()).sort(\n (a: string, b: string): number => b.localeCompare(a),\n );\n return months.map((month: string): { month: string; items: PM_AgentReport_Interface[] } => ({\n month: month,\n items: groups.get(month) ?? [],\n }));\n });\n\n /** Aktív riport markdown → sanitized HTML (DomSanitizer bypass + DOMPurify). */\n readonly activeReportHtml_$: Signal<SafeHtml> = computed((): SafeHtml => {\n const active = this.pm_DS.activeAgentReport_$();\n if (!active) {\n return '';\n }\n const html: string = CCAP_AssistantMarkdownRender_Util.toSanitizedHtml(active.content);\n return this.sanitizer.bypassSecurityTrustHtml(html);\n });\n\n ngOnInit(): void {\n this.projectId = this.route.snapshot.params.projectId as string;\n if (!this.projectId) {\n return;\n }\n void this.pm_DS.loadAgentReports(this.projectId);\n // Előző nézetből maradt aktív riport tisztítása.\n this.pm_DS.clearActiveAgentReport();\n }\n\n /**\n * Egy riport kiválasztása — relPath alapján betölti a tartalmat a DS-en keresztül.\n * Path-traversal védelem szerver-oldalon: érvénytelen relPath → 400 + DS error state.\n */\n handleSelectReport(relPath: string): void {\n if (!this.projectId || !relPath) {\n return;\n }\n this.selectedRelPath_$.set(relPath);\n void this.pm_DS.loadAgentReport(this.projectId, relPath);\n }\n\n /** Vissza a projekt detail-re. */\n handleBackToProject(): void {\n if (!this.projectId) {\n return;\n }\n void this.router.navigate(['/project-management/projects', this.projectId]);\n }\n\n /** Lista refresh (felhasználó gombnyomásra). */\n handleRefresh(): void {\n if (!this.projectId) {\n return;\n }\n void this.pm_DS.loadAgentReports(this.projectId);\n }\n}\n", "<div class=\"flex flex-col h-full p-4 gap-3\">\n\n <!-- Header row: back + title + refresh -->\n <div class=\"flex items-center gap-3\">\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-700 hover:bg-neutral-800 text-neutral-300\"\n (click)=\"handleBackToProject()\"\n title=\"Vissza a projekt nézetre\">\n ← Back\n </button>\n <h2 class=\"text-lg font-semibold text-neutral-100 flex-1\">\n Agent Reports\n </h2>\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-700 hover:bg-neutral-800 text-neutral-300\"\n (click)=\"handleRefresh()\"\n [disabled]=\"pm_DS.agentReportsLoading_$()\">\n ⟳ Refresh\n </button>\n </div>\n\n <!-- Main layout: list (left) + detail (right) on desktop; stacked on mobile -->\n <div class=\"flex-1 flex flex-col md:flex-row gap-3 min-h-0\">\n\n <!-- Timeline list -->\n <aside class=\"md:w-80 md:max-w-sm flex flex-col min-h-0 rounded-lg border border-neutral-700 bg-neutral-900/60\">\n <div class=\"px-3 py-2 border-b border-neutral-700 text-xs uppercase tracking-wide text-neutral-400\">\n Timeline\n </div>\n <div class=\"flex-1 overflow-y-auto text-sm\">\n @if (pm_DS.agentReportsLoading_$()) {\n <div class=\"p-3 text-neutral-500 text-xs\">Loading…</div>\n } @else if (pm_DS.agentReportsError_$()) {\n <div class=\"p-3 text-red-400 text-xs\">\n Failed to load reports.\n </div>\n } @else if (!reportsByMonth_$().length) {\n <div class=\"p-3 text-neutral-500 text-xs italic\">\n No reports found in __agent/reports/.\n </div>\n } @else {\n @for (group of reportsByMonth_$(); track group.month) {\n <div class=\"px-3 py-1 bg-neutral-800/50 text-[11px] font-semibold uppercase tracking-wide text-neutral-400 border-t border-neutral-700/60\">\n {{ group.month }}\n </div>\n @for (report of group.items; track report.relPath) {\n <button type=\"button\"\n class=\"block w-full text-left px-3 py-2 border-b border-neutral-800 hover:bg-neutral-800/60 transition-colors\"\n [class.bg-neutral-800]=\"selectedRelPath_$() === report.relPath\"\n (click)=\"handleSelectReport(report.relPath)\">\n <div class=\"flex items-center justify-between gap-2\">\n <span class=\"font-mono text-xs text-neutral-200\">{{ report.date }}</span>\n <span class=\"text-[10px] text-neutral-500\">{{ report.lineCount }}L</span>\n </div>\n @if (report.preview) {\n <div class=\"mt-1 text-[11px] text-neutral-400 line-clamp-2\">\n {{ report.preview }}\n </div>\n }\n </button>\n }\n }\n }\n </div>\n </aside>\n\n <!-- Detail panel -->\n <main class=\"flex-1 min-h-0 rounded-lg border border-neutral-700 bg-neutral-900/60 flex flex-col\">\n @if (pm_DS.activeAgentReportLoading_$()) {\n <div class=\"p-4 text-neutral-500 text-xs\">Loading report…</div>\n } @else if (pm_DS.activeAgentReportError_$()) {\n <div class=\"p-4 text-red-400 text-xs\">\n Failed to load report (invalid relPath or path-traversal rejection).\n </div>\n } @else {\n @let active = pm_DS.activeAgentReport_$();\n @if (active) {\n <div class=\"px-4 py-2 border-b border-neutral-700 flex items-center gap-3\">\n <span class=\"font-mono text-xs text-neutral-200\">{{ active.date }}</span>\n <span class=\"text-[10px] text-neutral-500\">{{ active.lineCount }}L</span>\n <span class=\"text-[10px] text-neutral-500 ml-auto\">{{ active.lastModified }}</span>\n </div>\n <div class=\"flex-1 overflow-y-auto p-4 prose prose-invert prose-sm max-w-none\"\n [innerHTML]=\"activeReportHtml_$()\"></div>\n } @else {\n <div class=\"p-4 text-neutral-500 text-xs italic\">\n Select a report from the timeline to view its content.\n </div>\n }\n }\n </main>\n\n </div>\n</div>\n", "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { S_ContentState_Component } from '../shared/_components/s-content-state/s-content-state.component';\nimport { S_PageHeader_Component } from '../shared/_components/s-page-header/s-page-header.component';\nimport { S_Modal_Component } from '../shared/_components/s-modal/s-modal.component';\nimport { PM_DiscoverWizard_Component } from './_components/pm-discover-wizard/pm-discover-wizard.component';\nimport { PM_Shell_Component } from './_components/pm-shell/pm-shell.component';\nimport { PM_List_Component } from './_components/pm-projects-list/pm-list.component';\nimport { PM_Detail_Component } from './_components/pm-project-detail/pm-detail.component';\nimport { PM_GroupDetail_Component } from './_components/pm-group-detail/pm-group-detail.component';\nimport { PM_TodoTab_Component } from './_components/pm-project-detail/pm-todo-tab/pm-todo-tab.component';\nimport { PM_BacklogTab_Component } from './_components/pm-project-detail/pm-backlog-tab/pm-backlog-tab.component';\nimport { PM_BugsTab_Component } from './_components/pm-project-detail/pm-bugs-tab/pm-bugs-tab.component';\nimport { PM_ChangelogTab_Component } from './_components/pm-project-detail/pm-changelog-tab/pm-changelog-tab.component';\nimport { PM_TestErrorReportsTab_Component } from './_components/pm-project-detail/pm-test-error-reports-tab/pm-test-error-reports-tab.component';\nimport { PM_ReviewsTab_Component } from './_components/pm-project-detail/pm-reviews-tab/pm-reviews-tab.component';\nimport { PM_UserInputTab_Component } from './_components/pm-project-detail/pm-user-input-tab/pm-user-input-tab.component';\nimport { PM_UserInputWizard_Component } from './_components/pm-project-detail/pm-user-input-wizard/pm-user-input-wizard.component';\nimport { PM_AgentReports_Component } from './_components/pm-agent-reports/pm-agent-reports.component';\nimport { ProjectSource_Module } from './_modules/project-source/project-source.module';\n\n/** Project Management modul route-jai. */\nconst projectManagementRoutes: Routes = [\n {\n path: '',\n component: PM_Shell_Component,\n children: [\n { path: '', pathMatch: 'full', component: PM_List_Component },\n { path: 'projects/:projectId', component: PM_Detail_Component },\n { path: 'projects/:projectId/agent-reports', component: PM_AgentReports_Component },\n { path: 'groups/:groupId', component: PM_GroupDetail_Component },\n ],\n },\n];\n\n/**\n * Project Management modul.\n * Projektek kezelése: lista, részlet, user request-ek, file sync (TODO/Backlog/Bugs/Changelog).\n */\n@NgModule({\n declarations: [\n PM_Shell_Component,\n PM_List_Component,\n PM_Detail_Component,\n PM_GroupDetail_Component,\n PM_DiscoverWizard_Component,\n ],\n imports: [\n CommonModule,\n RouterModule.forChild(projectManagementRoutes),\n S_ContentState_Component,\n S_Modal_Component,\n S_PageHeader_Component,\n PM_TodoTab_Component,\n PM_BacklogTab_Component,\n PM_BugsTab_Component,\n PM_ChangelogTab_Component,\n PM_TestErrorReportsTab_Component,\n PM_ReviewsTab_Component,\n PM_UserInputTab_Component,\n PM_UserInputWizard_Component,\n PM_AgentReports_Component,\n ProjectSource_Module,\n ],\n})\n/** ProjectManagement_Module class. */\nexport class ProjectManagement_Module {}\n"],
5
- "mappings": "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",
6
- "names": ["\u0275\u0275text", "\u0275\u0275elementStart", "\u0275\u0275elementEnd", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "scanPath_$", "set", "target", "value", "\u0275\u0275template", "PM_DiscoverWizard_Component_Conditional_18_Conditional_13_Template", "PM_DiscoverWizard_Component_Conditional_18_Conditional_14_Template", "handleScan", "PM_DiscoverWizard_Component_Conditional_18_Conditional_17_Template", "PM_DiscoverWizard_Component_Conditional_18_Conditional_18_Template", "handleClose", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275conditional", "pm_DS", "discoveryError_$", "discoveryLoading_$", "discoveredProjects_$", "length", "trim", "\u0275\u0275element", "\u0275\u0275textInterpolate", "project_r7", "description", "\u0275$index_95_r6", "_r5", "$index", "toggleProject", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_For_7_Conditional_2_Template", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_For_7_Conditional_8_Template", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_For_7_Conditional_10_Template", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_For_7_Conditional_11_Template", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_For_7_Conditional_12_Template", "\u0275\u0275classMap", "selectedIndexes_$", "has", "name", "localPath", "hasGitRepo", "hasPackageJson", "githubRepoUrl", "_r4", "toggleSelectAll", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_Conditional_3_Template", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_Conditional_4_Template", "\u0275\u0275repeaterCreate", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_For_7_Template", "_forTrack0", "size", "newProjects_$", "\u0275\u0275repeater", "project_r8", "PM_DiscoverWizard_Component_Conditional_19_Conditional_8_For_5_Template", "existingProjects_$", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_Template", "PM_DiscoverWizard_Component_Conditional_19_Conditional_7_Template", "PM_DiscoverWizard_Component_Conditional_19_Conditional_8_Template", "_r3", "goToConfirm", "goBackToScan", "\u0275\u0275textInterpolate1", "selectedProjects_$", "project_r10", "PM_DiscoverWizard_Component_Conditional_20_For_5_Conditional_5_Template", "PM_DiscoverWizard_Component_Conditional_20_For_5_Conditional_6_Template", "PM_DiscoverWizard_Component_Conditional_20_For_5_Template", "PM_DiscoverWizard_Component_Conditional_20_Conditional_6_Template", "_r9", "handleCreate", "PM_DiscoverWizard_Component_Conditional_20_Conditional_9_Template", "PM_DiscoverWizard_Component_Conditional_20_Conditional_10_Template", "goBackToSelect", "saveError_$", "isSaving_$", "_r11", "createdCount_$", "PM_DiscoverWizard_Component", "closed", "EventEmitter", "inject", "ProjectManagement_DataService", "settingsGeneral_DS", "Set_General_DataService", "step_$", "signal", "Set", "computed", "filter", "p", "isAlreadyRegistered", "indexes", "_p", "i", "ngOnInit", "loadDefaultWorkspacePath", "then", "path", "defaultWorkspacePath_$", "__async", "scanPath", "discoverProjects", "allNew", "allIndexes", "map", "index", "current", "delete", "add", "clearDiscovery", "projects", "createDiscoveredProjects", "err", "emit", "selectors", "outputs", "decls", "vars", "consts", "template", "rf", "ctx", "PM_DiscoverWizard_Component_Case_3_Template", "PM_DiscoverWizard_Component_Case_4_Template", "PM_DiscoverWizard_Component_Case_5_Template", "PM_DiscoverWizard_Component_Case_6_Template", "PM_DiscoverWizard_Component_Conditional_18_Template", "PM_DiscoverWizard_Component_Conditional_19_Template", "PM_DiscoverWizard_Component_Conditional_20_Template", "PM_DiscoverWizard_Component_Conditional_21_Template", "tmp_0_0", "PM_Shell_Component", "selectors", "decls", "vars", "template", "rf", "ctx", "\u0275\u0275element", "\u0275\u0275text", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleDiscoverWizardClosed", "\u0275\u0275elementEnd", "$event", "_r3", "newProjectName_$", "set", "target", "value", "newProjectGithubUrl_$", "newProjectDescription_$", "\u0275\u0275template", "PM_List_Component_Conditional_13_Conditional_16_Template", "handleCreateProject", "PM_List_Component_Conditional_13_Conditional_19_Template", "PM_List_Component_Conditional_13_Conditional_20_Template", "toggleNewProjectForm", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275conditional", "saveError_$", "isSaving_$", "trim", "_r4", "newGroupName_$", "newGroupScanPath_$", "PM_List_Component_Conditional_21_Conditional_11_Template", "handleCreateGroup", "PM_List_Component_Conditional_21_Conditional_14_Template", "PM_List_Component_Conditional_21_Conditional_15_Template", "groupSaveError_$", "isGroupSaving_$", "group_r6", "_r5", "$implicit", "handleOpenGroupDetail", "\u0275\u0275element", "handleArchiveGroup", "\u0275\u0275textInterpolate1", "name", "\u0275\u0275textInterpolate", "scanPath", "\u0275\u0275repeaterCreate", "PM_List_Component_Conditional_22_For_2_Template", "_forTrack0", "\u0275\u0275repeater", "pm_DS", "groups_$", "project_r8", "description", "\u0275\u0275classMap", "gitStatus", "gitBranch", "packageVersion", "lastSyncStatus", "PM_List_Component_For_29_Conditional_6_Conditional_1_Template", "PM_List_Component_For_29_Conditional_6_Conditional_2_Template", "PM_List_Component_For_29_Conditional_6_Conditional_3_Template", "_r9", "handleGitRefresh", "PM_List_Component_For_29_Conditional_6_Conditional_5_Template", "PM_List_Component_For_29_Conditional_6_Conditional_6_Template", "gitRefreshingProjectId_$", "_id", "githubRepoUrl", "_r7", "openProject", "PM_List_Component_For_29_Conditional_4_Template", "PM_List_Component_For_29_Conditional_5_Template", "PM_List_Component_For_29_Conditional_6_Template", "PM_List_Component_For_29_Conditional_7_Template", "handleDeleteClick", "isActive", "_r10", "handleCrossInstanceRefresh", "PM_List_Component_Conditional_37_Conditional_1_Template", "PM_List_Component_Conditional_37_Conditional_2_Template", "crossInstanceLoading_$", "rp_r11", "gitRemoteUrl", "_r12", "cloneTargetDir_$", "PM_List_Component_Conditional_38_Conditional_3_For_2_Conditional_8_Conditional_2_Template", "handleConfirmClone", "PM_List_Component_Conditional_38_Conditional_3_For_2_Conditional_8_Conditional_5_Template", "PM_List_Component_Conditional_38_Conditional_3_For_2_Conditional_8_Conditional_6_Template", "handleCancelClone", "cloneError_$", "cloneLoading_$", "_r13", "handleStartClone", "PM_List_Component_Conditional_38_Conditional_3_For_2_Conditional_6_Template", "PM_List_Component_Conditional_38_Conditional_3_For_2_Conditional_7_Template", "PM_List_Component_Conditional_38_Conditional_3_For_2_Conditional_8_Template", "PM_List_Component_Conditional_38_Conditional_3_For_2_Conditional_9_Template", "tmp_13_0", "ccapId", "undefined", "tmp_14_0", "substring", "cloneSourceProjectId_$", "PM_List_Component_Conditional_38_Conditional_3_For_2_Template", "remoteProjects_$", "PM_List_Component_Conditional_38_Conditional_0_Template", "PM_List_Component_Conditional_38_Conditional_1_Template", "PM_List_Component_Conditional_38_Conditional_2_Template", "PM_List_Component_Conditional_38_Conditional_3_Template", "length", "crossInstanceError_$", "PM_List_Component_Conditional_40_Conditional_8_Template", "ctx", "deleteError_$", "PM_List_Component", "inject", "ProjectManagement_DataService", "router", "Router", "isDiscoverWizardOpen_$", "signal", "isNewProjectFormOpen_$", "isDeleteModalOpen_$", "projectToDelete_$", "isDeleting_$", "isGroupFormOpen_$", "isCrossInstanceOpen_$", "computed", "currentCcapId", "currentCcapId_$", "all", "crossInstanceProjects_$", "filter", "p", "ngOnInit", "loadProjects", "loadGroups", "handleSyncAll", "syncAllProjects", "event", "project", "__async", "stopPropagation", "refreshGitStatus", "toggleDiscoverWizard", "update", "open", "resetForm", "navigate", "createProject", "err", "handleDeleteModalDismissed", "handleDeleteConfirmed", "archiveProject", "toggleGroupForm", "resetGroupForm", "createGroup", "group", "archiveGroup", "toggleCrossInstance", "loadCrossInstanceProjects", "projectId", "sourceId", "targetDir", "cloneProject", "sourceProjectId", "targetParentDir", "selectors", "decls", "vars", "consts", "template", "rf", "PM_List_Component_Conditional_4_Template", "PM_List_Component_Conditional_5_Template", "PM_List_Component_Conditional_7_Template", "PM_List_Component_Conditional_8_Template", "PM_List_Component_Conditional_10_Template", "PM_List_Component_Conditional_11_Template", "PM_List_Component_Conditional_12_Template", "PM_List_Component_Conditional_13_Template", "PM_List_Component_Conditional_19_Template", "PM_List_Component_Conditional_20_Template", "PM_List_Component_Conditional_21_Template", "PM_List_Component_Conditional_22_Template", "PM_List_Component_Conditional_23_Template", "PM_List_Component_For_29_Template", "PM_List_Component_Conditional_37_Template", "PM_List_Component_Conditional_38_Template", "PM_List_Component_Conditional_40_Template", "PM_List_Component_Conditional_45_Template", "PM_List_Component_Conditional_46_Template", "syncLoading_$", "projectsLoading_$", "projectsError_$", "projects_$", "\u0275\u0275classProp", "tmp_24_0", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "PM_CcLaunchWizard_Component", "isOpen", "input", "modalTitle", "sessionLabel", "workspacePath", "basePrompt", "closed", "output", "ccSession_DS", "inject", "ClaudeCode_DataService", "router", "Router", "peiContext_DS", "ExS_InstanceContext_DataService", "globalError_CS", "CCAP_GlobalError_ControlService", "extraInstruction_$", "signal", "fullPromptPreview_$", "computed", "base", "trimEnd", "extra", "trim", "length", "isStarting_$", "handleClose", "set", "emit", "handleExtraChange", "value", "handleStartSession", "__async", "ws", "promptText", "sessionId", "createSession", "label", "initialPrompt", "ccapId", "activeCcapId_$", "target", "navigate", "err", "showError", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275listener", "\u0275\u0275template", "PM_CcLaunchWizard_Component_Conditional_7_Template", "$event", "PM_CcLaunchWizard_Component_Conditional_22_Template", "PM_CcLaunchWizard_Component_Conditional_23_Template", "\u0275\u0275property", "\u0275\u0275advance", "\u0275\u0275conditional", "\u0275\u0275textInterpolate", "CommonModule", "FormsModule", "DefaultValueAccessor", "NgControlStatus", "NgModel", "S_Modal_Component", "encapsulation", "import_fsm_dynamo", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275text", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleCopy", "\u0275\u0275template", "PM_EntryRawModal_Component_Conditional_1_Conditional_2_Template", "PM_EntryRawModal_Component_Conditional_1_Conditional_3_Template", "\u0275\u0275advance", "\u0275\u0275classMap", "isCopied_$", "\u0275\u0275conditional", "\u0275\u0275textInterpolate", "rawText", "PM_EntryRawModal_Component", "isOpen", "input", "title", "closed", "output", "hasBody_$", "computed", "trim", "length", "signal", "handleModalClosed", "set", "emit", "text", "navigator", "clipboard", "writeText", "then", "setTimeout", "catch", "err", "DyFM_Log", "error", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "PM_EntryRawModal_Component_Conditional_1_Template", "PM_EntryRawModal_Component_Conditional_2_Template", "\u0275\u0275property", "CommonModule", "S_Modal_Component", "encapsulation", "PM_ControlEntryEditModal_Component", "isOpen", "input", "title", "initialText", "closed", "output", "saved", "draft_$", "signal", "constructor", "effect", "set", "handleClose", "emit", "handleSave", "text", "trimEnd", "length", "newRawBlock", "handleDraftChange", "value", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275text", "\u0275\u0275elementEnd", "$event", "\u0275\u0275property", "\u0275\u0275advance", "trim", "CommonModule", "FormsModule", "DefaultValueAccessor", "NgControlStatus", "NgModel", "S_Modal_Component", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleEdit", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "disabledEdit", "_r3", "handleRemove", "disabledRemove", "_r4", "handleCcWork", "disabledCc", "_r5", "handleCcFix", "_r6", "handleCcReview", "PM_ItemRowActions_Component", "showEdit", "input", "showRemove", "showCcWork", "showCcFix", "showCcReview", "edit", "output", "remove", "ccWork", "ccFix", "ccReview", "emit", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "PM_ItemRowActions_Component_Conditional_1_Template", "PM_ItemRowActions_Component_Conditional_2_Template", "PM_ItemRowActions_Component_Conditional_3_Template", "PM_ItemRowActions_Component_Conditional_4_Template", "PM_ItemRowActions_Component_Conditional_5_Template", "\u0275\u0275advance", "\u0275\u0275conditional", "CommonModule", "encapsulation", "PM_CcLaunchPrompt_Util", "buildBugFixPrompt", "entry", "lines", "code", "title", "details", "trim", "length", "push", "linked", "linkedCcapErrorId", "join", "buildBugReviewPrompt", "buildBacklogWorkPrompt", "type", "statusRaw", "buildBacklogReviewPrompt", "buildTodoWorkPrompt", "section", "buildTodoReviewPrompt", "buildUserInputWorkPrompt", "e1", "e2", "e3", "e4", "rawUserInput", "buildUserInputReviewPrompt", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275text", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "ctx_r0", "filePreamble", "PM_ControlFilePreambleDisclosure_Component", "selectors", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "PM_ControlFilePreambleDisclosure_Component_Conditional_0_Template", "\u0275\u0275conditional", "trim", "length", "CommonModule", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "ctx_r0", "fileContent", "metadata", "lineCount", "\u0275\u0275textInterpolate", "error", "\u0275\u0275classProp", "entry_r3", "priority", "area", "phase", "source", "details", "section", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r2", "$implicit", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleOpenRawTodo", "\u0275\u0275element", "\u0275\u0275template", "PM_TodoTab_Component_For_14_Conditional_13_Template", "PM_TodoTab_Component_For_14_Conditional_14_Template", "PM_TodoTab_Component_For_14_Conditional_15_Template", "PM_TodoTab_Component_For_14_Conditional_16_Template", "PM_TodoTab_Component_For_14_Conditional_17_Template", "PM_TodoTab_Component_For_14_Conditional_18_Template", "handleOpenEdit", "handleRemove", "handleOpenCcWork", "handleOpenCcReview", "statusEmoji", "code", "title", "\u0275\u0275conditional", "\u0275\u0275property", "workspacePath", "trim", "entryMutationBusy_$", "PM_TodoTab_Component", "isLoading", "projectId", "refresh", "EventEmitter", "pm_DS", "inject", "ProjectManagement_DataService", "globalError_CS", "CCAP_GlobalError_ControlService", "rawModalOpen_$", "signal", "rawModalTitle_$", "rawModalBody_$", "ccLaunchOpen_$", "ccLaunchTitle_$", "ccLaunchLabel_$", "ccLaunchBasePrompt_$", "editModalOpen_$", "editModalTitle_$", "editModalInitial_$", "editPriorBlock_", "confirmModalOpen_$", "confirmModalTitle_$", "confirmModalBody_$", "pendingConfirmAction_", "workspacePathForWizard_$", "computed", "entry", "set", "rawLines", "join", "handleCloseRawModal", "PM_CcLaunchPrompt_Util", "buildTodoWorkPrompt", "buildTodoReviewPrompt", "handleCcLaunchClosed", "length", "prior", "handleEditModalClosed", "handleEditSaved", "params", "__async", "pid", "mutateControlFileEntryAndRefresh", "PM_ControlFileType_Type", "todo", "mode", "PM_ControlEntryMutationMode_Type", "update", "priorRawBlock", "newRawBlock", "err", "showError", "executeRemoveTodoEntry", "remove", "handleConfirmModalDismissed", "handleConfirmModalCancel", "handleConfirmModalConfirm", "action", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "PM_TodoTab_Component_Conditional_5_Template", "emit", "PM_TodoTab_Component_Conditional_10_Template", "PM_TodoTab_Component_Conditional_11_Template", "\u0275\u0275repeaterCreate", "PM_TodoTab_Component_For_14_Template", "_forTrack0", "$event", "filePreamble", "exists", "entries", "\u0275\u0275repeater", "tmp_9_0", "undefined", "\u0275\u0275pureFunction0", "_c0", "CommonModule", "S_ContentState_Component", "PM_EntryRawModal_Component", "PM_CcLaunchWizard_Component", "PM_ControlEntryEditModal_Component", "PM_ItemRowActions_Component", "PM_ControlFilePreambleDisclosure_Component", "S_Modal_Component", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "ctx_r0", "fileContent", "metadata", "lineCount", "entries", "length", "\u0275\u0275textInterpolate", "error", "entry_r3", "statusKey", "\u0275\u0275classProp", "priority", "area", "phase", "details", "req_r4", "\u0275\u0275repeaterCreate", "PM_BacklogTab_Component_For_15_Conditional_20_For_2_Template", "\u0275\u0275repeaterTrackByIdentity", "\u0275\u0275repeater", "reqCodes", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r2", "$implicit", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleOpenRawBacklog", "\u0275\u0275element", "\u0275\u0275template", "PM_BacklogTab_Component_For_15_Conditional_15_Template", "PM_BacklogTab_Component_For_15_Conditional_16_Template", "PM_BacklogTab_Component_For_15_Conditional_17_Template", "PM_BacklogTab_Component_For_15_Conditional_18_Template", "PM_BacklogTab_Component_For_15_Conditional_19_Template", "PM_BacklogTab_Component_For_15_Conditional_20_Template", "handleOpenEdit", "handleRemove", "handleOpenCcWork", "handleOpenCcReview", "type", "statusEmoji", "code", "title", "\u0275\u0275conditional", "\u0275\u0275property", "workspacePath", "trim", "entryMutationBusy_$", "PM_BacklogTab_Component", "isLoading", "projectId", "refresh", "EventEmitter", "pm_DS", "inject", "ProjectManagement_DataService", "globalError_CS", "CCAP_GlobalError_ControlService", "rawModalOpen_$", "signal", "rawModalTitle_$", "rawModalBody_$", "ccLaunchOpen_$", "ccLaunchTitle_$", "ccLaunchLabel_$", "ccLaunchBasePrompt_$", "editModalOpen_$", "editModalTitle_$", "editModalInitial_$", "editPriorBlock_", "confirmModalOpen_$", "confirmModalTitle_$", "confirmModalBody_$", "pendingConfirmAction_", "workspacePathForWizard_$", "computed", "entry", "set", "rawLines", "join", "handleCloseRawModal", "PM_CcLaunchPrompt_Util", "buildBacklogWorkPrompt", "buildBacklogReviewPrompt", "handleCcLaunchClosed", "prior", "handleEditModalClosed", "handleEditSaved", "params", "__async", "pid", "mutateControlFileEntryAndRefresh", "PM_ControlFileType_Type", "backlog", "mode", "PM_ControlEntryMutationMode_Type", "update", "priorRawBlock", "newRawBlock", "err", "showError", "executeRemoveBacklogEntry", "remove", "handleConfirmModalDismissed", "handleConfirmModalCancel", "handleConfirmModalConfirm", "action", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "PM_BacklogTab_Component_Conditional_5_Template", "PM_BacklogTab_Component_Conditional_6_Template", "emit", "PM_BacklogTab_Component_Conditional_11_Template", "PM_BacklogTab_Component_Conditional_12_Template", "PM_BacklogTab_Component_For_15_Template", "_forTrack0", "$event", "filePreamble", "exists", "tmp_10_0", "undefined", "\u0275\u0275pureFunction0", "_c0", "CommonModule", "S_ContentState_Component", "PM_EntryRawModal_Component", "PM_CcLaunchWizard_Component", "PM_ControlEntryEditModal_Component", "PM_ItemRowActions_Component", "PM_ControlFilePreambleDisclosure_Component", "S_Modal_Component", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "cand_r2", "\u0275\u0275restoreView", "_r1", "$implicit", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleSelectPreferredBugsPath", "\u0275\u0275property", "projectId", "trim", "length", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "relativeToProject", "\u0275\u0275repeaterCreate", "PM_BugsTab_Component_Conditional_13_For_8_Template", "_forTrack0", "\u0275\u0275repeater", "bugsPathResolve_$", "candidates", "\u0275\u0275textInterpolate", "lastManualBugSummary_$", "lastAppendFromErrorsSummary_$", "lastSingleBugFromErrorSummary_$", "errors_DS", "errorsLoadError_$", "\u0275\u0275element", "row_r6", "_r5", "handlePmUserMarkToggle", "\u0275\u0275template", "PM_BugsTab_Component_Conditional_15_Conditional_11_For_18_Conditional_11_Template", "PM_BugsTab_Component_Conditional_15_Conditional_11_For_18_Conditional_12_Template", "PM_BugsTab_Component_Conditional_15_Conditional_11_For_18_Conditional_13_Template", "handleAppendSingleBugFromError", "PM_BugsTab_Component_Conditional_15_Conditional_11_For_18_Conditional_16_Template", "PM_BugsTab_Component_Conditional_15_Conditional_11_For_18_Conditional_17_Template", "\u0275\u0275pureFunction1", "_c0", "isPmUserMarked", "messageShort", "tmp_14_0", "occurrenceCount", "undefined", "tmp_15_0", "source", "tmp_16_0", "idLabel", "tmp_17_0", "\u0275\u0275pureFunction2", "_c1", "errorId", "pmUserMarkBusyErrorId_$", "\u0275\u0275conditional", "errorsLoading_$", "isAppendFromErrorsBusy_$", "singleBugFromErrorBusyErrorId_$", "PM_BugsTab_Component_Conditional_15_Conditional_11_For_18_Template", "_forTrack1", "errorTableRows_$", "_r4", "handleAppendBugsFromErrors", "PM_BugsTab_Component_Conditional_15_Conditional_6_Template", "PM_BugsTab_Component_Conditional_15_Conditional_7_Template", "PM_BugsTab_Component_Conditional_15_Conditional_8_Template", "PM_BugsTab_Component_Conditional_15_Conditional_9_Template", "PM_BugsTab_Component_Conditional_15_Conditional_10_Template", "PM_BugsTab_Component_Conditional_15_Conditional_11_Template", "\u0275\u0275classProp", "entry_r8", "priority", "area", "linkedCcapErrorId", "details", "_r9", "handleRemoveLinkedError", "_r7", "handleOpenRawBug", "PM_BugsTab_Component_Conditional_18_For_2_Conditional_13_Template", "PM_BugsTab_Component_Conditional_18_For_2_Conditional_14_Template", "PM_BugsTab_Component_Conditional_18_For_2_Conditional_15_Template", "PM_BugsTab_Component_Conditional_18_For_2_Conditional_16_Template", "handleOpenEditBugFromFile", "handleRemoveBugEntry", "handleOpenCcFixWizard", "handleOpenCcReviewWizard", "PM_BugsTab_Component_Conditional_18_For_2_Conditional_18_Template", "statusEmoji", "code", "title", "workspacePath", "entryMutationBusy_$", "PM_BugsTab_Component_Conditional_18_For_2_Template", "_forTrack2", "bugsFileContent", "entries", "entry_r11", "_r12", "_r10", "PM_BugsTab_Component_Conditional_20_For_2_Conditional_15_Template", "PM_BugsTab_Component_Conditional_20_For_2_Conditional_16_Template", "PM_BugsTab_Component_Conditional_20_For_2_Conditional_17_Template", "PM_BugsTab_Component_Conditional_20_For_2_Conditional_18_Template", "handleOpenEditBugFromBacklog", "PM_BugsTab_Component_Conditional_20_For_2_Conditional_20_Template", "PM_BugsTab_Component_Conditional_20_For_2_Template", "backlogBugs_$", "PM_BugsTab_Component", "input", "backlogFileContent", "isLoading", "error", "isCcapRevisionedHost", "refresh", "EventEmitter", "inject", "Errors_DataService", "pm_DS", "ProjectManagement_DataService", "globalError_CS", "CCAP_GlobalError_ControlService", "signal", "rawModalOpen_$", "rawModalTitle_$", "rawModalBody_$", "ccLaunchOpen_$", "ccLaunchTitle_$", "ccLaunchLabel_$", "ccLaunchBasePrompt_$", "manualBugModalOpen_$", "manualBugBusy_$", "bugsPathResolveLoading_$", "editModalOpen_$", "editModalTitle_$", "editModalInitial_$", "editPriorBlock_", "confirmModalOpen_$", "confirmModalTitle_$", "confirmModalBody_$", "pendingConfirmAction_", "workspacePathForWizard_$", "computed", "errors_$", "map", "e", "i", "rawMsg", "message", "hasId", "_id", "rowKey", "String", "Boolean", "pmUserMarkedAt", "truncateText", "ngOnChanges", "changes", "pid", "loadBugsPathResolve", "set", "loadErrors", "__async", "resolution", "getBugsPathResolve", "err", "showError", "cand", "updateProject", "preferredBugsMdRelativePath", "emit", "content", "filter", "type", "hasContent_$", "isBacklogFallback_$", "bugs", "exists", "entry", "prefix", "rawLines", "join", "handleCloseRawModal", "PM_CcLaunchPrompt_Util", "buildBugFixPrompt", "buildBugReviewPrompt", "handleCcLaunchClosed", "prior", "handleEditModalClosed", "handleEditSaved", "params", "fileType", "PM_ControlFileType_Type", "backlog", "mutateControlFileEntryAndRefresh", "mode", "PM_ControlEntryMutationMode_Type", "update", "priorRawBlock", "newRawBlock", "fromBacklogFallback", "executeRemoveBugEntry", "remove", "handleOpenManualBugModal", "handleCloseManualBugModal", "handleManualBugSubmitted", "body", "result", "createManualBugAndRefresh", "createdCode", "userRequestId", "appendBugsFromErrorsAndRefreshFiles", "parts", "createdCodes", "push", "skippedAlreadyLinkedCount", "skippedMissingIdCount", "skippedUserMarkedCount", "row", "id", "appendSingleBugFromErrorAndRefreshFiles", "outcome", "PM_AppendSingleBugFromErrorOutcome_Type", "created", "alreadyLinked", "userMarked", "errorNotFound", "setPmUserMark", "clearOne", "handleConfirmModalDismissed", "handleConfirmModalCancel", "handleConfirmModalConfirm", "action", "raw", "maxLen", "t", "replace", "slice", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275NgOnChangesFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "PM_BugsTab_Component_Conditional_9_Template", "PM_BugsTab_Component_Conditional_12_Template", "PM_BugsTab_Component_Conditional_13_Template", "PM_BugsTab_Component_Conditional_14_Template", "PM_BugsTab_Component_Conditional_15_Template", "PM_BugsTab_Component_Conditional_18_Template", "PM_BugsTab_Component_Conditional_20_Template", "$event", "tmp_3_0", "isAmbiguous", "tmp_11_0", "filePreamble", "tmp_12_0", "tmp_13_0", "CommonModule", "NgClass", "S_ContentState_Component", "PM_EntryRawModal_Component", "PM_CcLaunchWizard_Component", "PM_ControlEntryEditModal_Component", "PM_ItemRowActions_Component", "PM_ManualBugModal_Component", "PM_ControlFilePreambleDisclosure_Component", "S_Modal_Component", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "ctx_r0", "fileContent", "metadata", "lineCount", "entries", "length", "\u0275\u0275textInterpolate", "error", "entry_r3", "summary", "source", "area", "doc", "req_r4", "\u0275\u0275repeaterCreate", "PM_ChangelogTab_Component_For_13_For_7_Conditional_17_For_2_Template", "\u0275\u0275repeaterTrackByIdentity", "\u0275\u0275repeater", "reqCodes", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r2", "$implicit", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleOpenRawChangelog", "\u0275\u0275element", "\u0275\u0275template", "PM_ChangelogTab_Component_For_13_For_7_Conditional_12_Template", "PM_ChangelogTab_Component_For_13_For_7_Conditional_14_Template", "PM_ChangelogTab_Component_For_13_For_7_Conditional_15_Template", "PM_ChangelogTab_Component_For_13_For_7_Conditional_16_Template", "PM_ChangelogTab_Component_For_13_For_7_Conditional_17_Template", "type", "code", "title", "\u0275\u0275conditional", "PM_ChangelogTab_Component_For_13_For_7_Template", "_forTrack1", "section_r5", "version", "PM_ChangelogTab_Component", "input", "isLoading", "refresh", "EventEmitter", "rawModalOpen_$", "signal", "rawModalTitle_$", "rawModalBody_$", "entry", "set", "rawLines", "join", "handleCloseRawModal", "versionSections_$", "computed", "content", "map", "Map", "order", "ver", "has", "push", "get", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "PM_ChangelogTab_Component_Conditional_5_Template", "PM_ChangelogTab_Component_Conditional_6_Template", "emit", "PM_ChangelogTab_Component_Conditional_11_Template", "PM_ChangelogTab_Component_For_13_Template", "_forTrack0", "tmp_1_0", "\u0275\u0275property", "tmp_2_0", "filePreamble", "exists", "CommonModule", "S_ContentState_Component", "PM_EntryRawModal_Component", "PM_ControlFilePreambleDisclosure_Component", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "fc_r1", "error", "\u0275\u0275textInterpolate1", "metadata", "lineCount", "\u0275\u0275template", "PM_TestErrorReportsTab_Component_Conditional_23_Conditional_0_Template", "PM_TestErrorReportsTab_Component_Conditional_23_Conditional_1_Template", "\u0275\u0275conditional", "exists", "entry_r2", "stackTop", "meta", "PM_TestErrorReportsTab_Component_For_26_Conditional_11_Conditional_1_Template", "PM_TestErrorReportsTab_Component_For_26_Conditional_11_Conditional_2_Template", "PM_TestErrorReportsTab_Component_For_26_Conditional_2_Template", "PM_TestErrorReportsTab_Component_For_26_Conditional_3_Template", "PM_TestErrorReportsTab_Component_For_26_Conditional_10_Template", "PM_TestErrorReportsTab_Component_For_26_Conditional_11_Template", "reportKind", "ctx_r2", "reportKindEnum", "e2e", "recordedAt", "message", "PM_TestErrorReportsTab_Component", "fileContent", "input", "isLoading", "isClearing", "PM_TestErrorReportKind_Type", "filterMode_$", "signal", "refresh", "output", "clearFile", "filteredEntries_$", "computed", "entries", "mode", "filter", "e", "handleSetFilter", "set", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275listener", "emit", "PM_TestErrorReportsTab_Component_Conditional_23_Template", "\u0275\u0275repeaterCreate", "PM_TestErrorReportsTab_Component_For_26_Template", "_forTrack0", "\u0275\u0275property", "\u0275\u0275classProp", "tmp_19_0", "\u0275\u0275repeater", "CommonModule", "S_ContentState_Component", "encapsulation", "\u0275\u0275text", "\u0275\u0275elementStart", "\u0275\u0275listener", "review_r4", "\u0275\u0275restoreView", "_r3", "$implicit", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleToggleReview", "reviewId", "\u0275\u0275elementEnd", "handleRunSingle", "\u0275\u0275advance", "\u0275\u0275property", "selectedReviewIds_$", "has", "\u0275\u0275textInterpolate", "name", "description", "isRunning", "_r1", "handleToggleAll", "\u0275\u0275repeaterCreate", "PM_ReviewsTab_Component_Conditional_12_For_6_Template", "_forTrack0", "size", "reviewsMeta", "length", "\u0275\u0275textInterpolate1", "\u0275\u0275repeater", "\u0275\u0275element", "runError", "clipboardText_$", "PM_ReviewsTab_Component", "reviewResult", "isMetaLoading", "metaError", "runReviews", "EventEmitter", "refreshMeta", "signal", "Set", "hasSelection_$", "computed", "result", "lines", "executedAt", "targetPath", "totalIssueCnt", "failedReviewCnt", "results", "r", "status", "isPassed", "issueCnt", "push", "reviewName", "issue", "issues", "loc", "line", "filePath", "sourceLines", "maxNum", "lineNumber", "pad", "String", "sl", "prefix", "numStr", "padStart", "content", "message", "join", "update", "set", "next", "delete", "add", "allIds", "map", "handleRunSelected", "ids", "Array", "from", "emit", "undefined", "handleRunAll", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "PM_ReviewsTab_Component_Conditional_6_Template", "PM_ReviewsTab_Component_Conditional_7_Template", "PM_ReviewsTab_Component_Conditional_9_Template", "PM_ReviewsTab_Component_Conditional_10_Template", "PM_ReviewsTab_Component_Conditional_12_Template", "PM_ReviewsTab_Component_Conditional_13_Template", "PM_ReviewsTab_Component_Conditional_14_Template", "\u0275\u0275conditional", "CommonModule", "S_ContentState_Component", "S_CopyButton_Component", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleOpenUserInputWizardModal", "\u0275\u0275text", "\u0275\u0275elementEnd", "handleOpenUserInputDirectCreateModal", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "fileContent", "metadata", "fileCount", "lineCount", "entries", "length", "\u0275\u0275textInterpolate", "error", "\u0275\u0275classProp", "row_r4", "entry", "priority", "source", "area", "phase", "details", "\u0275\u0275textInterpolate2", "kv_r5", "key", "value", "\u0275\u0275repeaterCreate", "PM_UserInputTab_Component_For_18_Conditional_26_For_2_Template", "_forTrack1", "\u0275\u0275repeater", "\u0275\u0275pipeBind1", "extraFields", "rawUserInput", "_r3", "$implicit", "handleOpenRawUserInput", "\u0275\u0275element", "\u0275\u0275template", "PM_UserInputTab_Component_For_18_Conditional_20_Template", "PM_UserInputTab_Component_For_18_Conditional_21_Template", "PM_UserInputTab_Component_For_18_Conditional_22_Template", "PM_UserInputTab_Component_For_18_Conditional_23_Template", "PM_UserInputTab_Component_For_18_Conditional_24_Template", "PM_UserInputTab_Component_For_18_Conditional_25_Template", "PM_UserInputTab_Component_For_18_Conditional_26_Template", "PM_UserInputTab_Component_For_18_Conditional_28_Template", "handleOpenEdit", "handleRemove", "handleOpenCcWork", "handleOpenCcReview", "type", "code", "e1", "e2", "e3", "e4", "\u0275\u0275conditional", "isAriLess", "\u0275\u0275property", "workspacePath", "trim", "entryMutationBusy_$", "_r6", "handleCloseUserInputWizardModal", "handleUserInputWizardCompleted", "userInputWizardModalOpen_$", "userInputWizardSkipSuggest_$", "projectId", "PM_UserInputTab_Component", "isLoading", "refresh", "EventEmitter", "pm_DS", "inject", "ProjectManagement_DataService", "globalError_CS", "CCAP_GlobalError_ControlService", "displayRows_$", "signal", "rawModalOpen_$", "rawModalTitle_$", "rawModalBody_$", "ccLaunchOpen_$", "ccLaunchTitle_$", "ccLaunchLabel_$", "ccLaunchBasePrompt_$", "editModalOpen_$", "editModalTitle_$", "editModalInitial_$", "editPriorBlock_", "confirmModalOpen_$", "confirmModalTitle_$", "confirmModalBody_$", "pendingConfirmAction_", "workspacePathForWizard_$", "computed", "ngOnChanges", "changes", "rows", "map", "index", "stableId", "String", "set", "rawLines", "join", "handleCloseRawModal", "PM_CcLaunchPrompt_Util", "buildUserInputWorkPrompt", "buildUserInputReviewPrompt", "handleCcLaunchClosed", "prior", "handleEditModalClosed", "handleEditSaved", "params", "__async", "pid", "mutateControlFileEntryAndRefresh", "PM_ControlFileType_Type", "userInput", "mode", "PM_ControlEntryMutationMode_Type", "update", "priorRawBlock", "newRawBlock", "err", "showError", "executeRemoveUserInputEntry", "remove", "handleConfirmModalDismissed", "handleConfirmModalCancel", "handleConfirmModalConfirm", "action", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275NgOnChangesFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "PM_UserInputTab_Component_Conditional_2_Template", "PM_UserInputTab_Component_Conditional_7_Template", "PM_UserInputTab_Component_Conditional_8_Template", "PM_UserInputTab_Component_Conditional_9_Template", "emit", "PM_UserInputTab_Component_Conditional_14_Template", "PM_UserInputTab_Component_Conditional_15_Template", "PM_UserInputTab_Component_For_18_Template", "_forTrack0", "PM_UserInputTab_Component_Conditional_20_Template", "$event", "undefined", "filePreamble", "exists", "CommonModule", "KeyValuePipe", "S_ContentState_Component", "PM_EntryRawModal_Component", "S_Modal_Component", "PM_UserInputWizard_Component", "PM_CcLaunchWizard_Component", "PM_ControlEntryEditModal_Component", "PM_ItemRowActions_Component", "PM_ControlFilePreambleDisclosure_Component", "encapsulation", "label", "tab", "route", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "project_r3", "description", "\u0275\u0275template", "PM_Detail_Component_Conditional_7_Conditional_10_Conditional_1_Conditional_2_Template", "\u0275\u0275classMap", "gitStatus", "\u0275\u0275textInterpolate1", "gitBranch", "\u0275\u0275conditional", "packageVersion", "gitAheadBehind", "\u0275\u0275pipeBind2", "lastSyncAt", "PM_Detail_Component_Conditional_7_Conditional_10_Conditional_1_Template", "PM_Detail_Component_Conditional_7_Conditional_10_Conditional_2_Template", "PM_Detail_Component_Conditional_7_Conditional_10_Conditional_3_Template", "PM_Detail_Component_Conditional_7_Conditional_10_Conditional_4_Template", "localPath", "sync_r4", "summary", "gitInfo", "autoPullResult", "err_r5", "\u0275\u0275repeaterCreate", "PM_Detail_Component_Conditional_7_Conditional_13_Conditional_11_For_2_Template", "\u0275\u0275repeaterTrackByIdentity", "\u0275\u0275repeater", "errors", "PM_Detail_Component_Conditional_7_Conditional_13_Conditional_9_Template", "PM_Detail_Component_Conditional_7_Conditional_13_Conditional_10_Template", "PM_Detail_Component_Conditional_7_Conditional_13_Conditional_11_Template", "syncStatus", "durationMs", "syncedAt", "autoPulled", "length", "\u0275\u0275declareLet", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleSync", "PM_Detail_Component_Conditional_7_Conditional_7_Template", "PM_Detail_Component_Conditional_7_Conditional_8_Template", "PM_Detail_Component_Conditional_7_Conditional_9_Template", "PM_Detail_Component_Conditional_7_Conditional_10_Template", "PM_Detail_Component_Conditional_7_Conditional_11_Template", "PM_Detail_Component_Conditional_7_Conditional_12_Template", "PM_Detail_Component_Conditional_7_Conditional_13_Template", "\u0275\u0275storeLet", "pm_DS", "activeProject_$", "project_r6", "name", "\u0275\u0275property", "syncLoading_$", "syncError_$", "tmp_9_0", "lastSyncResult_$", "tab_r8", "_r7", "$implicit", "setTab", "id", "\u0275\u0275classProp", "activeTab_$", "p_r10", "uncommittedFiles", "PM_Detail_Component_Conditional_12_Conditional_8_Conditional_16_Template", "branch", "status", "aheadBehind", "script_r12", "_r11", "handleRunScript", "PM_Detail_Component_Conditional_12_Conditional_14_Conditional_21_For_5_Template", "packageInfo", "packageScripts", "PM_Detail_Component_Conditional_12_Conditional_14_Conditional_21_Template", "packageName", "packageDependencyCount", "packageDevDependencyCount", "state_r15", "sizeBytes", "lineCount", "entryCount", "PM_Detail_Component_Conditional_12_Conditional_19_For_2_Conditional_5_Conditional_0_Template", "PM_Detail_Component_Conditional_12_Conditional_19_For_2_Conditional_5_Conditional_1_Template", "PM_Detail_Component_Conditional_12_Conditional_19_For_2_Conditional_5_Conditional_2_Template", "\u0275\u0275element", "undefined", "artifact_r14", "_r13", "PM_Detail_Component_Conditional_12_Conditional_19_For_2_Conditional_5_Template", "PM_Detail_Component_Conditional_12_Conditional_19_For_2_Conditional_6_Template", "PM_Detail_Component_Conditional_12_Conditional_19_For_2_Conditional_7_Template", "artifacts", "key", "\u0275\u0275pureFunction1", "_c25", "state_r16", "exists", "state_r19", "fileCount", "PM_Detail_Component_Conditional_12_Conditional_19_For_7_Conditional_5_Conditional_0_Template", "PM_Detail_Component_Conditional_12_Conditional_19_For_7_Conditional_5_Conditional_1_Template", "PM_Detail_Component_Conditional_12_Conditional_19_For_7_Conditional_5_Conditional_2_Template", "artifact_r18", "_r17", "handleNavigateToAgentRoute", "PM_Detail_Component_Conditional_12_Conditional_19_For_7_Conditional_5_Template", "PM_Detail_Component_Conditional_12_Conditional_19_For_7_Conditional_6_Template", "PM_Detail_Component_Conditional_12_Conditional_19_For_7_Conditional_7_Template", "state_r20", "PM_Detail_Component_Conditional_12_Conditional_19_For_2_Template", "_forTrack1", "PM_Detail_Component_Conditional_12_Conditional_19_For_7_Template", "\u0275\u0275pureFunctionV", "_c10", "\u0275\u0275pureFunction0", "_c11", "_c12", "_c13", "_c14", "_c15", "_c16", "_c17", "_c18", "_c19", "_c20", "\u0275\u0275pureFunction3", "_c24", "_c21", "_c22", "_c23", "lastSyncDurationMs", "lastSyncSummary", "err_r21", "PM_Detail_Component_Conditional_12_Conditional_21_Conditional_17_For_4_Template", "lastSyncErrors", "PM_Detail_Component_Conditional_12_Conditional_21_Conditional_15_Template", "PM_Detail_Component_Conditional_12_Conditional_21_Conditional_16_Template", "PM_Detail_Component_Conditional_12_Conditional_21_Conditional_17_Template", "lastSyncStatus", "_r9", "PM_Detail_Component_Conditional_12_Conditional_8_Template", "PM_Detail_Component_Conditional_12_Conditional_9_Template", "PM_Detail_Component_Conditional_12_Conditional_10_Template", "PM_Detail_Component_Conditional_12_Conditional_14_Template", "PM_Detail_Component_Conditional_12_Conditional_15_Template", "PM_Detail_Component_Conditional_12_Conditional_19_Template", "PM_Detail_Component_Conditional_12_Conditional_20_Template", "PM_Detail_Component_Conditional_12_Conditional_21_Template", "p_r22", "g_r24", "lastFetchedAt", "lastCommitHash", "lastCommitAuthor", "lastCommitDate", "lastCommitMessage", "file_r25", "startsWith", "substring", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_38_For_2_Template", "commit_r26", "hash", "message", "author", "date", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_40_For_5_Template", "_forTrack2", "recentCommits", "error", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_10_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_26_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_27_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_28_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_32_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_33_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_37_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_38_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_39_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_40_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_41_Template", "remoteUrl", "_r23", "handleGitRefresh", "PM_Detail_Component_Conditional_13_Conditional_6_Template", "PM_Detail_Component_Conditional_13_Conditional_7_Template", "PM_Detail_Component_Conditional_13_Conditional_8_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Template", "PM_Detail_Component_Conditional_13_Conditional_10_Template", "PM_Detail_Component_Conditional_13_Conditional_11_Template", "gitStatusLoading_$", "gitStatusError_$", "g_r27", "t_r30", "p_r31", "$event", "_r29", "newRequestType_$", "set", "target", "value", "PM_Detail_Component_Conditional_14_Conditional_9_For_8_Template", "newRequestPriority_$", "PM_Detail_Component_Conditional_14_Conditional_9_For_14_Template", "newRequestCode_$", "newRequestContent_$", "PM_Detail_Component_Conditional_14_Conditional_9_Conditional_23_Template", "handleCreateUserRequest", "PM_Detail_Component_Conditional_14_Conditional_9_Conditional_26_Template", "PM_Detail_Component_Conditional_14_Conditional_9_Conditional_27_Template", "requestTypes", "priorities", "saveError_$", "isSaving_$", "trim", "req_r32", "type", "code", "priority", "__created", "PM_Detail_Component_Conditional_14_Conditional_13_For_2_Conditional_3_Template", "PM_Detail_Component_Conditional_14_Conditional_13_For_2_Conditional_4_Template", "PM_Detail_Component_Conditional_14_Conditional_13_For_2_Conditional_5_Template", "PM_Detail_Component_Conditional_14_Conditional_13_For_2_Conditional_17_Template", "tmp_15_0", "specStatus", "tmp_16_0", "implStatus", "tmp_17_0", "testStatus", "tmp_18_0", "completeStatus", "content", "PM_Detail_Component_Conditional_14_Conditional_13_For_2_Template", "_forTrack3", "userRequests_$", "_r28", "handleFileRefresh", "toggleNewRequestForm", "PM_Detail_Component_Conditional_14_Conditional_7_Template", "PM_Detail_Component_Conditional_14_Conditional_8_Template", "PM_Detail_Component_Conditional_14_Conditional_9_Template", "PM_Detail_Component_Conditional_14_Conditional_10_Template", "PM_Detail_Component_Conditional_14_Conditional_11_Template", "PM_Detail_Component_Conditional_14_Conditional_12_Template", "PM_Detail_Component_Conditional_14_Conditional_13_Template", "tmp_1_0", "fileContents_$", "userInput", "fileContentLoading_$", "fileContentError_$", "projectId", "tmp_5_0", "isNewRequestFormOpen_$", "userRequestsLoading_$", "userRequestsError_$", "_r33", "todo", "_r34", "backlog", "_r35", "bugs", "tmp_2_0", "activeProjectComputedCcapHost_$", "tmp_7_0", "_r36", "changelog", "_r37", "handleClearTestErrorReports", "testErrorReports", "testErrorReportsClearing_$", "_r38", "handleRunReviews", "handleReviewsMetaRefresh", "reviewsMeta_$", "reviewResult_$", "reviewsMetaLoading_$", "reviewsRunning_$", "reviewsMetaError_$", "reviewsRunError_$", "PM_Detail_Component", "inject", "ProjectManagement_DataService", "terminal_DS", "Terminals_DataService", "ActivatedRoute", "router", "Router", "signal", "PM_UserRequestType_Type", "req", "PM_Priority_Type", "medium", "confirmModalOpen_$", "confirmModalTitle_$", "confirmModalBody_$", "pendingConfirmAction_", "Object", "values", "ngOnInit", "snapshot", "params", "loadProject", "loadUserRequests", "isFileContentsLoaded", "isReviewsMetaLoaded", "includes", "loadAllFileContents", "loadReviewsMeta", "clearTestErrorReportsAndRefresh", "refreshGitStatus", "syncProject", "reviewIds", "runProjectReviews", "goBack", "navigate", "routeSegment", "update", "open", "resetRequestForm", "__async", "createUserRequest", "err", "handleArchiveUserRequest", "request", "_id", "updateUserRequest", "scriptName", "project", "startTerminalRest", "path", "runCommand", "action", "command", "handleConfirmModalDismissed", "handleConfirmModalCancel", "handleConfirmModalConfirm", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "PM_Detail_Component_Conditional_6_Template", "PM_Detail_Component_Conditional_7_Template", "PM_Detail_Component_Conditional_8_Template", "PM_Detail_Component_For_11_Template", "_forTrack0", "PM_Detail_Component_Conditional_12_Template", "PM_Detail_Component_Conditional_13_Template", "PM_Detail_Component_Conditional_14_Template", "PM_Detail_Component_Conditional_15_Template", "PM_Detail_Component_Conditional_16_Template", "PM_Detail_Component_Conditional_17_Template", "PM_Detail_Component_Conditional_18_Template", "PM_Detail_Component_Conditional_19_Template", "PM_Detail_Component_Conditional_20_Template", "PM_Detail_Component_Conditional_21_Template", "activeProjectLoading_$", "activeProjectError_$", "_c0", "_c1", "_c2", "_c3", "_c4", "_c5", "_c6", "_c7", "_c8", "_c9", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275declareLet", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleRefresh", "\u0275\u0275template", "PM_GroupDetail_Component_Conditional_7_Conditional_13_Template", "PM_GroupDetail_Component_Conditional_7_Conditional_14_Template", "pm_DS", "groupFiles_$", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "gf_r3", "groupName", "scanPath", "totalFiles", "totalDirectories", "\u0275\u0275property", "groupFilesLoading_$", "\u0275\u0275conditional", "PM_GroupDetail_Component_Conditional_9_Conditional_5_Conditional_2_Template", "PM_GroupDetail_Component_Conditional_9_Conditional_5_Conditional_3_Template", "filterText_$", "file_r5", "sizeBytes", "\u0275\u0275pipeBind2", "PM_GroupDetail_Component_Conditional_9_Conditional_6_For_12_Conditional_2_Template", "PM_GroupDetail_Component_Conditional_9_Conditional_6_For_12_Conditional_12_Template", "PM_GroupDetail_Component_Conditional_9_Conditional_6_For_12_Conditional_13_Template", "PM_GroupDetail_Component_Conditional_9_Conditional_6_For_12_Conditional_16_Template", "PM_GroupDetail_Component_Conditional_9_Conditional_6_For_12_Conditional_20_Template", "\u0275\u0275classProp", "isDirectory", "relativePath", "lastModifiedAt", "\u0275\u0275classMap", "\u0275\u0275textInterpolate", "\u0275\u0275repeaterCreate", "PM_GroupDetail_Component_Conditional_9_Conditional_6_For_12_Template", "_forTrack0", "PM_GroupDetail_Component_Conditional_9_Conditional_6_Conditional_16_Template", "\u0275\u0275repeater", "filteredFiles_$", "length", "isFilesOnly_$", "$event", "_r4", "set", "target", "value", "checked", "PM_GroupDetail_Component_Conditional_9_Conditional_5_Template", "PM_GroupDetail_Component_Conditional_9_Conditional_6_Template", "PM_GroupDetail_Component", "inject", "ProjectManagement_DataService", "route", "ActivatedRoute", "router", "Router", "groupId", "signal", "computed", "response", "files", "filter", "f", "trim", "CCAP_TextSearch_Util", "includesText", "ngOnInit", "snapshot", "params", "loadGroupFiles", "goBack", "navigate", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275element", "PM_GroupDetail_Component_Conditional_6_Template", "PM_GroupDetail_Component_Conditional_7_Template", "PM_GroupDetail_Component_Conditional_8_Template", "PM_GroupDetail_Component_Conditional_9_Template", "groupFilesError_$", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "report_r2", "preview", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "$implicit", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleSelectReport", "relPath", "\u0275\u0275template", "PM_AgentReports_Component_Conditional_16_For_1_For_3_Conditional_6_Template", "\u0275\u0275classProp", "selectedRelPath_$", "\u0275\u0275textInterpolate", "date", "lineCount", "\u0275\u0275conditional", "\u0275\u0275repeaterCreate", "PM_AgentReports_Component_Conditional_16_For_1_For_3_Template", "_forTrack1", "group_r4", "month", "\u0275\u0275repeater", "items", "PM_AgentReports_Component_Conditional_16_For_1_Template", "_forTrack0", "reportsByMonth_$", "\u0275\u0275element", "active_r5", "lastModified", "\u0275\u0275property", "activeReportHtml_$", "\u0275\u0275sanitizeHtml", "\u0275\u0275declareLet", "PM_AgentReports_Component_Conditional_20_Conditional_1_Template", "PM_AgentReports_Component_Conditional_20_Conditional_2_Template", "\u0275\u0275storeLet", "pm_DS", "activeAgentReport_$", "active_r6", "PM_AgentReports_Component", "route", "inject", "ActivatedRoute", "router", "Router", "sanitizer", "DomSanitizer", "ProjectManagement_DataService", "projectId", "signal", "computed", "reports", "agentReports_$", "groups", "Map", "r", "slice", "bucket", "get", "push", "set", "Array", "from", "keys", "sort", "a", "b", "localeCompare", "map", "active", "html", "CCAP_AssistantMarkdownRender_Util", "toSanitizedHtml", "content", "bypassSecurityTrustHtml", "ngOnInit", "snapshot", "params", "loadAgentReports", "clearActiveAgentReport", "loadAgentReport", "handleBackToProject", "navigate", "handleRefresh", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "PM_AgentReports_Component_Conditional_13_Template", "PM_AgentReports_Component_Conditional_14_Template", "PM_AgentReports_Component_Conditional_15_Template", "PM_AgentReports_Component_Conditional_16_Template", "PM_AgentReports_Component_Conditional_18_Template", "PM_AgentReports_Component_Conditional_19_Template", "PM_AgentReports_Component_Conditional_20_Template", "agentReportsLoading_$", "agentReportsError_$", "length", "activeAgentReportLoading_$", "activeAgentReportError_$", "CommonModule", "encapsulation", "projectManagementRoutes", "path", "component", "PM_Shell_Component", "children", "pathMatch", "PM_List_Component", "PM_Detail_Component", "PM_AgentReports_Component", "PM_GroupDetail_Component", "ProjectManagement_Module", "CommonModule", "RouterModule", "forChild", "S_ContentState_Component", "S_Modal_Component", "S_PageHeader_Component", "PM_TodoTab_Component", "PM_BacklogTab_Component", "PM_BugsTab_Component", "PM_ChangelogTab_Component", "PM_TestErrorReportsTab_Component", "PM_ReviewsTab_Component", "PM_UserInputTab_Component", "PM_UserInputWizard_Component", "ProjectSource_Module"]
4
+ "sourcesContent": ["import { Component, computed, EventEmitter, inject, OnInit, Output, signal, Signal } from '@angular/core';\n\nimport { PM_DiscoveredProject_Response } from '../../../../_models/server-index';\nimport { ProjectManagement_DataService } from '../../_services/data-services/project-management.data-service';\nimport { Set_General_DataService } from '../../../config/_modules/settings/_services/data-services/global-settings/set-general.data-service';\n\n/** Wizard lépések. */\ntype PM_DiscoverWizardStep = 'scan' | 'select' | 'confirm' | 'done';\n\n/**\n * Project Discovery Wizard – workspace scan és új projektek felvétele.\n * Három lépés: 1) Scan path megadása, 2) Projektek kiválasztása, 3) Megerősítés + létrehozás.\n */\n@Component({\n selector: 'app-pm-discover-wizard',\n templateUrl: './pm-discover-wizard.component.html',\n})\n/** PM_DiscoverWizard_Component class. */\nexport class PM_DiscoverWizard_Component implements OnInit {\n\n @Output() readonly closed: EventEmitter<void> = new EventEmitter<void>();\n\n readonly pm_DS: ProjectManagement_DataService =\n inject(ProjectManagement_DataService);\n\n private readonly settingsGeneral_DS: Set_General_DataService =\n inject(Set_General_DataService);\n\n /** Aktuális wizard lépés. */\n readonly step_$ = signal<PM_DiscoverWizardStep>('scan');\n\n /** Scan path mező értéke. */\n readonly scanPath_$ = signal<string>('');\n\n /** Kiválasztott (checkbox) felfedezett projektek indexei. */\n readonly selectedIndexes_$ = signal<Set<number>>(new Set<number>());\n\n /** Mentés folyamatban (confirm lépésnél). */\n readonly isSaving_$ = signal<boolean>(false);\n\n /** Mentési hiba. */\n readonly saveError_$ = signal<unknown | null>(null);\n\n /** Létrehozott projektek száma (done lépésnél). */\n readonly createdCount_$ = signal<number>(0);\n\n /** Csak az új (nem regisztrált) felfedezett projektek. */\n readonly newProjects_$: Signal<PM_DiscoveredProject_Response[]> = computed(\n (): PM_DiscoveredProject_Response[] =>\n this.pm_DS.discoveredProjects_$().filter(\n (p: PM_DiscoveredProject_Response): boolean => !p.isAlreadyRegistered,\n ),\n );\n\n /** Már regisztrált projektek (info megjelenítéshez). */\n readonly existingProjects_$: Signal<PM_DiscoveredProject_Response[]> = computed(\n (): PM_DiscoveredProject_Response[] =>\n this.pm_DS.discoveredProjects_$().filter(\n (p: PM_DiscoveredProject_Response): boolean => p.isAlreadyRegistered,\n ),\n );\n\n /** A kiválasztott új projektek listája. */\n readonly selectedProjects_$: Signal<PM_DiscoveredProject_Response[]> = computed(\n (): PM_DiscoveredProject_Response[] => {\n const indexes: Set<number> = this.selectedIndexes_$();\n return this.newProjects_$().filter(\n (_p: PM_DiscoveredProject_Response, i: number): boolean => indexes.has(i),\n );\n },\n );\n\n /** Alapértelmezett workspace path betöltése a rendszer beállításaiból. */\n ngOnInit(): void {\n void this.settingsGeneral_DS.loadDefaultWorkspacePath().then((): void => {\n const path: string = this.settingsGeneral_DS.defaultWorkspacePath_$();\n if (!this.scanPath_$().trim() && path) {\n this.scanPath_$.set(path);\n }\n });\n }\n\n /** Scan indítása a megadott path-szal. */\n async handleScan(): Promise<void> {\n const scanPath: string = this.scanPath_$().trim();\n if (!scanPath) {\n return;\n }\n await this.pm_DS.discoverProjects(scanPath);\n this.selectedIndexes_$.set(new Set<number>());\n // Ha van eredmény, lépünk a select-re; ha nincs, ott maradunk (error/empty mutatja).\n if (this.pm_DS.discoveredProjects_$().length > 0) {\n this.step_$.set('select');\n }\n }\n\n /** Összes új projekt kiválasztása / kijelölés törlése. */\n toggleSelectAll(): void {\n const allNew: PM_DiscoveredProject_Response[] = this.newProjects_$();\n const current: Set<number> = this.selectedIndexes_$();\n if (current.size === allNew.length) {\n this.selectedIndexes_$.set(new Set<number>());\n } else {\n const allIndexes: Set<number> = new Set<number>(\n allNew.map((_p: PM_DiscoveredProject_Response, i: number): number => i),\n );\n this.selectedIndexes_$.set(allIndexes);\n }\n }\n\n /** Egy projekt kiválasztása / kijelölés törlése. */\n toggleProject(index: number): void {\n const current: Set<number> = new Set<number>(this.selectedIndexes_$());\n if (current.has(index)) {\n current.delete(index);\n } else {\n current.add(index);\n }\n this.selectedIndexes_$.set(current);\n }\n\n /** Továbblépés a confirm lépésre. */\n goToConfirm(): void {\n if (this.selectedProjects_$().length > 0) {\n this.step_$.set('confirm');\n }\n }\n\n /** Visszalépés a select lépésre. */\n goBackToSelect(): void {\n this.step_$.set('select');\n }\n\n /** Visszalépés a scan lépésre. */\n goBackToScan(): void {\n this.step_$.set('scan');\n this.pm_DS.clearDiscovery();\n this.selectedIndexes_$.set(new Set<number>());\n }\n\n /** Kiválasztott projektek létrehozása. */\n async handleCreate(): Promise<void> {\n const projects: PM_DiscoveredProject_Response[] = this.selectedProjects_$();\n if (!projects.length) {\n return;\n }\n this.isSaving_$.set(true);\n this.saveError_$.set(null);\n try {\n await this.pm_DS.createDiscoveredProjects(projects);\n this.createdCount_$.set(projects.length);\n this.step_$.set('done');\n } catch (err: unknown) {\n this.saveError_$.set(err);\n } finally {\n this.isSaving_$.set(false);\n }\n }\n\n /** Wizard bezárása. */\n handleClose(): void {\n this.pm_DS.clearDiscovery();\n this.closed.emit();\n }\n}\n", "<div class=\"rounded-lg bg-neutral-800/60 border border-ccapAccent/40 p-5 mb-6\">\n\n <!-- Header -->\n <div class=\"flex items-center justify-between mb-4\">\n <h2 class=\"text-base font-semibold text-neutral-200\">\n @switch (step_$()) {\n @case ('scan') { Discover Projects }\n @case ('select') { Select New Projects }\n @case ('confirm') { Confirm Registration }\n @case ('done') { Discovery Complete }\n }\n </h2>\n\n <!-- Step indicator -->\n <div class=\"flex items-center gap-2 text-xs text-neutral-500\">\n <span [class]=\"step_$() === 'scan' ? 'text-ccapAccent font-semibold' : 'text-neutral-500'\">1. Scan</span>\n <svg class=\"w-3 h-3\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n </svg>\n <span [class]=\"step_$() === 'select' ? 'text-ccapAccent font-semibold' : 'text-neutral-500'\">2. Select</span>\n <svg class=\"w-3 h-3\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n </svg>\n <span [class]=\"step_$() === 'confirm' ? 'text-ccapAccent font-semibold' : 'text-neutral-500'\">3. Confirm</span>\n </div>\n </div>\n\n <!-- ========== STEP 1: SCAN ========== -->\n @if (step_$() === 'scan') {\n <div class=\"flex flex-col gap-3 max-w-2xl\">\n <p class=\"text-sm text-neutral-400\">\n Add meg a workspace mappát, ahol a projektjeid találhatók. A rendszer rekurzívan megkeresi a\n <span class=\"text-neutral-300 font-mono text-xs\">.git</span> könyvtárat tartalmazó mappákat\n (git repository-kat), és kiegészítő adatokat nyer ki a\n <span class=\"text-neutral-300 font-mono text-xs\">package.json</span>-ből ha elérhető.\n </p>\n <div class=\"flex flex-col gap-1\">\n <label class=\"text-xs text-neutral-400 font-medium\">Scan path *</label>\n <input type=\"text\"\n [value]=\"scanPath_$()\"\n (input)=\"scanPath_$.set($any($event.target).value)\"\n placeholder=\"C:/Projects vagy /home/user/projects\"\n class=\"bg-neutral-900 border border-neutral-600 rounded-md px-3 py-2 text-sm text-neutral-100\n placeholder:text-neutral-600 focus:outline-none focus:border-ccapAccent transition-colors\n font-mono\" />\n </div>\n\n @if (pm_DS.discoveryError_$()) {\n <p class=\"text-red-400 text-xs\">Scan hiba - ellenorizd az utvonalat.</p>\n }\n\n @if (!pm_DS.discoveryLoading_$() && pm_DS.discoveredProjects_$().length === 0 && !pm_DS.discoveryError_$() && scanPath_$().trim()) {\n <!-- Ez csak akkor jelenik meg, ha scan utan nincs eredmeny (scan lefutott, nincs projekt). -->\n }\n\n <div class=\"flex gap-3 pt-1\">\n <button type=\"button\"\n (click)=\"handleScan()\"\n [disabled]=\"pm_DS.discoveryLoading_$() || !scanPath_$().trim()\"\n class=\"px-4 py-2 border border-ccapAccent rounded-lg text-ccapAccent text-sm font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (pm_DS.discoveryLoading_$()) { Scanning... } @else { Scan }\n </button>\n <button type=\"button\"\n (click)=\"handleClose()\"\n class=\"px-4 py-2 border border-neutral-600 rounded-lg text-neutral-400 text-sm\n hover:border-neutral-400 hover:text-neutral-200 transition-colors duration-200\">\n Cancel\n </button>\n </div>\n </div>\n }\n\n <!-- ========== STEP 2: SELECT ========== -->\n @if (step_$() === 'select') {\n <div class=\"flex flex-col gap-4 max-w-3xl\">\n\n <!-- Summary -->\n <div class=\"flex gap-4 text-sm\">\n <span class=\"text-green-400\">\n {{ newProjects_$().length }} new\n </span>\n <span class=\"text-neutral-500\">\n {{ existingProjects_$().length }} already registered\n </span>\n </div>\n\n <!-- New projects (selectable) -->\n @if (newProjects_$().length > 0) {\n <div class=\"flex flex-col gap-1\">\n <div class=\"flex items-center gap-2 mb-2\">\n <button type=\"button\"\n (click)=\"toggleSelectAll()\"\n class=\"text-xs text-ccapAccent hover:text-white transition-colors\">\n @if (selectedIndexes_$().size === newProjects_$().length) { Deselect all } @else { Select all }\n </button>\n </div>\n\n <div class=\"flex flex-col gap-2 max-h-80 overflow-y-auto pr-1\">\n @for (project of newProjects_$(); track project.localPath; let i = $index) {\n <button type=\"button\"\n (click)=\"toggleProject(i)\"\n class=\"text-left flex items-start gap-3 rounded-md p-3 border transition-all duration-150\"\n [class]=\"selectedIndexes_$().has(i)\n ? 'bg-ccapAccent/10 border-ccapAccent/60'\n : 'bg-neutral-900/50 border-neutral-700 hover:border-neutral-500'\">\n <!-- Checkbox -->\n <div class=\"shrink-0 mt-0.5 w-4 h-4 rounded border flex items-center justify-center\"\n [class]=\"selectedIndexes_$().has(i)\n ? 'border-ccapAccent bg-ccapAccent'\n : 'border-neutral-500'\">\n @if (selectedIndexes_$().has(i)) {\n <svg class=\"w-3 h-3 text-white\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\">\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n }\n </div>\n\n <!-- Project info -->\n <div class=\"flex flex-col gap-0.5 min-w-0\">\n <span class=\"text-sm font-semibold text-neutral-100\">{{ project.name }}</span>\n <span class=\"text-xs font-mono text-neutral-500 truncate\">{{ project.localPath }}</span>\n @if (project.description) {\n <span class=\"text-xs text-neutral-400 line-clamp-1\">{{ project.description }}</span>\n }\n <div class=\"flex gap-2 mt-0.5\">\n @if (project.hasGitRepo) {\n <span class=\"text-[10px] px-1.5 py-0.5 rounded bg-green-900/40 text-green-300 border border-green-800\">\n git\n </span>\n }\n @if (project.hasPackageJson) {\n <span class=\"text-[10px] px-1.5 py-0.5 rounded bg-blue-900/40 text-blue-300 border border-blue-800\">\n package.json\n </span>\n }\n @if (project.githubRepoUrl) {\n <span class=\"text-[10px] px-1.5 py-0.5 rounded bg-purple-900/40 text-purple-300 border border-purple-800\">\n GitHub\n </span>\n }\n </div>\n </div>\n </button>\n }\n </div>\n </div>\n } @else {\n <p class=\"text-neutral-500 text-sm\">Nem talaltunk uj projektet a megadott utvonalban.</p>\n }\n\n <!-- Already registered (info only) -->\n @if (existingProjects_$().length > 0) {\n <div class=\"border-t border-neutral-700 pt-3 mt-1\">\n <p class=\"text-xs text-neutral-500 mb-2\">Already registered:</p>\n <div class=\"flex flex-col gap-1\">\n @for (project of existingProjects_$(); track project.localPath) {\n <div class=\"flex items-center gap-2 text-xs text-neutral-600 py-1\">\n <span class=\"text-neutral-500\">{{ project.name }}</span>\n <span class=\"font-mono truncate\">{{ project.localPath }}</span>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Actions -->\n <div class=\"flex gap-3 pt-1\">\n <button type=\"button\"\n (click)=\"goToConfirm()\"\n [disabled]=\"selectedProjects_$().length === 0\"\n class=\"px-4 py-2 border border-ccapAccent rounded-lg text-ccapAccent text-sm font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n Next ({{ selectedProjects_$().length }})\n </button>\n <button type=\"button\"\n (click)=\"goBackToScan()\"\n class=\"px-4 py-2 border border-neutral-600 rounded-lg text-neutral-400 text-sm\n hover:border-neutral-400 hover:text-neutral-200 transition-colors duration-200\">\n Back\n </button>\n <button type=\"button\"\n (click)=\"handleClose()\"\n class=\"px-4 py-2 border border-neutral-600 rounded-lg text-neutral-400 text-sm\n hover:border-neutral-400 hover:text-neutral-200 transition-colors duration-200\">\n Cancel\n </button>\n </div>\n </div>\n }\n\n <!-- ========== STEP 3: CONFIRM ========== -->\n @if (step_$() === 'confirm') {\n <div class=\"flex flex-col gap-4 max-w-3xl\">\n <p class=\"text-sm text-neutral-400\">\n {{ selectedProjects_$().length }} projekt lesz regisztralva:\n </p>\n\n <div class=\"flex flex-col gap-2 max-h-60 overflow-y-auto pr-1\">\n @for (project of selectedProjects_$(); track project.localPath) {\n <div class=\"flex flex-col gap-0.5 rounded-md p-3 bg-neutral-900/50 border border-neutral-700\">\n <span class=\"text-sm font-semibold text-neutral-100\">{{ project.name }}</span>\n <span class=\"text-xs font-mono text-neutral-500\">{{ project.localPath }}</span>\n @if (project.description) {\n <span class=\"text-xs text-neutral-400\">{{ project.description }}</span>\n }\n @if (project.githubRepoUrl) {\n <span class=\"text-xs font-mono text-purple-400\">{{ project.githubRepoUrl }}</span>\n }\n </div>\n }\n </div>\n\n @if (saveError_$()) {\n <p class=\"text-red-400 text-xs\">Letrehozasi hiba - kerjuk probald ujra.</p>\n }\n\n <div class=\"flex gap-3 pt-1\">\n <button type=\"button\"\n (click)=\"handleCreate()\"\n [disabled]=\"isSaving_$()\"\n class=\"px-4 py-2 border border-ccapAccent rounded-lg text-ccapAccent text-sm font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (isSaving_$()) { Creating... } @else { Create {{ selectedProjects_$().length }} projects }\n </button>\n <button type=\"button\"\n (click)=\"goBackToSelect()\"\n [disabled]=\"isSaving_$()\"\n class=\"px-4 py-2 border border-neutral-600 rounded-lg text-neutral-400 text-sm\n hover:border-neutral-400 hover:text-neutral-200 transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n Back\n </button>\n </div>\n </div>\n }\n\n <!-- ========== STEP 4: DONE ========== -->\n @if (step_$() === 'done') {\n <div class=\"flex flex-col gap-4 max-w-2xl\">\n <div class=\"flex items-center gap-3\">\n <div class=\"w-8 h-8 rounded-full bg-green-900/40 border border-green-700 flex items-center justify-center\">\n <svg class=\"w-4 h-4 text-green-400\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\">\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <p class=\"text-sm text-green-300\">\n {{ createdCount_$() }} projekt sikeresen letrehozva.\n </p>\n </div>\n <button type=\"button\"\n (click)=\"handleClose()\"\n class=\"self-start px-4 py-2 border border-ccapAccent rounded-lg text-ccapAccent text-sm font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\">\n Close\n </button>\n </div>\n }\n</div>\n", "import { Component } from '@angular/core';\n\n/**\n * Project Management shell komponens – router outlet a PM aloldalakhoz.\n */\n@Component({\n selector: 'app-pm-shell',\n template: '<router-outlet></router-outlet>',\n standalone: false,\n})\n/** PM_Shell_Component class. */\nexport class PM_Shell_Component {}\n", "import { Component, computed, inject, OnInit, signal, Signal } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { PM_, PM_Group_DataModel } from '../../../../_models/server-index';\nimport { ProjectManagement_DataService } from '../../_services/data-services/project-management.data-service';\n\n/**\n * Project Management – projektek listája.\n * Betölti az összes aktív projektet; navigál a projekt részletre.\n */\n@Component({\n selector: 'app-pm-projects-list',\n templateUrl: './pm-list.component.html',\n})\n/** PM_List_Component class. */\nexport class PM_List_Component implements OnInit {\n\n readonly pm_DS: ProjectManagement_DataService =\n inject(ProjectManagement_DataService);\n\n private readonly router: Router = inject(Router);\n\n /** Discover wizard látható-e. */\n readonly isDiscoverWizardOpen_$ = signal<boolean>(false);\n\n /** Új projekt form látható-e. */\n readonly isNewProjectFormOpen_$ = signal<boolean>(false);\n\n /** Új projekt form – név mező értéke. */\n readonly newProjectName_$ = signal<string>('');\n\n /** Új projekt form – GitHub URL mező értéke. */\n readonly newProjectGithubUrl_$ = signal<string>('');\n\n /** Új projekt form – leírás mező értéke. */\n readonly newProjectDescription_$ = signal<string>('');\n\n /** Mentés folyamatban. */\n readonly isSaving_$ = signal<boolean>(false);\n\n /** Mentési hiba (null = nincs). */\n readonly saveError_$ = signal<unknown | null>(null);\n\n /** Törlés megerősítő modal nyitva-e. */\n readonly isDeleteModalOpen_$ = signal<boolean>(false);\n\n /** Törlésre kijelölt projekt. */\n readonly projectToDelete_$ = signal<PM_ | null>(null);\n\n /** Törlés folyamatban. */\n readonly isDeleting_$ = signal<boolean>(false);\n\n /** Törlési hiba. */\n readonly deleteError_$ = signal<unknown | null>(null);\n\n /** Csoport létrehozó form nyitva-e. */\n readonly isGroupFormOpen_$ = signal<boolean>(false);\n\n /** Új csoport – név. */\n readonly newGroupName_$ = signal<string>('');\n\n /** Új csoport – mappa útvonal. */\n readonly newGroupScanPath_$ = signal<string>('');\n\n /** Csoport mentés folyamatban. */\n readonly isGroupSaving_$ = signal<boolean>(false);\n\n /** Csoport mentési hiba. */\n readonly groupSaveError_$ = signal<unknown | null>(null);\n\n /** Cross-instance szekció nyitva-e. */\n readonly isCrossInstanceOpen_$ = signal<boolean>(false);\n\n /** Cross-instance: más instanc projektjei (saját instanc kiszűrve). */\n readonly remoteProjects_$: Signal<PM_[]> = computed((): PM_[] => {\n const currentCcapId: string | null = this.pm_DS.currentCcapId_$();\n const all: PM_[] = this.pm_DS.crossInstanceProjects_$();\n if (!currentCcapId) {\n return all;\n }\n return all.filter((p: PM_): boolean => p.ccapId !== currentCcapId);\n });\n\n /** Klónozás: target mappa. */\n readonly cloneTargetDir_$ = signal<string>('');\n\n /** Klónozásra kijelölt projekt ID. */\n readonly cloneSourceProjectId_$ = signal<string | null>(null);\n\n ngOnInit(): void {\n void this.pm_DS.loadProjects();\n void this.pm_DS.loadGroups();\n }\n\n /** Éppen git refresh-elő projekt ID-ja (null = nincs). */\n readonly gitRefreshingProjectId_$ = signal<string | null>(null);\n\n /** Sync All indítása. */\n handleSyncAll(): void {\n void this.pm_DS.syncAllProjects();\n }\n\n /** Egy projekt git állapotának gyors frissítése (csak git, nem teljes sync). */\n async handleGitRefresh(event: Event, project: PM_): Promise<void> {\n event.stopPropagation();\n if (!project._id) {\n return;\n }\n this.gitRefreshingProjectId_$.set(project._id);\n try {\n await this.pm_DS.refreshGitStatus(project._id);\n } finally {\n this.gitRefreshingProjectId_$.set(null);\n }\n }\n\n /** Discover wizard megnyitása / bezárása. */\n toggleDiscoverWizard(): void {\n this.isDiscoverWizardOpen_$.update((open: boolean): boolean => !open);\n if (this.isDiscoverWizardOpen_$()) {\n this.isNewProjectFormOpen_$.set(false);\n }\n }\n\n /** Discover wizard bezárása (wizard output event). */\n handleDiscoverWizardClosed(): void {\n this.isDiscoverWizardOpen_$.set(false);\n }\n\n /** Új projekt form megnyitása / bezárása. */\n toggleNewProjectForm(): void {\n this.isNewProjectFormOpen_$.update((open: boolean): boolean => !open);\n if (!this.isNewProjectFormOpen_$()) {\n this.resetForm();\n }\n }\n\n /** Projekt részlet megnyitása. */\n openProject(project: PM_): void {\n void this.router.navigate(['/project-management/projects', project._id]);\n }\n\n /** Új projekt mentése. */\n async handleCreateProject(): Promise<void> {\n const name: string = this.newProjectName_$().trim();\n if (!name) {\n return;\n }\n this.isSaving_$.set(true);\n this.saveError_$.set(null);\n try {\n const project: PM_ = await this.pm_DS.createProject({\n name: name,\n githubRepoUrl: this.newProjectGithubUrl_$().trim() || undefined,\n description: this.newProjectDescription_$().trim() || undefined,\n isActive: true,\n });\n this.isNewProjectFormOpen_$.set(false);\n this.resetForm();\n void this.router.navigate(['/project-management/projects', project._id]);\n } catch (err: unknown) {\n this.saveError_$.set(err);\n } finally {\n this.isSaving_$.set(false);\n }\n }\n\n /** Törlés megerősítő modal megnyitása (kártya törlés gomb). */\n handleDeleteClick(event: Event, project: PM_): void {\n event.stopPropagation();\n this.projectToDelete_$.set(project);\n this.deleteError_$.set(null);\n this.isDeleteModalOpen_$.set(true);\n }\n\n /** Törlés megerősítő modal bezárása. */\n handleDeleteModalDismissed(): void {\n this.isDeleteModalOpen_$.set(false);\n this.projectToDelete_$.set(null);\n this.deleteError_$.set(null);\n }\n\n /** Törlés végrehajtása (megerősítés után). */\n async handleDeleteConfirmed(): Promise<void> {\n const project: PM_ | null = this.projectToDelete_$();\n if (!project?._id) {\n return;\n }\n this.isDeleting_$.set(true);\n this.deleteError_$.set(null);\n try {\n await this.pm_DS.archiveProject(project._id);\n this.isDeleteModalOpen_$.set(false);\n this.projectToDelete_$.set(null);\n } catch (err: unknown) {\n this.deleteError_$.set(err);\n } finally {\n this.isDeleting_$.set(false);\n }\n }\n\n // ---------------------------------------------------------------------------\n // Project Groups\n // ---------------------------------------------------------------------------\n\n /** Csoport form toggle. */\n toggleGroupForm(): void {\n this.isGroupFormOpen_$.update((open: boolean): boolean => !open);\n if (!this.isGroupFormOpen_$()) {\n this.resetGroupForm();\n }\n }\n\n /** Csoport létrehozása. */\n async handleCreateGroup(): Promise<void> {\n const name: string = this.newGroupName_$().trim();\n const scanPath: string = this.newGroupScanPath_$().trim();\n if (!name || !scanPath) {\n return;\n }\n this.isGroupSaving_$.set(true);\n this.groupSaveError_$.set(null);\n try {\n await this.pm_DS.createGroup({ name: name, scanPath: scanPath });\n this.isGroupFormOpen_$.set(false);\n this.resetGroupForm();\n } catch (err: unknown) {\n this.groupSaveError_$.set(err);\n } finally {\n this.isGroupSaving_$.set(false);\n }\n }\n\n /** Csoport törlése (archiválás). */\n async handleArchiveGroup(event: Event, group: PM_Group_DataModel): Promise<void> {\n event.stopPropagation();\n if (!group._id) {\n return;\n }\n await this.pm_DS.archiveGroup(group._id);\n }\n\n /** Csoport részlet nézet megnyitása. */\n handleOpenGroupDetail(event: Event, group: PM_Group_DataModel): void {\n event.stopPropagation();\n void this.router.navigate(['/project-management/groups', group._id]);\n }\n\n /** Csoport form visszaállítása. */\n private resetGroupForm(): void {\n this.newGroupName_$.set('');\n this.newGroupScanPath_$.set('');\n this.groupSaveError_$.set(null);\n }\n\n // ---------------------------------------------------------------------------\n // Cross-Instance\n // ---------------------------------------------------------------------------\n\n /** Cross-instance szekció toggle — első megnyitáskor betölti az adatokat. */\n toggleCrossInstance(): void {\n this.isCrossInstanceOpen_$.update((open: boolean): boolean => !open);\n if (this.isCrossInstanceOpen_$() && this.pm_DS.crossInstanceProjects_$().length === 0) {\n void this.pm_DS.loadCrossInstanceProjects();\n }\n }\n\n /** Cross-instance adatok frissítése. */\n handleCrossInstanceRefresh(): void {\n void this.pm_DS.loadCrossInstanceProjects();\n }\n\n /** Klónozás indítása egy remote projektből. */\n handleStartClone(projectId: string): void {\n this.cloneSourceProjectId_$.set(projectId);\n this.cloneTargetDir_$.set('');\n }\n\n /** Klónozás megszakítása. */\n handleCancelClone(): void {\n this.cloneSourceProjectId_$.set(null);\n this.cloneTargetDir_$.set('');\n }\n\n /** Klónozás végrehajtása. */\n async handleConfirmClone(): Promise<void> {\n const sourceId: string | null = this.cloneSourceProjectId_$();\n const targetDir: string = this.cloneTargetDir_$().trim();\n if (!sourceId || !targetDir) {\n return;\n }\n await this.pm_DS.cloneProject({\n sourceProjectId: sourceId,\n targetParentDir: targetDir,\n });\n if (!this.pm_DS.cloneError_$()) {\n this.cloneSourceProjectId_$.set(null);\n this.cloneTargetDir_$.set('');\n }\n }\n\n /** Form mezők visszaállítása. */\n private resetForm(): void {\n this.newProjectName_$.set('');\n this.newProjectGithubUrl_$.set('');\n this.newProjectDescription_$.set('');\n this.saveError_$.set(null);\n }\n}\n", "<div class=\"flex flex-col min-h-full text-neutral-100 p-4 gt-xs:p-6\">\n <app-s-page-header [title]=\"'Project Management'\" [subtitle]=\"'Projektek kezelése és követése'\">\n <div class=\"flex flex-wrap gap-2\">\n <button type=\"button\"\n (click)=\"handleSyncAll()\"\n [disabled]=\"pm_DS.syncLoading_$()\"\n class=\"shrink-0 px-3 py-2.5 gt-xs:px-4 border border-neutral-500 rounded-lg text-neutral-300\n text-xs gt-xs:text-sm font-semibold hover:border-neonCyan hover:text-neonCyan\n transition-colors duration-200 disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (pm_DS.syncLoading_$()) { Syncing... } @else { Sync All }\n </button>\n <button type=\"button\"\n (click)=\"toggleDiscoverWizard()\"\n class=\"shrink-0 px-3 py-2.5 gt-xs:px-4 border border-neutral-500 rounded-lg text-neutral-300\n text-xs gt-xs:text-sm font-semibold hover:border-ccapAccent hover:text-ccapAccent\n hover:shadow-neon-glow-accent transition-colors duration-200\">\n @if (isDiscoverWizardOpen_$()) { Mégse } @else { Discover }\n </button>\n <button type=\"button\"\n (click)=\"toggleNewProjectForm()\"\n class=\"shrink-0 px-3 py-2.5 gt-xs:px-4 border border-ccapAccent rounded-lg text-ccapAccent\n text-xs gt-xs:text-sm font-semibold hover:bg-ccapAccent hover:text-white\n hover:shadow-neon-glow-accent transition-colors duration-200\">\n @if (isNewProjectFormOpen_$()) { Mégse } @else { + Új projekt }\n </button>\n </div>\n </app-s-page-header>\n\n <!-- Discover wizard -->\n @if (isDiscoverWizardOpen_$()) {\n <app-pm-discover-wizard (closed)=\"handleDiscoverWizardClosed()\"></app-pm-discover-wizard>\n }\n\n <!-- Új projekt form -->\n @if (isNewProjectFormOpen_$()) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-ccapAccent/40 p-4 gt-xs:p-5 mb-6\">\n <h2 class=\"text-base font-semibold text-neutral-200 mb-4\">Új projekt</h2>\n <div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-col gap-1\">\n <label class=\"text-xs text-neutral-400 font-medium\">Név *</label>\n <input type=\"text\"\n [value]=\"newProjectName_$()\"\n (input)=\"newProjectName_$.set($any($event.target).value)\"\n placeholder=\"Projekt neve\"\n class=\"bg-neutral-900 border border-neutral-600 rounded-md px-3 py-2.5 text-sm text-neutral-100\n placeholder:text-neutral-600 focus:outline-none focus:border-ccapAccent transition-colors\" />\n </div>\n <div class=\"flex flex-col gap-1\">\n <label class=\"text-xs text-neutral-400 font-medium\">GitHub repo URL</label>\n <input type=\"text\"\n [value]=\"newProjectGithubUrl_$()\"\n (input)=\"newProjectGithubUrl_$.set($any($event.target).value)\"\n placeholder=\"https://github.com/owner/repo\"\n class=\"bg-neutral-900 border border-neutral-600 rounded-md px-3 py-2.5 text-sm text-neutral-100\n placeholder:text-neutral-600 focus:outline-none focus:border-ccapAccent transition-colors\" />\n </div>\n <div class=\"flex flex-col gap-1\">\n <label class=\"text-xs text-neutral-400 font-medium\">Leírás</label>\n <textarea [value]=\"newProjectDescription_$()\"\n (input)=\"newProjectDescription_$.set($any($event.target).value)\"\n placeholder=\"Rövid leírás…\"\n rows=\"2\"\n class=\"bg-neutral-900 border border-neutral-600 rounded-md px-3 py-2.5 text-sm text-neutral-100\n placeholder:text-neutral-600 focus:outline-none focus:border-ccapAccent transition-colors\n resize-none\"></textarea>\n </div>\n @if (saveError_$()) {\n <p class=\"text-red-400 text-xs\">Mentési hiba – kérjük próbálja újra.</p>\n }\n <div class=\"flex gap-3 pt-1\">\n <button type=\"button\"\n (click)=\"handleCreateProject()\"\n [disabled]=\"isSaving_$() || !newProjectName_$().trim()\"\n class=\"px-4 py-2.5 border border-ccapAccent rounded-lg text-ccapAccent text-sm font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (isSaving_$()) { Mentés… } @else { Létrehozás }\n </button>\n <button type=\"button\"\n (click)=\"toggleNewProjectForm()\"\n class=\"px-4 py-2.5 border border-neutral-600 rounded-lg text-neutral-400 text-sm\n hover:border-neutral-400 hover:text-neutral-200 transition-colors duration-200\">\n Mégse\n </button>\n </div>\n </div>\n </div>\n }\n\n <!-- Projekt csoportok szekció -->\n <div class=\"mb-6 gt-xs:mb-8 pb-5 gt-xs:pb-6 border-b border-neutral-700/40\">\n <div class=\"flex items-center justify-between gap-3 mb-4\">\n <h2 class=\"text-xs gt-xs:text-sm font-semibold text-neutral-400 uppercase tracking-wider\">Csoportok</h2>\n <button type=\"button\"\n (click)=\"toggleGroupForm()\"\n class=\"px-3 py-2 gt-xs:py-1.5 border border-neutral-600 rounded text-neutral-400 text-xs font-semibold\n hover:border-ccapAccent hover:text-ccapAccent transition-colors duration-200\">\n @if (isGroupFormOpen_$()) { Mégse } @else { + Új csoport }\n </button>\n </div>\n\n <!-- Csoport létrehozó form -->\n @if (isGroupFormOpen_$()) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-ccapAccent/40 p-4 mb-4\">\n <div class=\"flex flex-col gap-3\">\n <div class=\"flex flex-col gt-xs:flex-row gap-3\">\n <div class=\"flex flex-col gap-1 flex-1\">\n <label class=\"text-xs text-neutral-400 font-medium\">Név *</label>\n <input type=\"text\"\n [value]=\"newGroupName_$()\"\n (input)=\"newGroupName_$.set($any($event.target).value)\"\n placeholder=\"Csoport neve\"\n class=\"bg-neutral-900 border border-neutral-600 rounded-md px-3 py-2.5 text-sm text-neutral-100\n placeholder:text-neutral-600 focus:outline-none focus:border-ccapAccent transition-colors\" />\n </div>\n <div class=\"flex flex-col gap-1 gt-xs:flex-[2]\">\n <label class=\"text-xs text-neutral-400 font-medium\">Mappa útvonal *</label>\n <input type=\"text\"\n [value]=\"newGroupScanPath_$()\"\n (input)=\"newGroupScanPath_$.set($any($event.target).value)\"\n placeholder=\"E:\\workspace\\projects\"\n class=\"bg-neutral-900 border border-neutral-600 rounded-md px-3 py-2.5 text-sm text-neutral-100\n placeholder:text-neutral-600 focus:outline-none focus:border-ccapAccent transition-colors\n font-mono\" />\n </div>\n </div>\n @if (groupSaveError_$()) {\n <p class=\"text-red-400 text-xs\">Csoport mentési hiba – kérjük próbáld újra.</p>\n }\n <div class=\"flex gap-3\">\n <button type=\"button\"\n (click)=\"handleCreateGroup()\"\n [disabled]=\"isGroupSaving_$() || !newGroupName_$().trim() || !newGroupScanPath_$().trim()\"\n class=\"px-4 py-2.5 border border-ccapAccent rounded text-ccapAccent text-xs font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (isGroupSaving_$()) { Mentés… } @else { Létrehozás }\n </button>\n </div>\n </div>\n </div>\n }\n\n <!-- Csoport kártyák -->\n @if (pm_DS.groups_$().length > 0) {\n <div class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3\">\n @for (group of pm_DS.groups_$(); track group._id) {\n <button type=\"button\"\n (click)=\"handleOpenGroupDetail($event, group)\"\n class=\"text-left rounded-lg bg-neutral-800/60 border border-neonDefault p-4\n hover:border-purple-500/60 hover:shadow-[0_0_8px_rgba(168,85,247,0.15)]\n transition-all duration-200 group/card\">\n <div class=\"flex items-start justify-between gap-2 mb-1\">\n <div class=\"flex items-center gap-2 min-w-0\">\n <svg class=\"w-4 h-4 shrink-0 text-purple-400\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"\n d=\"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z\"/>\n </svg>\n <span class=\"font-medium text-neutral-100 group-hover/card:text-purple-300\n transition-colors truncate text-sm\">\n {{ group.name }}\n </span>\n </div>\n <button type=\"button\"\n (click)=\"handleArchiveGroup($event, group)\"\n class=\"shrink-0 p-2 -m-1 rounded text-neutral-600 hover:text-red-400 transition-colors\"\n title=\"Csoport törlése\">\n <svg class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\"/>\n </svg>\n </button>\n </div>\n <p class=\"text-neutral-500 text-xs font-mono truncate\">{{ group.scanPath }}</p>\n </button>\n }\n </div>\n } @else if (!isGroupFormOpen_$()) {\n <p class=\"text-neutral-600 text-xs\">Nincs csoport. Hozz létre egyet a projektek mappa alapú csoportosításához.</p>\n }\n </div>\n\n <!-- Projektek szekció fejléc -->\n <h2 class=\"text-xs gt-xs:text-sm font-semibold text-neutral-400 uppercase tracking-wider mb-4\">Projektek</h2>\n\n <app-s-content-state [isLoading]=\"pm_DS.projectsLoading_$()\"\n [error]=\"pm_DS.projectsError_$()\"\n [isEmpty]=\"pm_DS.projects_$().length === 0\"\n [emptyMessage]=\"'Még nincsenek projektek. Hozz létre egyet!'\"\n [loadingMessage]=\"'Betöltés…'\"\n (retry)=\"pm_DS.loadProjects()\">\n <div class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3 gt-xs:gap-4\">\n @for (project of pm_DS.projects_$(); track project._id) {\n <button type=\"button\"\n (click)=\"openProject(project)\"\n class=\"text-left rounded-lg bg-neutral-800/60 border border-neonDefault p-4 gt-xs:p-5\n hover:border-ccapAccent hover:shadow-neon-glow-accent transition-all duration-200 group\">\n <div class=\"flex items-start justify-between gap-3 mb-2\">\n <h3 class=\"text-sm gt-xs:text-base font-semibold text-neutral-100 group-hover:text-ccapAccent\n transition-colors duration-200 break-words min-w-0\">\n {{ project.name }}\n </h3>\n @if (project.isActive) {\n <span class=\"shrink-0 px-2 py-0.5 text-xs rounded bg-green-900/40 text-green-300\n border border-neonGreen\">\n aktív\n </span>\n }\n </div>\n @if (project.description) {\n <p class=\"text-neutral-400 text-xs gt-xs:text-sm mb-3 line-clamp-2\">{{ project.description }}</p>\n }\n <!-- Git & version badges -->\n @if (project.gitBranch || project.packageVersion) {\n <div class=\"flex flex-wrap items-center gap-1.5 gt-xs:gap-2 mb-2\">\n @if (project.gitBranch) {\n <span class=\"px-2 py-1 text-[11px] gt-xs:text-[10px] gt-xs:px-1.5 gt-xs:py-0.5 rounded border\"\n [class]=\"project.gitStatus === 'clean'\n ? 'bg-green-900/30 text-green-300 border-green-800'\n : project.gitStatus === 'dirty'\n ? 'bg-yellow-900/30 text-yellow-300 border-yellow-800'\n : 'bg-neutral-800 text-neutral-400 border-neutral-700'\">\n {{ project.gitBranch }}\n </span>\n }\n @if (project.packageVersion) {\n <span class=\"px-2 py-1 text-[11px] gt-xs:text-[10px] gt-xs:px-1.5 gt-xs:py-0.5\n rounded bg-blue-900/30 text-blue-300 border border-blue-800\">\n v{{ project.packageVersion }}\n </span>\n }\n @if (project.lastSyncStatus) {\n <span class=\"px-2 py-1 text-[11px] gt-xs:text-[10px] gt-xs:px-1.5 gt-xs:py-0.5 rounded border\"\n [class]=\"project.lastSyncStatus === 'success'\n ? 'bg-green-900/20 text-green-400 border-green-800/50'\n : project.lastSyncStatus === 'partial'\n ? 'bg-yellow-900/20 text-yellow-400 border-yellow-800/50'\n : 'bg-red-900/20 text-red-400 border-red-800/50'\">\n synced\n </span>\n }\n <!-- Git refresh gomb -->\n <button type=\"button\"\n (click)=\"handleGitRefresh($event, project)\"\n [disabled]=\"gitRefreshingProjectId_$() === project._id\"\n class=\"px-2 py-1 text-[11px] gt-xs:text-[10px] gt-xs:px-1.5 gt-xs:py-0.5\n rounded border border-neutral-700 text-neutral-500\n hover:border-neonCyan hover:text-neonCyan transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\"\n title=\"Git status frissítés\">\n @if (gitRefreshingProjectId_$() === project._id) { ... } @else { git }\n </button>\n </div>\n }\n @if (project.githubRepoUrl) {\n <p class=\"text-neutral-500 text-xs font-mono truncate\">{{ project.githubRepoUrl }}</p>\n }\n <!-- Törlés gomb -->\n <div class=\"flex justify-end mt-3 pt-2 border-t border-neutral-700/40\">\n <button type=\"button\"\n (click)=\"handleDeleteClick($event, project)\"\n class=\"px-3 py-1.5 text-xs rounded border border-transparent text-neutral-500\n hover:border-red-500/50 hover:text-red-400 transition-colors duration-200\"\n title=\"Projekt törlése\">\n Törlés\n </button>\n </div>\n </button>\n }\n </div>\n </app-s-content-state>\n\n <!-- Cross-Instance szekció -->\n <div class=\"mt-6 gt-xs:mt-8 border-t border-neutral-700/40 pt-5 gt-xs:pt-6\">\n <div class=\"flex items-center justify-between gap-3 mb-3\">\n <button type=\"button\"\n (click)=\"toggleCrossInstance()\"\n class=\"flex items-center gap-2 text-xs gt-xs:text-sm font-semibold text-neutral-400\n uppercase tracking-wider hover:text-neutral-200 transition-colors py-1\">\n <span class=\"transition-transform duration-200\"\n [class.rotate-90]=\"isCrossInstanceOpen_$()\">\n <svg class=\"w-3.5 h-3.5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\"/>\n </svg>\n </span>\n Más instancok projektjei\n </button>\n @if (isCrossInstanceOpen_$()) {\n <button type=\"button\"\n (click)=\"handleCrossInstanceRefresh()\"\n [disabled]=\"pm_DS.crossInstanceLoading_$()\"\n class=\"px-3 py-1.5 text-xs rounded border border-neutral-600 text-neutral-400\n hover:border-neonCyan hover:text-neonCyan transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (pm_DS.crossInstanceLoading_$()) { Betöltés… } @else { Frissítés }\n </button>\n }\n </div>\n\n @if (isCrossInstanceOpen_$()) {\n @if (pm_DS.crossInstanceLoading_$() && remoteProjects_$().length === 0) {\n <p class=\"text-neutral-400 text-sm py-4\">Betöltés…</p>\n } @else if (pm_DS.crossInstanceError_$()) {\n <p class=\"text-red-400 text-sm py-4\">Nem sikerült betölteni a távoli projekteket.</p>\n } @else if (remoteProjects_$().length === 0) {\n <div class=\"rounded-lg bg-neutral-800/40 border border-neonDefault p-6 text-center\">\n <p class=\"text-neutral-500 text-sm\">Nincs más instancon regisztrált projekt.</p>\n </div>\n } @else {\n <div class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3\">\n @for (rp of remoteProjects_$(); track rp._id) {\n <div class=\"rounded-lg bg-neutral-800/40 border border-neutral-700 p-4 text-sm\">\n <div class=\"flex items-start justify-between gap-2 mb-1\">\n <h4 class=\"font-medium text-neutral-200 break-words min-w-0\">{{ rp.name }}</h4>\n <span class=\"shrink-0 px-1.5 py-0.5 text-[10px] rounded bg-purple-900/30 text-purple-300\n border border-purple-800 font-mono truncate max-w-24\"\n [title]=\"rp.ccapId ?? ''\">\n {{ (rp.ccapId ?? '').substring(0, 8) }}\n </span>\n </div>\n @if (rp.description) {\n <p class=\"text-neutral-500 text-xs mb-2 line-clamp-1\">{{ rp.description }}</p>\n }\n @if (rp.gitRemoteUrl || rp.githubRepoUrl) {\n <p class=\"text-neutral-600 text-[10px] font-mono truncate mb-2\">\n {{ rp.gitRemoteUrl || rp.githubRepoUrl }}\n </p>\n }\n <!-- Klónozás -->\n @if (cloneSourceProjectId_$() === rp._id) {\n <div class=\"flex flex-col gap-2 mt-2 pt-2 border-t border-neutral-700/40\">\n <input type=\"text\"\n [value]=\"cloneTargetDir_$()\"\n (input)=\"cloneTargetDir_$.set($any($event.target).value)\"\n placeholder=\"Cél mappa útvonala\"\n class=\"bg-neutral-900 border border-neutral-600 rounded px-3 py-2 text-xs text-neutral-100\n placeholder:text-neutral-600 focus:outline-none focus:border-neonCyan font-mono\" />\n @if (pm_DS.cloneError_$()) {\n <p class=\"text-red-400 text-xs\">Klónozás sikertelen.</p>\n }\n <div class=\"flex gap-2\">\n <button type=\"button\"\n (click)=\"handleConfirmClone()\"\n [disabled]=\"pm_DS.cloneLoading_$() || !cloneTargetDir_$().trim()\"\n class=\"px-3 py-1.5 text-xs rounded border border-neonCyan text-neonCyan\n hover:bg-neonCyan/10 transition-colors disabled:opacity-40\">\n @if (pm_DS.cloneLoading_$()) { Klónozás… } @else { Klónozás }\n </button>\n <button type=\"button\"\n (click)=\"handleCancelClone()\"\n class=\"px-3 py-1.5 text-xs rounded border border-neutral-600 text-neutral-400\n hover:border-neutral-400 transition-colors\">\n Mégse\n </button>\n </div>\n </div>\n } @else {\n <button type=\"button\"\n (click)=\"handleStartClone(rp._id!)\"\n class=\"mt-2 px-3 py-1.5 text-xs rounded border border-neutral-600 text-neutral-400\n hover:border-neonCyan hover:text-neonCyan transition-colors duration-200\">\n Klónozás ide\n </button>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n\n <!-- Törlés megerősítő modal -->\n <app-s-modal [isOpen]=\"isDeleteModalOpen_$()\"\n [title]=\"'Projekt törlése'\"\n [maxWidth]=\"'sm'\"\n [closeOnBackdropClick]=\"false\"\n (closed)=\"handleDeleteModalDismissed()\">\n @if (projectToDelete_$(); as p) {\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-sm text-neutral-300\">\n Biztosan törölni szeretnéd a <strong class=\"text-neutral-100\">{{ p.name }}</strong> projektet?\n </p>\n <p class=\"text-xs text-neutral-500\">\n A projekt csak az adatbázisból kerül eltávolításra. A fájlok a lemezen érintetlenek maradnak.\n </p>\n @if (deleteError_$()) {\n <p class=\"text-red-400 text-xs\">Törlés sikertelen – kérjük próbáld újra.</p>\n }\n </div>\n }\n <div modal-footer\n class=\"flex items-center justify-end gap-2 px-4 py-3 border-t border-neutral-700 shrink-0 bg-neutral-900/80\">\n <button type=\"button\"\n (click)=\"handleDeleteModalDismissed()\"\n [disabled]=\"isDeleting_$()\"\n class=\"px-4 py-2 text-xs font-semibold rounded border border-neutral-600 text-neutral-300\n hover:bg-neutral-700 transition-colors disabled:opacity-40\">\n Mégse\n </button>\n <button type=\"button\"\n (click)=\"handleDeleteConfirmed()\"\n [disabled]=\"isDeleting_$()\"\n class=\"px-4 py-2 text-xs font-semibold rounded border border-red-500/60 text-red-400\n hover:bg-red-500/10 transition-colors disabled:opacity-40\">\n @if (isDeleting_$()) { Törlés… } @else { Törlés }\n </button>\n </div>\n </app-s-modal>\n</div>\n", "import { Component, computed, inject, input, output, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { Router } from '@angular/router';\n\nimport { ClaudeCode_DataService } from '../../../external-sessions/_modules/claude-code/_services/claude-code.data-service';\nimport { ExS_InstanceContext_DataService } from '../../../external-sessions/_services/exs-instance-context.data-service';\nimport { CCAP_GlobalError_ControlService } from '../../../../_services/control-services/ccap-global-error.control-service';\nimport { S_Modal_Component } from '../../../shared/_components/s-modal/s-modal.component';\n\n/**\n * CC Session indító wizard: base prompt előnézet, opcionális user kiegészítés, majd `createSession`.\n * REQ-PM-IA-004: prompt transzparencia indulás előtt.\n */\n@Component({\n selector: 'app-pm-cc-launch-wizard',\n standalone: true,\n imports: [CommonModule, FormsModule, S_Modal_Component],\n templateUrl: './pm-cc-launch-wizard.component.html',\n})\n/** PM_CcLaunchWizard_Component class. */\nexport class PM_CcLaunchWizard_Component {\n\n /** Modal nyitva. */\n readonly isOpen = input<boolean>(false);\n\n /** Modal fejléc. */\n readonly modalTitle = input<string>('CC Session');\n\n /** `createSession.label` — rövid azonosító. */\n readonly sessionLabel = input<string>('PM');\n\n /** Workspace path (kötelező az indításhoz). */\n readonly workspacePath = input<string>('');\n\n /** Sablon prompt (read-only rész). */\n readonly basePrompt = input<string>('');\n\n readonly closed = output<void>();\n\n private readonly ccSession_DS: ClaudeCode_DataService =\n inject(ClaudeCode_DataService);\n\n private readonly router: Router = inject(Router);\n\n /**\n * Cycle 785 (REQ-INST-SES-URL-001): a navigation-hez használt aktív instance\n * kontextus (URL `/cc-session/:ccapId/:sessionId`).\n */\n private readonly peiContext_DS: ExS_InstanceContext_DataService =\n inject(ExS_InstanceContext_DataService);\n\n private readonly globalError_CS: CCAP_GlobalError_ControlService =\n inject(CCAP_GlobalError_ControlService);\n\n /** User által hozzáfűzött utasítás. */\n readonly extraInstruction_$ = signal<string>('');\n\n /** Összefűzött prompt előnézet. */\n readonly fullPromptPreview_$ = computed((): string => {\n const base: string = this.basePrompt().trimEnd();\n const extra: string = this.extraInstruction_$().trim();\n if (!extra.length) {\n return base;\n }\n if (!base.length) {\n return extra;\n }\n return `${base}\\n\\n---\\nUser additional instructions:\\n${extra}`;\n });\n\n readonly isStarting_$ = signal<boolean>(false);\n\n /**\n * Modal bezárás.\n */\n handleClose(): void {\n this.extraInstruction_$.set('');\n this.closed.emit();\n }\n\n /**\n * Extra instruction változás.\n */\n handleExtraChange(value: string): void {\n this.extraInstruction_$.set(value);\n }\n\n /**\n * CC Session létrehozása és navigáció.\n */\n async handleStartSession(): Promise<void> {\n const ws: string = this.workspacePath().trim();\n const promptText: string = this.fullPromptPreview_$().trim();\n if (!ws.length || !promptText.length || this.isStarting_$()) {\n return;\n }\n this.isStarting_$.set(true);\n try {\n const sessionId: string = await this.ccSession_DS.createSession({\n workspacePath: ws,\n label: this.sessionLabel().trim() || 'PM',\n initialPrompt: promptText,\n });\n if (sessionId.length > 0) {\n this.extraInstruction_$.set('');\n this.closed.emit();\n // Cycle 785 (REQ-INST-SES-URL-001): instance kontextus a route-ban.\n const ccapId: string = this.peiContext_DS.activeCcapId_$();\n const target: string[] = ccapId\n ? ['/cc-session', ccapId, sessionId]\n : ['/cc-session', sessionId];\n await this.router.navigate(target);\n }\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-cc-launch-wizard');\n } finally {\n this.isStarting_$.set(false);\n }\n }\n}\n", "<app-s-modal [isOpen]=\"isOpen()\"\n [title]=\"modalTitle()\"\n maxWidth=\"3xl\"\n headerBorderClass=\"border-neonCyan/30\"\n (closed)=\"handleClose()\">\n <div class=\"flex flex-col gap-4\">\n <p class=\"text-xs text-neutral-500\">\n Full text below is sent as CC Session <code class=\"text-neutral-400\">initialPrompt</code>.\n Add optional instructions at the bottom; they are appended after a separator.\n </p>\n\n @if (!workspacePath().trim().length) {\n <div class=\"rounded border border-amber-800/50 bg-amber-950/30 px-3 py-2 text-xs text-amber-200\">\n Project workspace path is missing — configure local path on the project before starting a CC Session.\n </div>\n }\n\n <div>\n <div class=\"text-xs font-semibold text-neutral-400 mb-1\">Prompt preview</div>\n <pre class=\"text-xs text-neutral-200 bg-neutral-950/80 border border-neutral-700 rounded p-3 max-h-[40vh] overflow-auto\n whitespace-pre-wrap font-mono\">{{ fullPromptPreview_$() }}</pre>\n </div>\n\n <div>\n <label class=\"text-xs text-neutral-400 block mb-1\">Additional instructions (optional)</label>\n <textarea [ngModel]=\"extraInstruction_$()\"\n (ngModelChange)=\"handleExtraChange($event)\"\n rows=\"4\"\n class=\"w-full bg-neutral-900 border border-neutral-600 rounded px-3 py-2 text-sm text-neutral-100 resize-y\">\n </textarea>\n </div>\n\n <div class=\"flex justify-end gap-2\">\n <button type=\"button\"\n (click)=\"handleClose()\"\n class=\"px-3 py-2 border border-neutral-600 rounded text-neutral-300 text-sm hover:border-neutral-400\">\n Cancel\n </button>\n <button type=\"button\"\n (click)=\"handleStartSession()\"\n [disabled]=\"!workspacePath().trim().length || !fullPromptPreview_$().trim() || isStarting_$()\"\n class=\"px-4 py-2 border border-ccapAccent rounded text-ccapAccent text-sm font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors disabled:opacity-40\">\n @if (isStarting_$()) { Starting… } @else { Start CC Session }\n </button>\n </div>\n </div>\n</app-s-modal>\n", "import { Component, computed, input, output, signal } from '@angular/core';\n\nimport { DyFM_Log } from '@futdevpro/fsm-dynamo';\nimport { CommonModule } from '@angular/common';\n\nimport { S_Modal_Component } from '../../../shared/_components/s-modal/s-modal.component';\n\n/**\n * Project Management: egy kontroll-fájl entry `rawLines` szövegének megjelenítése modal-ban (read-only).\n * A parent állítja be a title-t és a join-olt nyers szöveget; Copy a vágólapra (client error path-on nem dobunk).\n */\n@Component({\n selector: 'app-pm-entry-raw-modal',\n standalone: true,\n imports: [CommonModule, S_Modal_Component],\n templateUrl: './pm-entry-raw-modal.component.html',\n})\n/** PM_EntryRawModal_Component class. */\nexport class PM_EntryRawModal_Component {\n /** Modal látható-e. */\n readonly isOpen = input<boolean>(false);\n\n /** Fejléc cím (pl. entry code + kontextus). */\n readonly title = input<string>('');\n\n /** Nyers szöveg (`rawLines.join('\\n')`). */\n readonly rawText = input<string>('');\n\n /** Bezárás (backdrop / X / Escape). */\n readonly closed = output<void>();\n\n /** Van-e másolható / megjelenítendő body (nem üres trim után). */\n readonly hasBody_$ = computed((): boolean => this.rawText().trim().length > 0);\n\n /** Copy feedback rövid jelzéshez. */\n readonly isCopied_$ = signal<boolean>(false);\n\n /**\n * Modal bezárása: feedback reset + esemény a parent felé.\n */\n handleModalClosed(): void {\n this.isCopied_$.set(false);\n this.closed.emit();\n }\n\n /**\n * Nyers szöveg vágólapra másolása.\n */\n handleCopy(): void {\n const text: string = this.rawText();\n if (!text.trim()) {\n return;\n }\n navigator.clipboard.writeText(text).then((): void => {\n this.isCopied_$.set(true);\n setTimeout((): void => {\n this.isCopied_$.set(false);\n }, 2000);\n }).catch((err: unknown): void => { DyFM_Log.error('[CCAP] pm-entry-raw-modal clipboard-copy', err); });\n }\n}\n", "<app-s-modal\n [isOpen]=\"isOpen()\"\n [title]=\"title()\"\n maxWidth=\"4xl\"\n headerBorderClass=\"border-neonDefault\"\n (closed)=\"handleModalClosed()\">\n @if (hasBody_$()) {\n <div class=\"flex justify-end mb-2\">\n <button\n type=\"button\"\n class=\"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md text-[11px] transition-colors cursor-pointer\"\n [class]=\"isCopied_$()\n ? 'bg-green-500/15 border border-green-500/30 text-green-300'\n : 'bg-neutral-800 border border-neutral-700 text-neutral-400 hover:text-neutral-200 hover:border-neutral-600'\"\n (click)=\"handleCopy()\">\n @if (isCopied_$()) {\n <svg class=\"w-3.5 h-3.5\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M3 8.5l3 3 7-7\"/>\n </svg>\n <span>Copied!</span>\n } @else {\n <svg class=\"w-3.5 h-3.5\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <rect x=\"5\" y=\"5\" width=\"9\" height=\"9\" rx=\"1.5\"/>\n <path d=\"M3 11V3a1.5 1.5 0 0 1 1.5-1.5H11\"/>\n </svg>\n <span>Copy text</span>\n }\n </button>\n </div>\n <pre\n class=\"text-xs font-mono leading-relaxed whitespace-pre-wrap break-words max-h-[60vh] overflow-y-auto p-1\n text-neutral-300\">{{ rawText() }}</pre>\n } @else {\n <p class=\"text-neutral-500 text-xs\">(no raw lines)</p>\n }\n</app-s-modal>\n", "import { Component, effect, input, output, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { S_Modal_Component } from '../../../../shared/_components/s-modal/s-modal.component';\n\n/**\n * Kontroll entry szerkesztése: nyers blokk textarea — Save → `saved` output.\n */\n@Component({\n selector: 'app-pm-control-entry-edit-modal',\n standalone: true,\n imports: [CommonModule, FormsModule, S_Modal_Component],\n templateUrl: './pm-control-entry-edit-modal.component.html',\n})\n/** PM_ControlEntryEditModal_Component class. */\nexport class PM_ControlEntryEditModal_Component {\n\n readonly isOpen = input<boolean>(false);\n\n readonly title = input<string>('Edit entry');\n\n readonly initialText = input<string>('');\n\n readonly closed = output<void>();\n\n /** Mentett teljes blokk szöveg. */\n readonly saved = output<{ newRawBlock: string }>();\n\n readonly draft_$ = signal<string>('');\n\n constructor() {\n effect((): void => {\n if (this.isOpen()) {\n this.draft_$.set(this.initialText());\n }\n });\n }\n\n /**\n * Modal bezárás mentés nélkül.\n */\n handleClose(): void {\n this.closed.emit();\n }\n\n /**\n * Mentés és bezárás.\n */\n handleSave(): void {\n const text: string = this.draft_$().trimEnd();\n if (!text.length) {\n return;\n }\n this.saved.emit({ newRawBlock: text });\n this.closed.emit();\n }\n\n /**\n * Textarea változás.\n */\n handleDraftChange(value: string): void {\n this.draft_$.set(value);\n }\n}\n", "<app-s-modal [isOpen]=\"isOpen()\"\n [title]=\"title()\"\n maxWidth=\"3xl\"\n headerBorderClass=\"border-ccapAccent/30\"\n (closed)=\"handleClose()\">\n <div class=\"flex flex-col gap-3\">\n <p class=\"text-xs text-neutral-500\">\n Edit the raw entry block. Save writes the file via server entry-mutation (ensure format stays valid).\n </p>\n <textarea [ngModel]=\"draft_$()\"\n (ngModelChange)=\"handleDraftChange($event)\"\n rows=\"16\"\n class=\"w-full bg-neutral-900 border border-neutral-600 rounded px-3 py-2 text-sm text-neutral-100\n font-mono whitespace-pre resize-y min-h-[200px]\">\n </textarea>\n <div class=\"flex justify-end gap-2\">\n <button type=\"button\"\n (click)=\"handleClose()\"\n class=\"px-3 py-2 border border-neutral-600 rounded text-neutral-300 text-sm hover:border-neutral-400\">\n Cancel\n </button>\n <button type=\"button\"\n (click)=\"handleSave()\"\n [disabled]=\"!draft_$().trim().length\"\n class=\"px-4 py-2 border border-ccapAccent rounded text-ccapAccent text-sm font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors disabled:opacity-40\">\n Save\n </button>\n </div>\n </div>\n</app-s-modal>\n", "import { Component, input, output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n/**\n * Közös PM lista sor műveletek: Edit, Remove, CC Session (work / fix / review).\n * A parent adja a láthatóságot és a disabled állapotot; nincs üzleti logika.\n */\n@Component({\n selector: 'app-pm-item-row-actions',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './pm-item-row-actions.component.html',\n})\n/** PM_ItemRowActions_Component class. */\nexport class PM_ItemRowActions_Component {\n\n readonly showEdit = input<boolean>(true);\n\n readonly showRemove = input<boolean>(true);\n\n /** TODO / BACKLOG „dolgozd meg”. */\n readonly showCcWork = input<boolean>(false);\n\n /** BUG „fix”. */\n readonly showCcFix = input<boolean>(false);\n\n /** Általános „review / still valid”. */\n readonly showCcReview = input<boolean>(false);\n\n readonly disabledEdit = input<boolean>(false);\n\n readonly disabledRemove = input<boolean>(false);\n\n readonly disabledCc = input<boolean>(false);\n\n readonly edit = output<void>();\n\n readonly remove = output<void>();\n\n readonly ccWork = output<void>();\n\n readonly ccFix = output<void>();\n\n readonly ccReview = output<void>();\n\n /**\n * Edit gomb.\n */\n handleEdit(): void {\n this.edit.emit();\n }\n\n /**\n * Remove gomb.\n */\n handleRemove(): void {\n this.remove.emit();\n }\n\n /**\n * CC work.\n */\n handleCcWork(): void {\n this.ccWork.emit();\n }\n\n /**\n * CC fix.\n */\n handleCcFix(): void {\n this.ccFix.emit();\n }\n\n /**\n * CC review.\n */\n handleCcReview(): void {\n this.ccReview.emit();\n }\n}\n", "<div class=\"flex flex-wrap gap-2 mt-3\">\n @if (showEdit()) {\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-600 text-neutral-200\n hover:border-ccapAccent hover:text-ccapAccent disabled:opacity-40\"\n [disabled]=\"disabledEdit()\"\n (click)=\"handleEdit()\">\n Edit\n </button>\n }\n @if (showRemove()) {\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-700 text-neutral-400\n hover:border-red-500/60 hover:text-red-300 disabled:opacity-40\"\n [disabled]=\"disabledRemove()\"\n (click)=\"handleRemove()\">\n Remove\n </button>\n }\n @if (showCcWork()) {\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-600 text-neutral-200\n hover:border-ccapAccent hover:text-ccapAccent disabled:opacity-40\"\n [disabled]=\"disabledCc()\"\n (click)=\"handleCcWork()\">\n CC Session work\n </button>\n }\n @if (showCcFix()) {\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-600 text-neutral-200\n hover:border-ccapAccent hover:text-ccapAccent disabled:opacity-40\"\n [disabled]=\"disabledCc()\"\n (click)=\"handleCcFix()\">\n CC Session fix\n </button>\n }\n @if (showCcReview()) {\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-600 text-neutral-200\n hover:border-neonCyan/50 hover:text-neonCyan disabled:opacity-40\"\n [disabled]=\"disabledCc()\"\n (click)=\"handleCcReview()\">\n CC Session review\n </button>\n }\n</div>\n", "import {\n PM_BacklogEntry_Interface,\n PM_TodoEntry_Interface,\n PM_UserInputEntry_Interface,\n} from '../../../../_models/server-index';\n\n/**\n * CC Session indításhoz PM kontextus alapú initial prompt sablonok (angol, technikai).\n * A teljes prompt = sablon + opcionális user extra (wizardban fűzzük hozzá).\n */\nexport class PM_CcLaunchPrompt_Util {\n\n /**\n * Bug javítás — meglévő `buildCcSessionFixPrompt` logika.\n */\n static buildBugFixPrompt(entry: PM_BacklogEntry_Interface): string {\n const lines: string[] = [\n 'Fix the following Project Management bug in this workspace.',\n `Bug code: ${entry.code}`,\n `Title: ${entry.title}`,\n ];\n if (entry.details?.trim().length) {\n lines.push(`Details: ${entry.details.trim()}`);\n }\n const linked: string | undefined = entry.linkedCcapErrorId?.trim();\n if (linked?.length) {\n lines.push(`Linked central CCAP error table record id: ${linked}`);\n }\n return lines.join('\\n');\n }\n\n /**\n * Bug ellenőrzés — reprodukálhatóság / még létezik-e.\n */\n static buildBugReviewPrompt(entry: PM_BacklogEntry_Interface): string {\n const lines: string[] = [\n 'Review whether the following bug still exists and is reproducible in this workspace.',\n 'Report your findings clearly (still valid / cannot reproduce / needs more info).',\n `Bug code: ${entry.code}`,\n `Title: ${entry.title}`,\n ];\n if (entry.details?.trim().length) {\n lines.push(`Details: ${entry.details.trim()}`);\n }\n const linked: string | undefined = entry.linkedCcapErrorId?.trim();\n if (linked?.length) {\n lines.push(`Linked central CCAP error table record id: ${linked}`);\n }\n return lines.join('\\n');\n }\n\n /**\n * BACKLOG / BUGS listaelem — általános megvalósítási feladat.\n */\n static buildBacklogWorkPrompt(entry: PM_BacklogEntry_Interface): string {\n const lines: string[] = [\n 'Work on the following Project Management backlog item in this workspace.',\n `Type: ${entry.type}`,\n `Code: ${entry.code}`,\n `Title: ${entry.title}`,\n `Status: ${entry.statusRaw}`,\n ];\n if (entry.details?.trim().length) {\n lines.push(`Details: ${entry.details.trim()}`);\n }\n return lines.join('\\n');\n }\n\n /**\n * BACKLOG / BUGS listaelem — állapot / relevancia review.\n */\n static buildBacklogReviewPrompt(entry: PM_BacklogEntry_Interface): string {\n const lines: string[] = [\n 'Review the following backlog item for relevance and current status in this workspace.',\n `Type: ${entry.type}`,\n `Code: ${entry.code}`,\n `Title: ${entry.title}`,\n ];\n if (entry.details?.trim().length) {\n lines.push(`Details: ${entry.details.trim()}`);\n }\n return lines.join('\\n');\n }\n\n /**\n * TODO.md sor — megvalósítás.\n */\n static buildTodoWorkPrompt(entry: PM_TodoEntry_Interface): string {\n const lines: string[] = [\n 'Work on the following TODO item in this workspace.',\n `Code: ${entry.code}`,\n `Title: ${entry.title}`,\n ];\n if (entry.section?.trim().length) {\n lines.push(`Section: ${entry.section.trim()}`);\n }\n if (entry.details?.trim().length) {\n lines.push(`Details: ${entry.details.trim()}`);\n }\n return lines.join('\\n');\n }\n\n /**\n * TODO.md sor — review.\n */\n static buildTodoReviewPrompt(entry: PM_TodoEntry_Interface): string {\n const lines: string[] = [\n 'Review whether the following TODO item is still applicable in this workspace.',\n `Code: ${entry.code}`,\n `Title: ${entry.title}`,\n ];\n if (entry.details?.trim().length) {\n lines.push(`Details: ${entry.details.trim()}`);\n }\n return lines.join('\\n');\n }\n\n /**\n * USER-INPUT (etalon) entry — megvalósítási / spec feladat CC Session-ben.\n */\n static buildUserInputWorkPrompt(entry: PM_UserInputEntry_Interface): string {\n const lines: string[] = [\n 'Work on the following USER-INPUT tracked item in this workspace (respect raw user text immutability in specs).',\n `Type: ${entry.type}`,\n `Code: ${entry.code}`,\n `E1–E4: ${entry.e1} ${entry.e2} ${entry.e3} ${entry.e4}`,\n ];\n if (entry.details?.trim().length) {\n lines.push(`Details: ${entry.details.trim()}`);\n }\n if (entry.rawUserInput?.trim().length) {\n lines.push('', 'User raw input (verbatim context):', entry.rawUserInput.trim());\n }\n return lines.join('\\n');\n }\n\n /**\n * USER-INPUT entry — relevancia / állapot review.\n */\n static buildUserInputReviewPrompt(entry: PM_UserInputEntry_Interface): string {\n const lines: string[] = [\n 'Review whether the following USER-INPUT item is still valid and correctly prioritized in this workspace.',\n `Type: ${entry.type}`,\n `Code: ${entry.code}`,\n ];\n if (entry.details?.trim().length) {\n lines.push(`Details: ${entry.details.trim()}`);\n }\n return lines.join('\\n');\n }\n}\n", "import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n/**\n * PM kontroll fájl `filePreamble` (első `---` előtti leíró blokk) natív disclosure-ben.\n */\n@Component({\n selector: 'app-pm-control-file-preamble-disclosure',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './pm-control-file-preamble-disclosure.component.html',\n})\n/** PM_ControlFilePreambleDisclosure_Component class. */\nexport class PM_ControlFilePreambleDisclosure_Component {\n\n /** Szerverről jövő preamble; üres/whitespace esetén nem renderelünk. */\n @Input() filePreamble: string | null | undefined = null;\n}\n", "@if (filePreamble != null && filePreamble.trim().length > 0) {\n <details class=\"rounded-lg border border-neutral-600/50 bg-neutral-900/35 mb-4\">\n <summary\n class=\"cursor-pointer select-none list-none px-3 py-2 text-xs font-semibold text-neutral-400\n hover:text-neutral-200 transition-colors flex items-center gap-2\n [&::-webkit-details-marker]:hidden\">\n <svg class=\"w-3.5 h-3.5 shrink-0 text-neutral-500 transition-transform [details[open]>&]:rotate-90\"\n viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M4.5 2.5l4 3.5-4 3.5\" stroke=\"currentColor\" stroke-width=\"1.5\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n File description\n </summary>\n <div class=\"px-3 pb-3 pt-1 border-t border-neutral-700/40\">\n <pre class=\"text-xs text-neutral-300 whitespace-pre-wrap font-sans m-0 leading-relaxed\">{{ filePreamble }}</pre>\n </div>\n </details>\n}\n", "import { Component, computed, EventEmitter, inject, Input, Output, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n PM_ControlEntryMutationMode_Type,\n PM_ControlFileType_Type,\n PM_ControlFileContent_Response,\n PM_TodoEntry_Interface,\n} from '../../../../../_models/server-index';\nimport { PM_CcLaunchWizard_Component } from '../../pm-cc-launch-wizard/pm-cc-launch-wizard.component';\nimport { PM_EntryRawModal_Component } from '../../pm-entry-raw-modal/pm-entry-raw-modal.component';\nimport { PM_ControlEntryEditModal_Component } from '../pm-entry-mutation-ui/pm-control-entry-edit-modal.component';\nimport { PM_ItemRowActions_Component } from '../pm-entry-mutation-ui/pm-item-row-actions.component';\nimport { PM_CcLaunchPrompt_Util } from '../../../_collections/utils/pm-cc-launch-prompt.util';\nimport { CCAP_GlobalError_ControlService } from '../../../../../_services/control-services/ccap-global-error.control-service';\nimport { ProjectManagement_DataService } from '../../../_services/data-services/project-management.data-service';\nimport { S_ContentState_Component } from '../../../../shared/_components/s-content-state/s-content-state.component';\nimport { S_Modal_Component } from '../../../../shared/_components/s-modal/s-modal.component';\nimport { PM_ControlFilePreambleDisclosure_Component } from '../pm-control-file-preamble-disclosure/pm-control-file-preamble-disclosure.component';\n\n/**\n * TODO.md tab – parse-olt TODO entry-k megjelenítése, entry mutáció és CC Session.\n */\n@Component({\n selector: 'app-pm-todo-tab',\n standalone: true,\n imports: [\n CommonModule,\n S_ContentState_Component,\n PM_EntryRawModal_Component,\n PM_CcLaunchWizard_Component,\n PM_ControlEntryEditModal_Component,\n PM_ItemRowActions_Component,\n PM_ControlFilePreambleDisclosure_Component,\n S_Modal_Component,\n ],\n templateUrl: './pm-todo-tab.component.html',\n})\n/** PM_TodoTab_Component class. */\nexport class PM_TodoTab_Component {\n\n @Input() fileContent: PM_ControlFileContent_Response<PM_TodoEntry_Interface> | null = null;\n @Input() isLoading: boolean = false;\n @Input() error: unknown | null = null;\n\n @Input() projectId: string = '';\n\n @Input() workspacePath: string | undefined;\n\n @Output() readonly refresh: EventEmitter<void> = new EventEmitter<void>();\n\n private readonly pm_DS: ProjectManagement_DataService = inject(ProjectManagement_DataService);\n private readonly globalError_CS: CCAP_GlobalError_ControlService =\n inject(CCAP_GlobalError_ControlService);\n\n /** Nyers `rawLines` modal. */\n readonly rawModalOpen_$ = signal<boolean>(false);\n readonly rawModalTitle_$ = signal<string>('');\n readonly rawModalBody_$ = signal<string>('');\n\n readonly entryMutationBusy_$ = signal<boolean>(false);\n\n readonly ccLaunchOpen_$ = signal<boolean>(false);\n readonly ccLaunchTitle_$ = signal<string>('');\n readonly ccLaunchLabel_$ = signal<string>('');\n readonly ccLaunchBasePrompt_$ = signal<string>('');\n\n readonly editModalOpen_$ = signal<boolean>(false);\n readonly editModalTitle_$ = signal<string>('');\n readonly editModalInitial_$ = signal<string>('');\n private editPriorBlock_: string = '';\n\n /** `S_Modal` megerősítő — TODO entry törlés. */\n readonly confirmModalOpen_$ = signal<boolean>(false);\n readonly confirmModalTitle_$ = signal<string>('');\n readonly confirmModalBody_$ = signal<string>('');\n private pendingConfirmAction_: (() => Promise<void>) | null = null;\n\n readonly workspacePathForWizard_$ = computed((): string => this.workspacePath?.trim() ?? '');\n\n /**\n * Nyers entry blokk megnyitása modal-ban.\n */\n handleOpenRawTodo(entry: PM_TodoEntry_Interface): void {\n this.rawModalTitle_$.set(`TODO — ${entry.code}`);\n this.rawModalBody_$.set(entry.rawLines.join('\\n'));\n this.rawModalOpen_$.set(true);\n }\n\n /**\n * Nyers tartalom modal bezárása.\n */\n handleCloseRawModal(): void {\n this.rawModalOpen_$.set(false);\n this.rawModalTitle_$.set('');\n this.rawModalBody_$.set('');\n }\n\n /**\n * CC Session work wizard.\n */\n handleOpenCcWork(entry: PM_TodoEntry_Interface): void {\n this.ccLaunchTitle_$.set(`CC Session — TODO ${entry.code}`);\n this.ccLaunchLabel_$.set(`PM TODO ${entry.code}`);\n this.ccLaunchBasePrompt_$.set(PM_CcLaunchPrompt_Util.buildTodoWorkPrompt(entry));\n this.ccLaunchOpen_$.set(true);\n }\n\n /**\n * CC Session review wizard.\n */\n handleOpenCcReview(entry: PM_TodoEntry_Interface): void {\n this.ccLaunchTitle_$.set(`CC Session — Review TODO ${entry.code}`);\n this.ccLaunchLabel_$.set(`PM TODO review ${entry.code}`);\n this.ccLaunchBasePrompt_$.set(PM_CcLaunchPrompt_Util.buildTodoReviewPrompt(entry));\n this.ccLaunchOpen_$.set(true);\n }\n\n /**\n * CC wizard bezárás.\n */\n handleCcLaunchClosed(): void {\n this.ccLaunchOpen_$.set(false);\n this.ccLaunchBasePrompt_$.set('');\n }\n\n /**\n * Edit modal megnyitása.\n */\n handleOpenEdit(entry: PM_TodoEntry_Interface): void {\n if (!this.projectId.trim().length) {\n return;\n }\n const prior: string = entry.rawLines.join('\\n');\n this.editPriorBlock_ = prior;\n this.editModalTitle_$.set(`Edit TODO — ${entry.code}`);\n this.editModalInitial_$.set(prior);\n this.editModalOpen_$.set(true);\n }\n\n /**\n * Edit modal bezárás.\n */\n handleEditModalClosed(): void {\n this.editModalOpen_$.set(false);\n this.editPriorBlock_ = '';\n }\n\n /**\n * Mentés után update mutation.\n */\n async handleEditSaved(params: { newRawBlock: string }): Promise<void> {\n const pid: string = this.projectId.trim();\n const prior: string = this.editPriorBlock_;\n if (!pid.length || !prior.length || this.entryMutationBusy_$()) {\n return;\n }\n this.entryMutationBusy_$.set(true);\n try {\n await this.pm_DS.mutateControlFileEntryAndRefresh(pid, PM_ControlFileType_Type.todo, {\n mode: PM_ControlEntryMutationMode_Type.update,\n priorRawBlock: prior,\n newRawBlock: params.newRawBlock,\n });\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-todo-entry-update');\n } finally {\n this.entryMutationBusy_$.set(false);\n }\n }\n\n /**\n * Entry törlése — `S_Modal` megerősítés után.\n */\n handleRemove(entry: PM_TodoEntry_Interface): void {\n const pid: string = this.projectId.trim();\n if (!pid.length || this.entryMutationBusy_$()) {\n return;\n }\n this.confirmModalTitle_$.set('Remove TODO entry');\n this.confirmModalBody_$.set(`Remove TODO entry ${entry.code} from TODO.md?`);\n this.pendingConfirmAction_ = async (): Promise<void> => {\n await this.executeRemoveTodoEntry(pid, entry);\n };\n this.confirmModalOpen_$.set(true);\n }\n\n /**\n * TODO entry törlés mutation (megerősítés után).\n */\n private async executeRemoveTodoEntry(pid: string, entry: PM_TodoEntry_Interface): Promise<void> {\n const prior: string = entry.rawLines.join('\\n');\n this.entryMutationBusy_$.set(true);\n try {\n await this.pm_DS.mutateControlFileEntryAndRefresh(pid, PM_ControlFileType_Type.todo, {\n mode: PM_ControlEntryMutationMode_Type.remove,\n priorRawBlock: prior,\n });\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-todo-entry-remove');\n } finally {\n this.entryMutationBusy_$.set(false);\n }\n }\n\n /**\n * Megerősítő modal bezárása (backdrop, Escape, X).\n */\n handleConfirmModalDismissed(): void {\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n }\n\n /** Cancel gomb. */\n handleConfirmModalCancel(): void {\n this.handleConfirmModalDismissed();\n }\n\n /** Confirm gomb. */\n async handleConfirmModalConfirm(): Promise<void> {\n const action: (() => Promise<void>) | null = this.pendingConfirmAction_;\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n if (action) {\n await action();\n }\n }\n}\n", "<div class=\"flex flex-col gap-4\">\n <div class=\"flex items-center justify-between gap-3\">\n <div class=\"flex items-center gap-3\">\n <h2 class=\"text-base font-semibold text-neutral-200\">TODO.md</h2>\n @if (fileContent != null && fileContent.metadata != null && fileContent.metadata.lineCount) {\n <span class=\"text-xs text-neutral-500\">{{ fileContent.metadata.lineCount }} sor</span>\n }\n </div>\n <button type=\"button\"\n (click)=\"refresh.emit()\"\n class=\"px-3 py-1.5 border border-neutral-500 rounded text-neutral-300 text-xs font-semibold\n hover:border-ccapAccent hover:text-ccapAccent transition-colors duration-200\">\n Refresh\n </button>\n </div>\n\n <app-pm-control-file-preamble-disclosure [filePreamble]=\"fileContent?.filePreamble\">\n </app-pm-control-file-preamble-disclosure>\n\n <app-s-content-state [isLoading]=\"isLoading\"\n [error]=\"error\"\n [isEmpty]=\"!fileContent || !fileContent.exists\"\n [emptyMessage]=\"'A projekt nem tartalmaz TODO.md fájlt.'\"\n [loadingMessage]=\"'Betöltés…'\"\n (retry)=\"refresh.emit()\">\n\n @if (fileContent && fileContent.error) {\n <div class=\"rounded-lg bg-red-900/20 border border-red-800/50 p-3 mb-3\">\n <p class=\"text-red-400 text-xs\">{{ fileContent.error }}</p>\n </div>\n }\n\n @if (fileContent && fileContent.exists && fileContent.entries.length === 0) {\n <p class=\"text-neutral-500 text-sm\">A TODO.md üres (nincs parse-olható entry).</p>\n }\n\n <div class=\"flex flex-col gap-2\">\n @for (entry of fileContent?.entries ?? []; track entry.code) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <div class=\"flex items-start justify-between gap-2 flex-wrap w-full\">\n <div class=\"flex items-start gap-3 flex-wrap min-w-0 flex-1\">\n <span class=\"text-lg shrink-0\">{{ entry.statusEmoji }}</span>\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-900 text-neonCyan border border-neonCyan/40 font-mono shrink-0\">\n {{ entry.code }}\n </span>\n <span class=\"text-sm font-semibold text-neutral-100 min-w-0 break-words\">{{ entry.title }}</span>\n </div>\n <button type=\"button\"\n class=\"shrink-0 p-1.5 rounded-full border border-neutral-600/60 text-neutral-400\n hover:border-ccapAccent hover:text-ccapAccent transition-colors\"\n title=\"Raw entry\"\n (click)=\"handleOpenRawTodo(entry)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z\" />\n </svg>\n </button>\n </div>\n <div class=\"flex flex-wrap gap-x-4 gap-y-1 mt-2 text-xs text-neutral-400\">\n @if (entry.priority) {\n <span>\n <span class=\"text-neutral-500\">priority:</span>\n <span class=\"font-medium\"\n [class.text-red-400]=\"entry.priority === 'urgent'\"\n [class.text-amber-400]=\"entry.priority === 'high'\"\n [class.text-neutral-300]=\"entry.priority === 'medium' || entry.priority === 'low'\">\n {{ entry.priority }}\n </span>\n </span>\n }\n @if (entry.area) {\n <span><span class=\"text-neutral-500\">area:</span> {{ entry.area }}</span>\n }\n @if (entry.phase) {\n <span><span class=\"text-neutral-500\">phase:</span> {{ entry.phase }}</span>\n }\n @if (entry.source) {\n <span><span class=\"text-neutral-500\">source:</span> {{ entry.source }}</span>\n }\n </div>\n @if (entry.details) {\n <p class=\"text-neutral-400 text-xs mt-1.5\">{{ entry.details }}</p>\n }\n @if (entry.section) {\n <span class=\"text-[10px] text-neutral-600 mt-1 block\">{{ entry.section }}</span>\n }\n <app-pm-item-row-actions\n [showCcFix]=\"false\"\n [showCcWork]=\"true\"\n [showCcReview]=\"true\"\n [disabledCc]=\"!workspacePath?.trim()\"\n [disabledEdit]=\"entryMutationBusy_$()\"\n [disabledRemove]=\"entryMutationBusy_$()\"\n (edit)=\"handleOpenEdit(entry)\"\n (remove)=\"handleRemove(entry)\"\n (ccWork)=\"handleOpenCcWork(entry)\"\n (ccReview)=\"handleOpenCcReview(entry)\">\n </app-pm-item-row-actions>\n </div>\n }\n </div>\n </app-s-content-state>\n\n <app-pm-entry-raw-modal\n [isOpen]=\"rawModalOpen_$()\"\n [title]=\"rawModalTitle_$()\"\n [rawText]=\"rawModalBody_$()\"\n (closed)=\"handleCloseRawModal()\">\n </app-pm-entry-raw-modal>\n\n <app-pm-cc-launch-wizard\n [isOpen]=\"ccLaunchOpen_$()\"\n [modalTitle]=\"ccLaunchTitle_$()\"\n [sessionLabel]=\"ccLaunchLabel_$()\"\n [basePrompt]=\"ccLaunchBasePrompt_$()\"\n [workspacePath]=\"workspacePathForWizard_$()\"\n (closed)=\"handleCcLaunchClosed()\">\n </app-pm-cc-launch-wizard>\n\n <app-pm-control-entry-edit-modal\n [isOpen]=\"editModalOpen_$()\"\n [title]=\"editModalTitle_$()\"\n [initialText]=\"editModalInitial_$()\"\n (closed)=\"handleEditModalClosed()\"\n (saved)=\"handleEditSaved($event)\">\n </app-pm-control-entry-edit-modal>\n\n <app-s-modal [isOpen]=\"confirmModalOpen_$()\"\n [title]=\"confirmModalTitle_$()\"\n [maxWidth]=\"'md'\"\n (closed)=\"handleConfirmModalDismissed()\">\n <p class=\"text-sm text-neutral-300 whitespace-pre-wrap\">{{ confirmModalBody_$() }}</p>\n <div modal-footer\n class=\"flex items-center justify-end gap-2 px-4 py-3 border-t border-neutral-700 shrink-0 bg-neutral-900/80\">\n <button type=\"button\"\n (click)=\"handleConfirmModalCancel()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neutral-600 text-neutral-300\n hover:bg-neutral-700 transition-colors\">\n Cancel\n </button>\n <button type=\"button\"\n (click)=\"handleConfirmModalConfirm()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neonRed/60 text-neonRed/90\n hover:bg-neonRed/10 transition-colors\">\n Confirm\n </button>\n </div>\n </app-s-modal>\n</div>\n", "import { Component, computed, EventEmitter, inject, Input, Output, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n PM_BacklogEntry_Interface,\n PM_ControlEntryMutationMode_Type,\n PM_ControlFileType_Type,\n PM_ControlFileContent_Response,\n} from '../../../../../_models/server-index';\nimport { PM_CcLaunchWizard_Component } from '../../pm-cc-launch-wizard/pm-cc-launch-wizard.component';\nimport { PM_EntryRawModal_Component } from '../../pm-entry-raw-modal/pm-entry-raw-modal.component';\nimport { PM_ControlEntryEditModal_Component } from '../pm-entry-mutation-ui/pm-control-entry-edit-modal.component';\nimport { PM_ItemRowActions_Component } from '../pm-entry-mutation-ui/pm-item-row-actions.component';\nimport { PM_CcLaunchPrompt_Util } from '../../../_collections/utils/pm-cc-launch-prompt.util';\nimport { CCAP_GlobalError_ControlService } from '../../../../../_services/control-services/ccap-global-error.control-service';\nimport { ProjectManagement_DataService } from '../../../_services/data-services/project-management.data-service';\nimport { S_ContentState_Component } from '../../../../shared/_components/s-content-state/s-content-state.component';\nimport { S_Modal_Component } from '../../../../shared/_components/s-modal/s-modal.component';\nimport { PM_ControlFilePreambleDisclosure_Component } from '../pm-control-file-preamble-disclosure/pm-control-file-preamble-disclosure.component';\n\n/**\n * BACKLOG.md tab – parse-olt backlog entry-k, entry mutáció és CC Session.\n */\n@Component({\n selector: 'app-pm-backlog-tab',\n standalone: true,\n imports: [\n CommonModule,\n S_ContentState_Component,\n PM_EntryRawModal_Component,\n PM_CcLaunchWizard_Component,\n PM_ControlEntryEditModal_Component,\n PM_ItemRowActions_Component,\n PM_ControlFilePreambleDisclosure_Component,\n S_Modal_Component,\n ],\n templateUrl: './pm-backlog-tab.component.html',\n})\n/** PM_BacklogTab_Component class. */\nexport class PM_BacklogTab_Component {\n\n @Input() fileContent: PM_ControlFileContent_Response<PM_BacklogEntry_Interface> | null = null;\n @Input() isLoading: boolean = false;\n @Input() error: unknown | null = null;\n\n @Input() projectId: string = '';\n\n @Input() workspacePath: string | undefined;\n\n @Output() readonly refresh: EventEmitter<void> = new EventEmitter<void>();\n\n private readonly pm_DS: ProjectManagement_DataService = inject(ProjectManagement_DataService);\n private readonly globalError_CS: CCAP_GlobalError_ControlService =\n inject(CCAP_GlobalError_ControlService);\n\n readonly rawModalOpen_$ = signal<boolean>(false);\n readonly rawModalTitle_$ = signal<string>('');\n readonly rawModalBody_$ = signal<string>('');\n\n readonly entryMutationBusy_$ = signal<boolean>(false);\n\n readonly ccLaunchOpen_$ = signal<boolean>(false);\n readonly ccLaunchTitle_$ = signal<string>('');\n readonly ccLaunchLabel_$ = signal<string>('');\n readonly ccLaunchBasePrompt_$ = signal<string>('');\n\n readonly editModalOpen_$ = signal<boolean>(false);\n readonly editModalTitle_$ = signal<string>('');\n readonly editModalInitial_$ = signal<string>('');\n private editPriorBlock_: string = '';\n\n /** `S_Modal` megerősítő — backlog entry törlés. */\n readonly confirmModalOpen_$ = signal<boolean>(false);\n readonly confirmModalTitle_$ = signal<string>('');\n readonly confirmModalBody_$ = signal<string>('');\n private pendingConfirmAction_: (() => Promise<void>) | null = null;\n\n readonly workspacePathForWizard_$ = computed((): string => this.workspacePath?.trim() ?? '');\n\n /**\n * Nyers entry blokk megnyitása modal-ban.\n */\n handleOpenRawBacklog(entry: PM_BacklogEntry_Interface): void {\n this.rawModalTitle_$.set(`BACKLOG — ${entry.code}`);\n this.rawModalBody_$.set(entry.rawLines.join('\\n'));\n this.rawModalOpen_$.set(true);\n }\n\n /**\n * Nyers tartalom modal bezárása.\n */\n handleCloseRawModal(): void {\n this.rawModalOpen_$.set(false);\n this.rawModalTitle_$.set('');\n this.rawModalBody_$.set('');\n }\n\n /**\n * CC Session work.\n */\n handleOpenCcWork(entry: PM_BacklogEntry_Interface): void {\n this.ccLaunchTitle_$.set(`CC Session — BACKLOG ${entry.code}`);\n this.ccLaunchLabel_$.set(`PM BL ${entry.code}`);\n this.ccLaunchBasePrompt_$.set(PM_CcLaunchPrompt_Util.buildBacklogWorkPrompt(entry));\n this.ccLaunchOpen_$.set(true);\n }\n\n /**\n * CC Session review.\n */\n handleOpenCcReview(entry: PM_BacklogEntry_Interface): void {\n this.ccLaunchTitle_$.set(`CC Session — Review BACKLOG ${entry.code}`);\n this.ccLaunchLabel_$.set(`PM BL review ${entry.code}`);\n this.ccLaunchBasePrompt_$.set(PM_CcLaunchPrompt_Util.buildBacklogReviewPrompt(entry));\n this.ccLaunchOpen_$.set(true);\n }\n\n /**\n * CC wizard bezárás.\n */\n handleCcLaunchClosed(): void {\n this.ccLaunchOpen_$.set(false);\n this.ccLaunchBasePrompt_$.set('');\n }\n\n /**\n * Edit modal.\n */\n handleOpenEdit(entry: PM_BacklogEntry_Interface): void {\n if (!this.projectId.trim().length) {\n return;\n }\n const prior: string = entry.rawLines.join('\\n');\n this.editPriorBlock_ = prior;\n this.editModalTitle_$.set(`Edit BACKLOG — ${entry.code}`);\n this.editModalInitial_$.set(prior);\n this.editModalOpen_$.set(true);\n }\n\n /**\n * Edit modal bezárás.\n */\n handleEditModalClosed(): void {\n this.editModalOpen_$.set(false);\n this.editPriorBlock_ = '';\n }\n\n /**\n * Update mutation.\n */\n async handleEditSaved(params: { newRawBlock: string }): Promise<void> {\n const pid: string = this.projectId.trim();\n const prior: string = this.editPriorBlock_;\n if (!pid.length || !prior.length || this.entryMutationBusy_$()) {\n return;\n }\n this.entryMutationBusy_$.set(true);\n try {\n await this.pm_DS.mutateControlFileEntryAndRefresh(pid, PM_ControlFileType_Type.backlog, {\n mode: PM_ControlEntryMutationMode_Type.update,\n priorRawBlock: prior,\n newRawBlock: params.newRawBlock,\n });\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-backlog-entry-update');\n } finally {\n this.entryMutationBusy_$.set(false);\n }\n }\n\n /**\n * Remove entry — `S_Modal` megerősítés után.\n */\n handleRemove(entry: PM_BacklogEntry_Interface): void {\n const pid: string = this.projectId.trim();\n if (!pid.length || this.entryMutationBusy_$()) {\n return;\n }\n this.confirmModalTitle_$.set('Remove backlog entry');\n this.confirmModalBody_$.set(`Remove backlog entry ${entry.code} from BACKLOG.md?`);\n this.pendingConfirmAction_ = async (): Promise<void> => {\n await this.executeRemoveBacklogEntry(pid, entry);\n };\n this.confirmModalOpen_$.set(true);\n }\n\n /**\n * Backlog entry törlés mutation (megerősítés után).\n */\n private async executeRemoveBacklogEntry(\n pid: string,\n entry: PM_BacklogEntry_Interface,\n ): Promise<void> {\n const prior: string = entry.rawLines.join('\\n');\n this.entryMutationBusy_$.set(true);\n try {\n await this.pm_DS.mutateControlFileEntryAndRefresh(pid, PM_ControlFileType_Type.backlog, {\n mode: PM_ControlEntryMutationMode_Type.remove,\n priorRawBlock: prior,\n });\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-backlog-entry-remove');\n } finally {\n this.entryMutationBusy_$.set(false);\n }\n }\n\n /**\n * Megerősítő modal bezárása (backdrop, Escape, X).\n */\n handleConfirmModalDismissed(): void {\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n }\n\n /** Cancel gomb. */\n handleConfirmModalCancel(): void {\n this.handleConfirmModalDismissed();\n }\n\n /** Confirm gomb. */\n async handleConfirmModalConfirm(): Promise<void> {\n const action: (() => Promise<void>) | null = this.pendingConfirmAction_;\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n if (action) {\n await action();\n }\n }\n}\n", "<div class=\"flex flex-col gap-4\">\n <div class=\"flex items-center justify-between gap-3\">\n <div class=\"flex items-center gap-3\">\n <h2 class=\"text-base font-semibold text-neutral-200\">BACKLOG.md</h2>\n @if (fileContent != null && fileContent.metadata != null && fileContent.metadata.lineCount) {\n <span class=\"text-xs text-neutral-500\">{{ fileContent.metadata.lineCount }} sor</span>\n }\n @if (fileContent?.entries?.length) {\n <span class=\"text-xs text-neutral-400\">{{ fileContent!.entries.length }} entry</span>\n }\n </div>\n <button type=\"button\"\n (click)=\"refresh.emit()\"\n class=\"px-3 py-1.5 border border-neutral-500 rounded text-neutral-300 text-xs font-semibold\n hover:border-ccapAccent hover:text-ccapAccent transition-colors duration-200\">\n Refresh\n </button>\n </div>\n\n <app-pm-control-file-preamble-disclosure [filePreamble]=\"fileContent?.filePreamble\">\n </app-pm-control-file-preamble-disclosure>\n\n <app-s-content-state [isLoading]=\"isLoading\"\n [error]=\"error\"\n [isEmpty]=\"!fileContent || !fileContent.exists\"\n [emptyMessage]=\"'A projekt nem tartalmaz BACKLOG.md fájlt.'\"\n [loadingMessage]=\"'Betöltés…'\"\n (retry)=\"refresh.emit()\">\n\n @if (fileContent && fileContent.error) {\n <div class=\"rounded-lg bg-red-900/20 border border-red-800/50 p-3 mb-3\">\n <p class=\"text-red-400 text-xs\">{{ fileContent.error }}</p>\n </div>\n }\n\n @if (fileContent && fileContent.exists && fileContent.entries.length === 0) {\n <p class=\"text-neutral-500 text-sm\">A BACKLOG.md üres (nincs parse-olható entry).</p>\n }\n\n <div class=\"flex flex-col gap-2\">\n @for (entry of fileContent?.entries ?? []; track entry.code) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <div class=\"flex items-start justify-between gap-2 flex-wrap w-full\">\n <div class=\"flex items-start gap-2 flex-wrap min-w-0 flex-1\">\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-700 text-neutral-300 border border-neutral-600 font-mono uppercase shrink-0\">\n {{ entry.type }}\n </span>\n <span class=\"text-lg shrink-0\">{{ entry.statusEmoji }}</span>\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-900 text-neonCyan border border-neonCyan/40 font-mono shrink-0\">\n {{ entry.code }}\n </span>\n <span class=\"text-sm font-semibold text-neutral-100 min-w-0 break-words\">{{ entry.title }}</span>\n </div>\n <button type=\"button\"\n class=\"shrink-0 p-1.5 rounded-full border border-neutral-600/60 text-neutral-400\n hover:border-ccapAccent hover:text-ccapAccent transition-colors\"\n title=\"Raw entry\"\n (click)=\"handleOpenRawBacklog(entry)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z\" />\n </svg>\n </button>\n </div>\n <div class=\"flex flex-wrap gap-x-4 gap-y-1 mt-2 text-xs text-neutral-400\">\n @if (entry.statusKey) {\n <span><span class=\"text-neutral-500\">status:</span> {{ entry.statusKey }}</span>\n }\n @if (entry.priority) {\n <span>\n <span class=\"text-neutral-500\">priority:</span>\n <span class=\"font-medium\"\n [class.text-red-400]=\"entry.priority === 'urgent'\"\n [class.text-amber-400]=\"entry.priority === 'high'\"\n [class.text-neutral-300]=\"entry.priority === 'medium' || entry.priority === 'low'\">\n {{ entry.priority }}\n </span>\n </span>\n }\n @if (entry.area) {\n <span><span class=\"text-neutral-500\">area:</span> {{ entry.area }}</span>\n }\n @if (entry.phase) {\n <span><span class=\"text-neutral-500\">phase:</span> {{ entry.phase }}</span>\n }\n </div>\n @if (entry.details) {\n <p class=\"text-neutral-400 text-xs mt-1.5\">{{ entry.details }}</p>\n }\n @if (entry.reqCodes && entry.reqCodes.length > 0) {\n <div class=\"flex flex-wrap gap-1 mt-2\">\n @for (req of entry.reqCodes; track req) {\n <span class=\"px-1.5 py-0.5 text-[10px] rounded bg-purple-900/30 text-purple-300 border border-purple-800 font-mono\">\n {{ req }}\n </span>\n }\n </div>\n }\n <app-pm-item-row-actions\n [showCcFix]=\"false\"\n [showCcWork]=\"true\"\n [showCcReview]=\"true\"\n [disabledCc]=\"!workspacePath?.trim()\"\n [disabledEdit]=\"entryMutationBusy_$()\"\n [disabledRemove]=\"entryMutationBusy_$()\"\n (edit)=\"handleOpenEdit(entry)\"\n (remove)=\"handleRemove(entry)\"\n (ccWork)=\"handleOpenCcWork(entry)\"\n (ccReview)=\"handleOpenCcReview(entry)\">\n </app-pm-item-row-actions>\n </div>\n }\n </div>\n </app-s-content-state>\n\n <app-pm-entry-raw-modal\n [isOpen]=\"rawModalOpen_$()\"\n [title]=\"rawModalTitle_$()\"\n [rawText]=\"rawModalBody_$()\"\n (closed)=\"handleCloseRawModal()\">\n </app-pm-entry-raw-modal>\n\n <app-pm-cc-launch-wizard\n [isOpen]=\"ccLaunchOpen_$()\"\n [modalTitle]=\"ccLaunchTitle_$()\"\n [sessionLabel]=\"ccLaunchLabel_$()\"\n [basePrompt]=\"ccLaunchBasePrompt_$()\"\n [workspacePath]=\"workspacePathForWizard_$()\"\n (closed)=\"handleCcLaunchClosed()\">\n </app-pm-cc-launch-wizard>\n\n <app-pm-control-entry-edit-modal\n [isOpen]=\"editModalOpen_$()\"\n [title]=\"editModalTitle_$()\"\n [initialText]=\"editModalInitial_$()\"\n (closed)=\"handleEditModalClosed()\"\n (saved)=\"handleEditSaved($event)\">\n </app-pm-control-entry-edit-modal>\n\n <app-s-modal [isOpen]=\"confirmModalOpen_$()\"\n [title]=\"confirmModalTitle_$()\"\n [maxWidth]=\"'md'\"\n (closed)=\"handleConfirmModalDismissed()\">\n <p class=\"text-sm text-neutral-300 whitespace-pre-wrap\">{{ confirmModalBody_$() }}</p>\n <div modal-footer\n class=\"flex items-center justify-end gap-2 px-4 py-3 border-t border-neutral-700 shrink-0 bg-neutral-900/80\">\n <button type=\"button\"\n (click)=\"handleConfirmModalCancel()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neutral-600 text-neutral-300\n hover:bg-neutral-700 transition-colors\">\n Cancel\n </button>\n <button type=\"button\"\n (click)=\"handleConfirmModalConfirm()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neonRed/60 text-neonRed/90\n hover:bg-neonRed/10 transition-colors\">\n Confirm\n </button>\n </div>\n </app-s-modal>\n</div>\n", "import {\n Component,\n computed,\n EventEmitter,\n inject,\n input,\n Input,\n InputSignal,\n OnChanges,\n Output,\n signal,\n SimpleChanges,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n PM_AppendBugsFromErrors_Response,\n PM_AppendSingleBugFromErrorOutcome_Type,\n PM_BacklogEntry_Interface,\n PM_BugsPathCandidate_Interface,\n PM_BugsPathResolution_Response,\n PM_ControlEntryMutationMode_Type,\n PM_ControlFileType_Type,\n PM_ControlFileContent_Response,\n PM_ManualBugCreate_Request,\n PM_ManualBugCreate_Response,\n} from '../../../../../_models/server-index';\nimport { PM_EntryRawModal_Component } from '../../pm-entry-raw-modal/pm-entry-raw-modal.component';\nimport { PM_CcLaunchWizard_Component } from '../../pm-cc-launch-wizard/pm-cc-launch-wizard.component';\nimport { PM_ControlEntryEditModal_Component } from '../pm-entry-mutation-ui/pm-control-entry-edit-modal.component';\nimport { PM_ItemRowActions_Component } from '../pm-entry-mutation-ui/pm-item-row-actions.component';\nimport { PM_ManualBugModal_Component } from './pm-manual-bug-modal.component';\nimport { PM_CcLaunchPrompt_Util } from '../../../_collections/utils/pm-cc-launch-prompt.util';\nimport { CCAP_ErrorListItem_Response } from '../../../../../_models/interfaces/feedback-errors/ccap-error-list-item.interface';\nimport { Errors_DataService } from '../../../../system/_modules/errors/_services/errors.data-service';\nimport { CCAP_GlobalError_ControlService } from '../../../../../_services/control-services/ccap-global-error.control-service';\nimport { ProjectManagement_DataService } from '../../../_services/data-services/project-management.data-service';\nimport { S_ContentState_Component } from '../../../../shared/_components/s-content-state/s-content-state.component';\nimport { S_Modal_Component } from '../../../../shared/_components/s-modal/s-modal.component';\nimport { PM_ControlFilePreambleDisclosure_Component } from '../pm-control-file-preamble-disclosure/pm-control-file-preamble-disclosure.component';\n\n/**\n * Egy sor a host error táblában (track key + megjelenítés; template-ben nincs track logika).\n */\ninterface PM_BugsTab_ErrorRow_Interface {\n rowKey: string;\n messageShort: string;\n occurrenceCount: number | undefined;\n source: string | undefined;\n idLabel: string | undefined;\n /** Központi rekord `_id` (üres ha hiányzik). */\n errorId: string;\n /** User / PM manuális megjelölés aktív-e. */\n isPmUserMarked: boolean;\n}\n\n/**\n * BUGS.md tab – parse-olt bug entry-k + CCAP host esetén központi error lista és BUGS.md append.\n */\n@Component({\n selector: 'app-pm-bugs-tab',\n standalone: true,\n imports: [\n CommonModule,\n S_ContentState_Component,\n PM_EntryRawModal_Component,\n PM_CcLaunchWizard_Component,\n PM_ControlEntryEditModal_Component,\n PM_ItemRowActions_Component,\n PM_ManualBugModal_Component,\n PM_ControlFilePreambleDisclosure_Component,\n S_Modal_Component,\n ],\n templateUrl: './pm-bugs-tab.component.html',\n})\n/** PM_BugsTab_Component class. */\nexport class PM_BugsTab_Component implements OnChanges {\n\n readonly bugsFileContent: InputSignal<PM_ControlFileContent_Response<PM_BacklogEntry_Interface> | null> =\n input<PM_ControlFileContent_Response<PM_BacklogEntry_Interface> | null>(null);\n readonly backlogFileContent: InputSignal<PM_ControlFileContent_Response<PM_BacklogEntry_Interface> | null> =\n input<PM_ControlFileContent_Response<PM_BacklogEntry_Interface> | null>(null);\n @Input() isLoading: boolean = false;\n @Input() error: unknown | null = null;\n @Input() projectId: string = '';\n @Input() isCcapRevisionedHost: boolean = false;\n @Input() workspacePath: string | undefined;\n\n @Output() readonly refresh: EventEmitter<void> = new EventEmitter<void>();\n\n readonly errors_DS: Errors_DataService = inject(Errors_DataService);\n private readonly pm_DS: ProjectManagement_DataService = inject(ProjectManagement_DataService);\n private readonly globalError_CS: CCAP_GlobalError_ControlService =\n inject(CCAP_GlobalError_ControlService);\n\n /** append-from-errors POST folyamatban. */\n readonly isAppendFromErrorsBusy_$ = signal<boolean>(false);\n\n /** Utolsó „Create bugs from unlinked errors” összefoglaló (számlálók). */\n readonly lastAppendFromErrorsSummary_$ = signal<string | null>(null);\n\n /** Utolsó soronkénti „bug from error” visszajelzés. */\n readonly lastSingleBugFromErrorSummary_$ = signal<string | null>(null);\n\n /** PM megjelölés POST folyamatban erre az error `_id`-re (üres = nincs). */\n readonly pmUserMarkBusyErrorId_$ = signal<string>('');\n\n /** Egy errorből BUGS append folyamatban erre az `_id`-re (üres = nincs). */\n readonly singleBugFromErrorBusyErrorId_$ = signal<string>('');\n\n /** Entry mutáció (edit/remove) alatt. */\n readonly entryMutationBusy_$ = signal<boolean>(false);\n\n /** Nyers `rawLines` modal. */\n readonly rawModalOpen_$ = signal<boolean>(false);\n readonly rawModalTitle_$ = signal<string>('');\n readonly rawModalBody_$ = signal<string>('');\n\n /** CC Session launch wizard. */\n readonly ccLaunchOpen_$ = signal<boolean>(false);\n readonly ccLaunchTitle_$ = signal<string>('');\n readonly ccLaunchLabel_$ = signal<string>('');\n readonly ccLaunchBasePrompt_$ = signal<string>('');\n\n /** Kézi bug modal. */\n readonly manualBugModalOpen_$ = signal<boolean>(false);\n\n /** Kézi bug POST folyamatban. */\n readonly manualBugBusy_$ = signal<boolean>(false);\n\n /** Utolsó kézi bug összefoglaló (BG kód). */\n readonly lastManualBugSummary_$ = signal<string | null>(null);\n\n /** GET …/files/bugs/resolve eredmény (ambiguitás UI). */\n readonly bugsPathResolve_$ = signal<PM_BugsPathResolution_Response | null>(null);\n\n /** BUGS path resolve fetch folyamatban. */\n readonly bugsPathResolveLoading_$ = signal<boolean>(false);\n\n /** Edit modal: előző blokk + szerkesztett szöveg. */\n readonly editModalOpen_$ = signal<boolean>(false);\n readonly editModalTitle_$ = signal<string>('');\n readonly editModalInitial_$ = signal<string>('');\n private editPriorBlock_: string = '';\n\n /** `S_Modal` megerősítő — entry törlés / linked error törlés. */\n readonly confirmModalOpen_$ = signal<boolean>(false);\n readonly confirmModalTitle_$ = signal<string>('');\n readonly confirmModalBody_$ = signal<string>('');\n private pendingConfirmAction_: (() => Promise<void>) | null = null;\n\n /** Workspace path a wizard input számára (signal). */\n readonly workspacePathForWizard_$ = computed((): string => this.workspacePath?.trim() ?? '');\n\n /** Központi error lista sorai (track + rövid üzenet). */\n readonly errorTableRows_$ = computed((): PM_BugsTab_ErrorRow_Interface[] => {\n const list: CCAP_ErrorListItem_Response[] = this.errors_DS.errors_$();\n return list.map(\n (e: CCAP_ErrorListItem_Response, i: number): PM_BugsTab_ErrorRow_Interface => {\n const rawMsg: string = e.message ?? '';\n const hasId: boolean = typeof e._id === 'string' && e._id.length > 0;\n const rowKey: string = hasId ? `e-${e._id}` : `i-${String(i)}`;\n const errorId: string = hasId ? String(e._id) : '';\n const markedRaw: string | undefined = e.pmUserMarkedAt?.trim();\n const isPmUserMarked: boolean = Boolean(markedRaw?.length);\n return {\n rowKey: rowKey,\n messageShort: PM_BugsTab_Component.truncateText(rawMsg, 100),\n occurrenceCount: e.occurrenceCount,\n source: e.source,\n idLabel: hasId ? e._id : undefined,\n errorId: errorId,\n isPmUserMarked: isPmUserMarked,\n };\n },\n );\n });\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.projectId != null || changes.isCcapRevisionedHost != null) {\n const pid: string = this.projectId?.trim() ?? '';\n if (!pid.length) {\n this.bugsPathResolve_$.set(null);\n } else {\n void this.loadBugsPathResolve(pid);\n }\n if (this.isCcapRevisionedHost && pid.length) {\n void this.errors_DS.loadErrors();\n }\n }\n }\n\n /**\n * BUGS.md jelöltek betöltése — több fájl esetén user választhat preferenciát.\n */\n private async loadBugsPathResolve(projectId: string): Promise<void> {\n this.bugsPathResolveLoading_$.set(true);\n try {\n const resolution = await this.pm_DS.getBugsPathResolve(projectId);\n this.bugsPathResolve_$.set(resolution);\n } catch (err: unknown) {\n this.bugsPathResolve_$.set(null);\n this.globalError_CS.showError(err, 'pm-bugs-path-resolve');\n } finally {\n this.bugsPathResolveLoading_$.set(false);\n }\n }\n\n /**\n * Preferált BUGS.md relatív útvonal mentése a projektbe, majd kontroll fájlok frissítése.\n */\n async handleSelectPreferredBugsPath(cand: PM_BugsPathCandidate_Interface): Promise<void> {\n const pid: string = this.projectId.trim();\n if (!pid.length) {\n return;\n }\n try {\n await this.pm_DS.updateProject(pid, { preferredBugsMdRelativePath: cand.relativeToProject });\n await this.loadBugsPathResolve(pid);\n this.refresh.emit();\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-bugs-prefer-path');\n }\n }\n\n readonly backlogBugs_$ = computed((): PM_BacklogEntry_Interface[] => {\n const content: PM_ControlFileContent_Response<PM_BacklogEntry_Interface> | null =\n this.backlogFileContent();\n if (!content?.entries) {\n return [];\n }\n return content.entries.filter(\n (e: PM_BacklogEntry_Interface): boolean => e.type === 'BUG',\n );\n });\n\n readonly hasContent_$ = computed((): boolean => {\n const bugsEntries: number = this.bugsFileContent()?.entries?.length ?? 0;\n return bugsEntries > 0 || this.backlogBugs_$().length > 0;\n });\n\n readonly isBacklogFallback_$ = computed((): boolean => {\n const bugs: PM_ControlFileContent_Response<PM_BacklogEntry_Interface> | null =\n this.bugsFileContent();\n return (!bugs?.exists || bugs.entries.length === 0)\n && this.backlogBugs_$().length > 0;\n });\n\n /**\n * Nyers entry blokk megnyitása modal-ban (BUGS.md vagy backlog fallback).\n */\n handleOpenRawBug(entry: PM_BacklogEntry_Interface, source: 'bugs' | 'backlog'): void {\n const prefix: string = source === 'backlog' ? 'BUG (from BACKLOG)' : 'BUGS';\n this.rawModalTitle_$.set(`${prefix} — ${entry.code}`);\n this.rawModalBody_$.set(entry.rawLines.join('\\n'));\n this.rawModalOpen_$.set(true);\n }\n\n /**\n * Nyers tartalom modal bezárása.\n */\n handleCloseRawModal(): void {\n this.rawModalOpen_$.set(false);\n this.rawModalTitle_$.set('');\n this.rawModalBody_$.set('');\n }\n\n /**\n * CC Session wizard megnyitása — fix.\n */\n handleOpenCcFixWizard(entry: PM_BacklogEntry_Interface): void {\n this.ccLaunchTitle_$.set(`CC Session — Fix ${entry.code}`);\n this.ccLaunchLabel_$.set(`PM ${entry.code}`);\n this.ccLaunchBasePrompt_$.set(PM_CcLaunchPrompt_Util.buildBugFixPrompt(entry));\n this.ccLaunchOpen_$.set(true);\n }\n\n /**\n * CC Session wizard megnyitása — review.\n */\n handleOpenCcReviewWizard(entry: PM_BacklogEntry_Interface): void {\n this.ccLaunchTitle_$.set(`CC Session — Review ${entry.code}`);\n this.ccLaunchLabel_$.set(`PM review ${entry.code}`);\n this.ccLaunchBasePrompt_$.set(PM_CcLaunchPrompt_Util.buildBugReviewPrompt(entry));\n this.ccLaunchOpen_$.set(true);\n }\n\n /**\n * CC launch wizard bezárás.\n */\n handleCcLaunchClosed(): void {\n this.ccLaunchOpen_$.set(false);\n this.ccLaunchBasePrompt_$.set('');\n }\n\n /**\n * Edit modal megnyitása (BUGS.md entry — közvetlen fájl).\n */\n handleOpenEditBugFromFile(entry: PM_BacklogEntry_Interface): void {\n if (!this.projectId?.length) {\n return;\n }\n const prior: string = entry.rawLines.join('\\n');\n this.editPriorBlock_ = prior;\n this.editModalTitle_$.set(`Edit BUGS — ${entry.code}`);\n this.editModalInitial_$.set(prior);\n this.editModalOpen_$.set(true);\n }\n\n /**\n * Edit modal megnyitása (backlog fallback BUG).\n */\n handleOpenEditBugFromBacklog(entry: PM_BacklogEntry_Interface): void {\n if (!this.projectId?.length) {\n return;\n }\n const prior: string = entry.rawLines.join('\\n');\n this.editPriorBlock_ = prior;\n this.editModalTitle_$.set(`Edit BACKLOG (BUG) — ${entry.code}`);\n this.editModalInitial_$.set(prior);\n this.editModalOpen_$.set(true);\n }\n\n /**\n * Edit modal bezárás.\n */\n handleEditModalClosed(): void {\n this.editModalOpen_$.set(false);\n this.editPriorBlock_ = '';\n }\n\n /**\n * Mentés: update mutation — `bugs` vagy `backlog` típus szerint.\n */\n async handleEditSaved(params: { newRawBlock: string }): Promise<void> {\n const pid: string = this.projectId.trim();\n if (!pid.length || this.entryMutationBusy_$()) {\n return;\n }\n const fileType: PM_ControlFileType_Type = this.isBacklogFallback_$()\n ? PM_ControlFileType_Type.backlog\n : PM_ControlFileType_Type.bugs;\n this.entryMutationBusy_$.set(true);\n try {\n await this.pm_DS.mutateControlFileEntryAndRefresh(pid, fileType, {\n mode: PM_ControlEntryMutationMode_Type.update,\n priorRawBlock: this.editPriorBlock_,\n newRawBlock: params.newRawBlock,\n });\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-bugs-entry-update');\n } finally {\n this.entryMutationBusy_$.set(false);\n }\n }\n\n /**\n * Remove entry — `S_Modal` megerősítés után mutáció.\n */\n handleRemoveBugEntry(entry: PM_BacklogEntry_Interface, fromBacklogFallback: boolean): void {\n const pid: string = this.projectId.trim();\n if (!pid.length || this.entryMutationBusy_$()) {\n return;\n }\n this.confirmModalTitle_$.set('Remove entry');\n this.confirmModalBody_$.set(\n `Remove entry ${entry.code} from the control file? This cannot be undone.`,\n );\n this.pendingConfirmAction_ = async (): Promise<void> => {\n await this.executeRemoveBugEntry(pid, entry, fromBacklogFallback);\n };\n this.confirmModalOpen_$.set(true);\n }\n\n /**\n * Entry törlés mutation (megerősítés után).\n */\n private async executeRemoveBugEntry(\n pid: string,\n entry: PM_BacklogEntry_Interface,\n fromBacklogFallback: boolean,\n ): Promise<void> {\n const fileType: PM_ControlFileType_Type = fromBacklogFallback\n ? PM_ControlFileType_Type.backlog\n : PM_ControlFileType_Type.bugs;\n const prior: string = entry.rawLines.join('\\n');\n this.entryMutationBusy_$.set(true);\n try {\n await this.pm_DS.mutateControlFileEntryAndRefresh(pid, fileType, {\n mode: PM_ControlEntryMutationMode_Type.remove,\n priorRawBlock: prior,\n });\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-bugs-entry-remove');\n } finally {\n this.entryMutationBusy_$.set(false);\n }\n }\n\n /**\n * Kézi bug modal megnyitása.\n */\n handleOpenManualBugModal(): void {\n if (!this.projectId?.trim().length) {\n return;\n }\n this.lastManualBugSummary_$.set(null);\n this.manualBugModalOpen_$.set(true);\n }\n\n /**\n * Kézi bug modal bezárás (cancel).\n */\n handleCloseManualBugModal(): void {\n this.manualBugModalOpen_$.set(false);\n }\n\n /**\n * Kézi bug létrehozása — BUGS.md + pm_user_request, majd fájlok és user request lista frissítése.\n */\n async handleManualBugSubmitted(body: PM_ManualBugCreate_Request): Promise<void> {\n const pid: string = this.projectId.trim();\n if (!pid.length || this.manualBugBusy_$()) {\n return;\n }\n this.manualBugBusy_$.set(true);\n this.lastManualBugSummary_$.set(null);\n try {\n const result: PM_ManualBugCreate_Response =\n await this.pm_DS.createManualBugAndRefresh(pid, body);\n this.manualBugModalOpen_$.set(false);\n this.lastManualBugSummary_$.set(\n `Created bug ${result.createdCode} (user request ${result.userRequestId}).`,\n );\n this.refresh.emit();\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-manual-bug-create');\n } finally {\n this.manualBugBusy_$.set(false);\n }\n }\n\n /**\n * Központi error tábla → BUGS.md append (szerver; utána a PM DS frissíti a fileContents-t).\n */\n async handleAppendBugsFromErrors(): Promise<void> {\n if (!this.projectId || this.isAppendFromErrorsBusy_$()) {\n return;\n }\n this.isAppendFromErrorsBusy_$.set(true);\n this.lastAppendFromErrorsSummary_$.set(null);\n this.lastSingleBugFromErrorSummary_$.set(null);\n try {\n const result: PM_AppendBugsFromErrors_Response =\n await this.pm_DS.appendBugsFromErrorsAndRefreshFiles(this.projectId);\n const parts: string[] = [];\n if (result.createdCodes.length > 0) {\n parts.push(\n `Created ${String(result.createdCodes.length)}: ${result.createdCodes.join(', ')}`,\n );\n }\n parts.push(`Skipped (already in BUGS.md): ${String(result.skippedAlreadyLinkedCount)}`);\n parts.push(`Skipped (no id): ${String(result.skippedMissingIdCount)}`);\n parts.push(`Skipped (user marked): ${String(result.skippedUserMarkedCount)}`);\n this.lastAppendFromErrorsSummary_$.set(parts.join(' · '));\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-bugs-append-from-errors');\n } finally {\n this.isAppendFromErrorsBusy_$.set(false);\n }\n }\n\n /**\n * Egy központi error → egy BUGS.md bejegyzés (ikon gomb).\n */\n async handleAppendSingleBugFromError(row: PM_BugsTab_ErrorRow_Interface): Promise<void> {\n const id: string = row.errorId.trim();\n if (!this.projectId?.length || !id.length) {\n return;\n }\n if (this.singleBugFromErrorBusyErrorId_$() === id) {\n return;\n }\n this.singleBugFromErrorBusyErrorId_$.set(id);\n this.lastSingleBugFromErrorSummary_$.set(null);\n try {\n const result = await this.pm_DS.appendSingleBugFromErrorAndRefreshFiles(this.projectId, id);\n if (\n result.outcome === PM_AppendSingleBugFromErrorOutcome_Type.created\n && result.createdCode != null\n && result.createdCode.length > 0\n ) {\n this.lastSingleBugFromErrorSummary_$.set(`Created bug ${result.createdCode}.`);\n return;\n }\n if (result.outcome === PM_AppendSingleBugFromErrorOutcome_Type.alreadyLinked) {\n this.lastSingleBugFromErrorSummary_$.set(\n 'This central error is already linked in BUGS.md.',\n );\n return;\n }\n if (result.outcome === PM_AppendSingleBugFromErrorOutcome_Type.userMarked) {\n this.lastSingleBugFromErrorSummary_$.set(\n 'This error is user-marked; unmark to create a bug from it.',\n );\n return;\n }\n if (result.outcome === PM_AppendSingleBugFromErrorOutcome_Type.errorNotFound) {\n this.lastSingleBugFromErrorSummary_$.set(\n 'Central error record not found (try Refresh).',\n );\n }\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-bugs-append-single-from-error');\n } finally {\n this.singleBugFromErrorBusyErrorId_$.set('');\n }\n }\n\n /**\n * Központi error sor PM megjelölése / jelölés törlése.\n */\n async handlePmUserMarkToggle(row: PM_BugsTab_ErrorRow_Interface): Promise<void> {\n const id: string = row.errorId.trim();\n if (!id.length || this.pmUserMarkBusyErrorId_$() === id) {\n return;\n }\n this.pmUserMarkBusyErrorId_$.set(id);\n try {\n await this.errors_DS.setPmUserMark(id, !row.isPmUserMarked);\n } finally {\n this.pmUserMarkBusyErrorId_$.set('');\n }\n }\n\n /**\n * Linkelt központi error rekord törlése — `S_Modal` megerősítés után.\n */\n handleRemoveLinkedError(entry: PM_BacklogEntry_Interface): void {\n const id: string | undefined = entry.linkedCcapErrorId?.trim();\n if (!id?.length) {\n return;\n }\n this.confirmModalTitle_$.set('Remove central error');\n this.confirmModalBody_$.set(`Remove central error record ${id} from the error table?`);\n this.pendingConfirmAction_ = async (): Promise<void> => {\n try {\n await this.errors_DS.clearOne(id);\n await this.errors_DS.loadErrors();\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-bugs-remove-linked-error');\n }\n };\n this.confirmModalOpen_$.set(true);\n }\n\n /**\n * Megerősítő modal bezárása (backdrop, Escape, X).\n */\n handleConfirmModalDismissed(): void {\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n }\n\n /** Cancel gomb. */\n handleConfirmModalCancel(): void {\n this.handleConfirmModalDismissed();\n }\n\n /** Confirm gomb: pending action. */\n async handleConfirmModalConfirm(): Promise<void> {\n const action: (() => Promise<void>) | null = this.pendingConfirmAction_;\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n if (action) {\n await action();\n }\n }\n\n /**\n * Szöveg rövidítés (egysoros megjelenítés).\n */\n private static truncateText(raw: string, maxLen: number): string {\n const t: string = raw.replace(/\\s+/g, ' ').trim();\n if (t.length <= maxLen) {\n return t.length > 0 ? t : '—';\n }\n return `${t.slice(0, maxLen - 1)}…`;\n }\n}\n", "<div class=\"flex flex-col gap-4\">\n <div class=\"flex flex-col gap-2\">\n <div class=\"flex flex-wrap gap-2\">\n <button type=\"button\"\n class=\"px-3 py-1.5 border border-neonRed/50 rounded text-neonRed/90 text-xs font-semibold\n hover:border-neonRed hover:bg-neonRed/10 transition-colors duration-200\n disabled:opacity-40 disabled:pointer-events-none\"\n [disabled]=\"!projectId.trim().length || manualBugBusy_$()\"\n (click)=\"handleOpenManualBugModal()\">\n New bug\n </button>\n </div>\n <div class=\"flex items-center justify-between gap-3 flex-wrap\">\n <div class=\"flex items-center gap-3 flex-wrap\">\n <h2 class=\"text-base font-semibold text-neutral-200\">Bugs</h2>\n @if (isBacklogFallback_$()) {\n <span class=\"text-xs text-neutral-500\">(from BACKLOG.md)</span>\n }\n </div>\n <button type=\"button\"\n (click)=\"refresh.emit()\"\n class=\"px-3 py-1.5 border border-neutral-500 rounded text-neutral-300 text-xs font-semibold shrink-0\n hover:border-ccapAccent hover:text-ccapAccent transition-colors duration-200\">\n Refresh\n </button>\n </div>\n </div>\n\n @if (bugsPathResolveLoading_$()) {\n <p class=\"text-[11px] text-neutral-500\">Resolving BUGS.md paths…</p>\n }\n\n @if (bugsPathResolve_$()?.isAmbiguous) {\n <div class=\"rounded-lg border border-amber-600/45 bg-amber-950/25 p-3 flex flex-col gap-2\">\n <p class=\"text-xs text-amber-100/90 leading-snug\">\n Multiple BUGS.md files were found under this project. Choose which file PM should use for reads and appends\n (saved as <span class=\"font-mono text-[10px]\">preferredBugsMdRelativePath</span> on the project).\n </p>\n <div class=\"flex flex-wrap gap-2\">\n @for (cand of bugsPathResolve_$()!.candidates; track cand.absolutePath) {\n <button type=\"button\"\n class=\"px-2.5 py-1 text-[11px] font-semibold rounded border border-amber-500/60 text-amber-100\n hover:bg-amber-500/15 disabled:opacity-40 disabled:pointer-events-none\"\n [disabled]=\"!projectId.trim().length\"\n (click)=\"handleSelectPreferredBugsPath(cand)\">\n {{ cand.relativeToProject }}\n </button>\n }\n </div>\n </div>\n }\n\n @if (lastManualBugSummary_$()) {\n <p class=\"text-[11px] text-emerald-400/90 leading-snug\">{{ lastManualBugSummary_$() }}</p>\n }\n\n @if (isCcapRevisionedHost) {\n <div class=\"rounded-lg border border-neonCyan/30 bg-neutral-900/40 p-3 flex flex-col gap-2\">\n <div class=\"flex items-center justify-between gap-2 flex-wrap\">\n <span class=\"text-xs font-semibold text-neutral-200\">Central error table (CCAP host)</span>\n <button type=\"button\"\n class=\"px-2 py-1 text-xs font-semibold rounded border border-ccapAccent text-ccapAccent\n hover:bg-ccapAccent/10 disabled:opacity-40 disabled:pointer-events-none\"\n [disabled]=\"!projectId || isAppendFromErrorsBusy_$() || errors_DS.errorsLoading_$()\"\n (click)=\"handleAppendBugsFromErrors()\">\n {{ isAppendFromErrorsBusy_$() ? 'Creating…' : 'Create bugs from unlinked errors' }}\n </button>\n </div>\n @if (lastAppendFromErrorsSummary_$()) {\n <p class=\"text-[11px] text-neutral-400 leading-snug\">{{ lastAppendFromErrorsSummary_$() }}</p>\n }\n @if (lastSingleBugFromErrorSummary_$()) {\n <p class=\"text-[11px] text-amber-200/80 leading-snug\">{{ lastSingleBugFromErrorSummary_$() }}</p>\n }\n @if (errors_DS.errorsLoadError_$()) {\n <div class=\"text-xs text-red-400\">{{ errors_DS.errorsLoadError_$() }}</div>\n }\n @if (errors_DS.errorsLoading_$()) {\n <div class=\"text-xs text-neutral-500\">Loading errors…</div>\n } @else if (!errorTableRows_$().length && !errors_DS.errorsLoadError_$()) {\n <div class=\"text-xs text-neutral-500\">No errors in the central table.</div>\n } @else if (errorTableRows_$().length) {\n <div class=\"overflow-x-auto max-h-48 overflow-y-auto border border-neutral-800 rounded\">\n <table class=\"w-full text-left text-[11px] text-neutral-300\">\n <thead class=\"sticky top-0 bg-neutral-900 text-neutral-500 uppercase tracking-wide\">\n <tr>\n <th class=\"px-2 py-1 font-medium\">Message</th>\n <th class=\"px-2 py-1 font-medium w-16\">Count</th>\n <th class=\"px-2 py-1 font-medium w-28\">Source</th>\n <th class=\"px-2 py-1 font-medium w-24\">Id</th>\n <th class=\"px-2 py-1 font-medium w-28\">Mark</th>\n <th class=\"px-2 py-1 font-medium w-10 text-center\" title=\"Create BUGS.md entry from this error\">\n Bug\n </th>\n </tr>\n </thead>\n <tbody>\n @for (row of errorTableRows_$(); track row.rowKey) {\n <tr class=\"border-t border-neutral-800/80\"\n [ngClass]=\"{ 'bg-amber-900/15': row.isPmUserMarked }\">\n <td class=\"px-2 py-1 align-top break-words max-w-[240px]\">{{ row.messageShort }}</td>\n <td class=\"px-2 py-1 align-top text-neutral-400\">{{ row.occurrenceCount ?? '—' }}</td>\n <td class=\"px-2 py-1 align-top text-neutral-500 truncate\">{{ row.source ?? '—' }}</td>\n <td class=\"px-2 py-1 align-top font-mono text-[10px] text-neutral-500 truncate\"\n [title]=\"row.idLabel ?? ''\">\n {{ row.idLabel ?? '—' }}\n </td>\n <td class=\"px-2 py-1 align-top whitespace-nowrap\">\n <button type=\"button\"\n class=\"px-1.5 py-0.5 text-[10px] font-semibold rounded border transition-colors\n disabled:opacity-40 disabled:pointer-events-none\"\n [ngClass]=\"{\n 'border-amber-500/60 text-amber-300': row.isPmUserMarked,\n 'border-neutral-600 text-neutral-300': !row.isPmUserMarked\n }\"\n [disabled]=\"!row.errorId.length || pmUserMarkBusyErrorId_$() === row.errorId\"\n (click)=\"handlePmUserMarkToggle(row)\">\n @if (pmUserMarkBusyErrorId_$() === row.errorId) {\n …\n } @else if (row.isPmUserMarked) {\n Unmark\n } @else {\n Mark\n }\n </button>\n </td>\n <td class=\"px-2 py-1 align-top text-center\">\n <button type=\"button\"\n class=\"inline-flex items-center justify-center p-1 rounded-md border border-neutral-600/70\n text-neutral-400 hover:border-ccapAccent hover:text-ccapAccent\n disabled:opacity-40 disabled:pointer-events-none transition-colors\"\n title=\"Create BUGS.md entry from this central error\"\n [disabled]=\"!row.errorId.length\n || errors_DS.errorsLoading_$()\n || isAppendFromErrorsBusy_$()\n || singleBugFromErrorBusyErrorId_$() === row.errorId\"\n (click)=\"handleAppendSingleBugFromError(row)\">\n @if (singleBugFromErrorBusyErrorId_$() === row.errorId) {\n <span class=\"text-[10px] font-mono text-neutral-500\">…</span>\n } @else {\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\"\n viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M12 4.5v15m7.5-7.5h-15\" />\n </svg>\n }\n </button>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n </div>\n }\n\n <app-s-content-state [isLoading]=\"isLoading\"\n [error]=\"error\"\n [isEmpty]=\"!hasContent_$() && !isLoading\"\n [emptyMessage]=\"'Nincs bug bejegyzes a projektben.'\"\n [loadingMessage]=\"'Betöltés…'\"\n (retry)=\"refresh.emit()\">\n\n <app-pm-control-file-preamble-disclosure [filePreamble]=\"bugsFileContent()?.filePreamble\">\n </app-pm-control-file-preamble-disclosure>\n\n <!-- BUGS.md entry-k (ha vannak) -->\n @if (bugsFileContent()?.entries?.length) {\n <div class=\"flex flex-col gap-2\">\n @for (entry of bugsFileContent()!.entries; track entry.code) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonRed/30 p-4\">\n <div class=\"flex items-start justify-between gap-2 flex-wrap w-full\">\n <div class=\"flex items-start gap-2 flex-wrap min-w-0 flex-1\">\n <span class=\"text-lg shrink-0\">{{ entry.statusEmoji }}</span>\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-900 text-neonCyan border border-neonCyan/40 font-mono shrink-0\">\n {{ entry.code }}\n </span>\n <span class=\"text-sm font-semibold text-neutral-100 min-w-0 break-words\">{{ entry.title }}</span>\n </div>\n <button type=\"button\"\n class=\"shrink-0 p-1.5 rounded-full border border-neutral-600/60 text-neutral-400\n hover:border-ccapAccent hover:text-ccapAccent transition-colors\"\n title=\"Raw entry\"\n (click)=\"handleOpenRawBug(entry, 'bugs')\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z\" />\n </svg>\n </button>\n </div>\n <div class=\"flex flex-wrap gap-x-4 gap-y-1 mt-2 text-xs text-neutral-400\">\n @if (entry.priority) {\n <span>\n <span class=\"text-neutral-500\">priority:</span>\n <span class=\"font-medium\"\n [class.text-red-400]=\"entry.priority === 'urgent'\"\n [class.text-amber-400]=\"entry.priority === 'high'\">\n {{ entry.priority }}\n </span>\n </span>\n }\n @if (entry.area) {\n <span><span class=\"text-neutral-500\">area:</span> {{ entry.area }}</span>\n }\n @if (entry.linkedCcapErrorId) {\n <span class=\"font-mono text-[10px] text-neutral-500\">\n linked error: {{ entry.linkedCcapErrorId }}\n </span>\n }\n </div>\n @if (entry.details) {\n <p class=\"text-neutral-400 text-xs mt-1.5\">{{ entry.details }}</p>\n }\n <app-pm-item-row-actions\n [showCcWork]=\"false\"\n [showCcFix]=\"true\"\n [showCcReview]=\"true\"\n [disabledCc]=\"!workspacePath?.trim()\"\n [disabledEdit]=\"entryMutationBusy_$()\"\n [disabledRemove]=\"entryMutationBusy_$()\"\n (edit)=\"handleOpenEditBugFromFile(entry)\"\n (remove)=\"handleRemoveBugEntry(entry, false)\"\n (ccFix)=\"handleOpenCcFixWizard(entry)\"\n (ccReview)=\"handleOpenCcReviewWizard(entry)\">\n </app-pm-item-row-actions>\n @if (entry.linkedCcapErrorId?.trim()) {\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-700 text-neutral-400 mt-2\n hover:border-red-500/60 hover:text-red-300\"\n (click)=\"handleRemoveLinkedError(entry)\">\n Remove error from DB\n </button>\n }\n </div>\n }\n </div>\n }\n\n <app-pm-control-file-preamble-disclosure [filePreamble]=\"backlogFileContent()?.filePreamble\">\n </app-pm-control-file-preamble-disclosure>\n\n <!-- Backlog fallback BUG entry-k -->\n @if (isBacklogFallback_$()) {\n <div class=\"flex flex-col gap-2\">\n @for (entry of backlogBugs_$(); track entry.code) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonRed/30 p-4\">\n <div class=\"flex items-start justify-between gap-2 flex-wrap w-full\">\n <div class=\"flex items-start gap-2 flex-wrap min-w-0 flex-1\">\n <span class=\"text-lg shrink-0\">{{ entry.statusEmoji }}</span>\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-900 text-neonCyan border border-neonCyan/40 font-mono shrink-0\">\n {{ entry.code }}\n </span>\n <span class=\"text-sm font-semibold text-neutral-100 min-w-0 break-words\">{{ entry.title }}</span>\n <span class=\"px-1.5 py-0.5 text-[10px] rounded bg-neutral-800 text-neutral-500 border border-neutral-700\">\n from BACKLOG\n </span>\n </div>\n <button type=\"button\"\n class=\"shrink-0 p-1.5 rounded-full border border-neutral-600/60 text-neutral-400\n hover:border-ccapAccent hover:text-ccapAccent transition-colors\"\n title=\"Raw entry\"\n (click)=\"handleOpenRawBug(entry, 'backlog')\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z\" />\n </svg>\n </button>\n </div>\n <div class=\"flex flex-wrap gap-x-4 gap-y-1 mt-2 text-xs text-neutral-400\">\n @if (entry.priority) {\n <span>\n <span class=\"text-neutral-500\">priority:</span>\n <span class=\"font-medium\"\n [class.text-red-400]=\"entry.priority === 'urgent'\"\n [class.text-amber-400]=\"entry.priority === 'high'\">\n {{ entry.priority }}\n </span>\n </span>\n }\n @if (entry.area) {\n <span><span class=\"text-neutral-500\">area:</span> {{ entry.area }}</span>\n }\n @if (entry.linkedCcapErrorId) {\n <span class=\"font-mono text-[10px] text-neutral-500\">\n linked error: {{ entry.linkedCcapErrorId }}\n </span>\n }\n </div>\n @if (entry.details) {\n <p class=\"text-neutral-400 text-xs mt-1.5\">{{ entry.details }}</p>\n }\n <app-pm-item-row-actions\n [showCcWork]=\"false\"\n [showCcFix]=\"true\"\n [showCcReview]=\"true\"\n [disabledCc]=\"!workspacePath?.trim()\"\n [disabledEdit]=\"entryMutationBusy_$()\"\n [disabledRemove]=\"entryMutationBusy_$()\"\n (edit)=\"handleOpenEditBugFromBacklog(entry)\"\n (remove)=\"handleRemoveBugEntry(entry, true)\"\n (ccFix)=\"handleOpenCcFixWizard(entry)\"\n (ccReview)=\"handleOpenCcReviewWizard(entry)\">\n </app-pm-item-row-actions>\n @if (entry.linkedCcapErrorId?.trim()) {\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-700 text-neutral-400 mt-2\n hover:border-red-500/60 hover:text-red-300\"\n (click)=\"handleRemoveLinkedError(entry)\">\n Remove error from DB\n </button>\n }\n </div>\n }\n </div>\n }\n </app-s-content-state>\n\n <app-pm-entry-raw-modal\n [isOpen]=\"rawModalOpen_$()\"\n [title]=\"rawModalTitle_$()\"\n [rawText]=\"rawModalBody_$()\"\n (closed)=\"handleCloseRawModal()\">\n </app-pm-entry-raw-modal>\n\n <app-pm-cc-launch-wizard\n [isOpen]=\"ccLaunchOpen_$()\"\n [modalTitle]=\"ccLaunchTitle_$()\"\n [sessionLabel]=\"ccLaunchLabel_$()\"\n [basePrompt]=\"ccLaunchBasePrompt_$()\"\n [workspacePath]=\"workspacePathForWizard_$()\"\n (closed)=\"handleCcLaunchClosed()\">\n </app-pm-cc-launch-wizard>\n\n <app-pm-control-entry-edit-modal\n [isOpen]=\"editModalOpen_$()\"\n [title]=\"editModalTitle_$()\"\n [initialText]=\"editModalInitial_$()\"\n (closed)=\"handleEditModalClosed()\"\n (saved)=\"handleEditSaved($event)\">\n </app-pm-control-entry-edit-modal>\n\n <app-pm-manual-bug-modal\n [isOpen]=\"manualBugModalOpen_$()\"\n [isBusy]=\"manualBugBusy_$()\"\n (closed)=\"handleCloseManualBugModal()\"\n (submitted)=\"handleManualBugSubmitted($event)\">\n </app-pm-manual-bug-modal>\n\n <app-s-modal [isOpen]=\"confirmModalOpen_$()\"\n [title]=\"confirmModalTitle_$()\"\n [maxWidth]=\"'md'\"\n (closed)=\"handleConfirmModalDismissed()\">\n <p class=\"text-sm text-neutral-300 whitespace-pre-wrap\">{{ confirmModalBody_$() }}</p>\n <div modal-footer\n class=\"flex items-center justify-end gap-2 px-4 py-3 border-t border-neutral-700 shrink-0 bg-neutral-900/80\">\n <button type=\"button\"\n (click)=\"handleConfirmModalCancel()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neutral-600 text-neutral-300\n hover:bg-neutral-700 transition-colors\">\n Cancel\n </button>\n <button type=\"button\"\n (click)=\"handleConfirmModalConfirm()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neonRed/60 text-neonRed/90\n hover:bg-neonRed/10 transition-colors\">\n Confirm\n </button>\n </div>\n </app-s-modal>\n</div>\n", "import { Component, computed, EventEmitter, input, Input, InputSignal, Output, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PM_ChangelogEntry_Interface, PM_ControlFileContent_Response } from '../../../../../_models/server-index';\nimport { PM_EntryRawModal_Component } from '../../pm-entry-raw-modal/pm-entry-raw-modal.component';\nimport { S_ContentState_Component } from '../../../../shared/_components/s-content-state/s-content-state.component';\nimport { PM_ControlFilePreambleDisclosure_Component } from '../pm-control-file-preamble-disclosure/pm-control-file-preamble-disclosure.component';\n\n/**\n * CHANGELOG.md tab – parse-olt changelog entry-k verzió szekciókba csoportosítva.\n */\n@Component({\n selector: 'app-pm-changelog-tab',\n standalone: true,\n imports: [\n CommonModule,\n S_ContentState_Component,\n PM_EntryRawModal_Component,\n PM_ControlFilePreambleDisclosure_Component,\n ],\n templateUrl: './pm-changelog-tab.component.html',\n})\n/** PM_ChangelogTab_Component class. */\nexport class PM_ChangelogTab_Component {\n\n readonly fileContent: InputSignal<PM_ControlFileContent_Response<PM_ChangelogEntry_Interface> | null> =\n input<PM_ControlFileContent_Response<PM_ChangelogEntry_Interface> | null>(null);\n @Input() isLoading: boolean = false;\n @Input() error: unknown | null = null;\n\n @Output() readonly refresh: EventEmitter<void> = new EventEmitter<void>();\n\n /** Nyers `rawLines` modal. */\n readonly rawModalOpen_$ = signal<boolean>(false);\n readonly rawModalTitle_$ = signal<string>('');\n readonly rawModalBody_$ = signal<string>('');\n\n /**\n * Nyers entry blokk megnyitása modal-ban.\n */\n handleOpenRawChangelog(entry: PM_ChangelogEntry_Interface): void {\n this.rawModalTitle_$.set(`CHANGELOG v${entry.version} — ${entry.code}`);\n this.rawModalBody_$.set(entry.rawLines.join('\\n'));\n this.rawModalOpen_$.set(true);\n }\n\n /**\n * Nyers tartalom modal bezárása.\n */\n handleCloseRawModal(): void {\n this.rawModalOpen_$.set(false);\n this.rawModalTitle_$.set('');\n this.rawModalBody_$.set('');\n }\n\n readonly versionSections_$ = computed(\n (): { version: string; entries: PM_ChangelogEntry_Interface[] }[] => {\n const content: PM_ControlFileContent_Response<PM_ChangelogEntry_Interface> | null =\n this.fileContent();\n if (!content?.entries?.length) {\n return [];\n }\n const map: Map<string, PM_ChangelogEntry_Interface[]> =\n new Map<string, PM_ChangelogEntry_Interface[]>();\n const order: string[] = [];\n for (const entry of content.entries) {\n const ver: string = entry.version;\n if (!map.has(ver)) {\n map.set(ver, []);\n order.push(ver);\n }\n map.get(ver)!.push(entry);\n }\n return order.map(\n (ver: string): { version: string; entries: PM_ChangelogEntry_Interface[] } => ({\n version: ver,\n entries: map.get(ver)!,\n }),\n );\n },\n );\n}\n", "<div class=\"flex flex-col gap-4\">\n <div class=\"flex items-center justify-between gap-3\">\n <div class=\"flex items-center gap-3\">\n <h2 class=\"text-base font-semibold text-neutral-200\">CHANGELOG.md</h2>\n @if (fileContent() != null && fileContent()!.metadata != null && fileContent()!.metadata.lineCount) {\n <span class=\"text-xs text-neutral-500\">{{ fileContent()!.metadata.lineCount }} sor</span>\n }\n @if (fileContent()?.entries?.length) {\n <span class=\"text-xs text-neutral-400\">{{ fileContent()!.entries.length }} entry</span>\n }\n </div>\n <button type=\"button\"\n (click)=\"refresh.emit()\"\n class=\"px-3 py-1.5 border border-neutral-500 rounded text-neutral-300 text-xs font-semibold\n hover:border-ccapAccent hover:text-ccapAccent transition-colors duration-200\">\n Refresh\n </button>\n </div>\n\n <app-pm-control-file-preamble-disclosure [filePreamble]=\"fileContent()?.filePreamble\">\n </app-pm-control-file-preamble-disclosure>\n\n <app-s-content-state [isLoading]=\"isLoading\"\n [error]=\"error\"\n [isEmpty]=\"!fileContent() || !fileContent()!.exists\"\n [emptyMessage]=\"'A projekt nem tartalmaz CHANGELOG.md fájlt.'\"\n [loadingMessage]=\"'Betöltés…'\"\n (retry)=\"refresh.emit()\">\n\n @if (fileContent() && fileContent()!.error) {\n <div class=\"rounded-lg bg-red-900/20 border border-red-800/50 p-3 mb-3\">\n <p class=\"text-red-400 text-xs\">{{ fileContent()!.error }}</p>\n </div>\n }\n\n @for (section of versionSections_$(); track section.version) {\n <div class=\"mb-4\">\n <h3 class=\"text-sm font-bold text-neutral-300 mb-2 border-b border-neutral-700 pb-1\">\n v{{ section.version }}\n <span class=\"text-neutral-500 font-normal ml-2\">({{ section.entries.length }})</span>\n </h3>\n <div class=\"flex flex-col gap-2\">\n @for (entry of section.entries; track entry.code) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-3\">\n <div class=\"flex items-start justify-between gap-2 flex-wrap w-full\">\n <div class=\"flex items-start gap-2 flex-wrap min-w-0 flex-1\">\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-700 text-neutral-300 border border-neutral-600 font-mono uppercase shrink-0\">\n {{ entry.type }}\n </span>\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-900 text-neonCyan border border-neonCyan/40 font-mono shrink-0\">\n {{ entry.code }}\n </span>\n <span class=\"text-sm text-neutral-100 min-w-0 break-words\">{{ entry.title }}</span>\n </div>\n <button type=\"button\"\n class=\"shrink-0 p-1.5 rounded-full border border-neutral-600/60 text-neutral-400\n hover:border-ccapAccent hover:text-ccapAccent transition-colors\"\n title=\"Raw entry\"\n (click)=\"handleOpenRawChangelog(entry)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z\" />\n </svg>\n </button>\n </div>\n @if (entry.summary) {\n <p class=\"text-neutral-400 text-xs mt-1.5\">{{ entry.summary }}</p>\n }\n <div class=\"flex flex-wrap gap-x-4 gap-y-1 mt-1.5 text-[11px] text-neutral-500\">\n @if (entry.source) {\n <span>source: <span class=\"text-neutral-400 font-mono\">{{ entry.source }}</span></span>\n }\n @if (entry.area) {\n <span>area: {{ entry.area }}</span>\n }\n @if (entry.doc && entry.doc !== 'n/a') {\n <span>doc: <span class=\"text-neutral-400 font-mono\">{{ entry.doc }}</span></span>\n }\n </div>\n @if (entry.reqCodes && entry.reqCodes.length > 0) {\n <div class=\"flex flex-wrap gap-1 mt-1.5\">\n @for (req of entry.reqCodes; track req) {\n <span class=\"px-1.5 py-0.5 text-[10px] rounded bg-purple-900/30 text-purple-300 border border-purple-800 font-mono\">\n {{ req }}\n </span>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n </app-s-content-state>\n\n <app-pm-entry-raw-modal\n [isOpen]=\"rawModalOpen_$()\"\n [title]=\"rawModalTitle_$()\"\n [rawText]=\"rawModalBody_$()\"\n (closed)=\"handleCloseRawModal()\">\n </app-pm-entry-raw-modal>\n</div>\n", "import { Component, computed, input, output, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n PM_ControlFileContent_Response,\n PM_TestErrorReportEntry_Interface,\n PM_TestErrorReportKind_Type,\n} from '../../../../../_models/server-index';\nimport { S_ContentState_Component } from '../../../../shared/_components/s-content-state/s-content-state.component';\n\n/**\n * TEST-ERROR-REPORTS.json tab – build + E2E error report rekordok (file-sync, read-only lista + Clear).\n */\n@Component({\n selector: 'app-pm-test-error-reports-tab',\n standalone: true,\n imports: [CommonModule, S_ContentState_Component],\n templateUrl: './pm-test-error-reports-tab.component.html',\n})\n/** PM_TestErrorReportsTab_Component class. */\nexport class PM_TestErrorReportsTab_Component {\n\n /** Parse-olt report wrapper (PM file sync). */\n readonly fileContent =\n input<PM_ControlFileContent_Response<PM_TestErrorReportEntry_Interface> | null>(null);\n\n /** Lista betöltés alatt. */\n readonly isLoading = input<boolean>(false);\n\n /** Általános sync hiba. */\n readonly error = input<unknown | null>(null);\n\n /** Clear POST fut alatt. */\n readonly isClearing = input<boolean>(false);\n\n /** Enum a template badge összehasonlításokhoz. */\n readonly reportKindEnum: typeof PM_TestErrorReportKind_Type = PM_TestErrorReportKind_Type;\n\n /** Szűrő: összes / csak E2E / csak build (nem e2e) stream. */\n readonly filterMode_$ = signal<'all' | 'e2e' | 'build'>('all');\n\n readonly refresh = output<void>();\n readonly clearFile = output<void>();\n\n /**\n * Aktív szűrőnek megfelelő rekordok (signature stabil track-hez).\n */\n readonly filteredEntries_$ = computed((): PM_TestErrorReportEntry_Interface[] => {\n const fc: PM_ControlFileContent_Response<PM_TestErrorReportEntry_Interface> | null =\n this.fileContent();\n const entries: PM_TestErrorReportEntry_Interface[] = fc?.entries ?? [];\n const mode: 'all' | 'e2e' | 'build' = this.filterMode_$();\n if (mode === 'all') {\n return entries;\n }\n if (mode === 'e2e') {\n return entries.filter((e: PM_TestErrorReportEntry_Interface): boolean =>\n e.reportKind === PM_TestErrorReportKind_Type.e2e,\n );\n }\n return entries.filter((e: PM_TestErrorReportEntry_Interface): boolean =>\n e.reportKind !== PM_TestErrorReportKind_Type.e2e,\n );\n });\n\n /**\n * Chip kattintás – szűrő mód váltás.\n */\n handleSetFilter(mode: 'all' | 'e2e' | 'build'): void {\n this.filterMode_$.set(mode);\n }\n}\n", "<div class=\"flex flex-col gap-4\">\n <div class=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between\">\n <div>\n <h2 class=\"text-base font-semibold text-neutral-200\">Test &amp; build error reports</h2>\n <p class=\"text-xs text-neutral-500 mt-1\">\n TEST-ERROR-REPORTS.json — E2E és build/unit stream egy fájlban (<code class=\"text-neutral-400\">reportKind</code>).\n </p>\n </div>\n <div class=\"flex flex-wrap items-center gap-2\">\n <button type=\"button\"\n (click)=\"refresh.emit()\"\n [disabled]=\"isLoading()\"\n class=\"px-3 py-1.5 border border-neutral-500 rounded text-neutral-300 text-xs font-semibold\n hover:border-ccapAccent hover:text-ccapAccent transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n Refresh\n </button>\n <button type=\"button\"\n (click)=\"clearFile.emit()\"\n [disabled]=\"isClearing() || isLoading()\"\n class=\"px-3 py-1.5 border border-red-800/60 rounded text-red-300 text-xs font-semibold\n hover:border-red-500 hover:text-red-200 transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n Clear file\n </button>\n </div>\n </div>\n\n <div class=\"flex flex-wrap gap-2\">\n <button type=\"button\"\n (click)=\"handleSetFilter('all')\"\n class=\"px-2.5 py-1 rounded text-xs font-medium border transition-colors duration-200\"\n [class.border-ccapAccent]=\"filterMode_$() === 'all'\"\n [class.text-ccapAccent]=\"filterMode_$() === 'all'\"\n [class.border-neutral-600]=\"filterMode_$() !== 'all'\"\n [class.text-neutral-400]=\"filterMode_$() !== 'all'\">\n All\n </button>\n <button type=\"button\"\n (click)=\"handleSetFilter('e2e')\"\n class=\"px-2.5 py-1 rounded text-xs font-medium border transition-colors duration-200\"\n [class.border-ccapAccent]=\"filterMode_$() === 'e2e'\"\n [class.text-ccapAccent]=\"filterMode_$() === 'e2e'\"\n [class.border-neutral-600]=\"filterMode_$() !== 'e2e'\"\n [class.text-neutral-400]=\"filterMode_$() !== 'e2e'\">\n E2E\n </button>\n <button type=\"button\"\n (click)=\"handleSetFilter('build')\"\n class=\"px-2.5 py-1 rounded text-xs font-medium border transition-colors duration-200\"\n [class.border-ccapAccent]=\"filterMode_$() === 'build'\"\n [class.text-ccapAccent]=\"filterMode_$() === 'build'\"\n [class.border-neutral-600]=\"filterMode_$() !== 'build'\"\n [class.text-neutral-400]=\"filterMode_$() !== 'build'\">\n Build\n </button>\n </div>\n\n <app-s-content-state [isLoading]=\"isLoading()\"\n [error]=\"error()\"\n [isEmpty]=\"!fileContent() || !fileContent()!.exists\"\n [emptyMessage]=\"'Nincs TEST-ERROR-REPORTS.json a projektben (opcionális fájl).'\"\n [loadingMessage]=\"'Betöltés…'\"\n (retry)=\"refresh.emit()\">\n\n @if (fileContent(); as fc) {\n @if (fc.error) {\n <div class=\"rounded-lg bg-red-900/20 border border-red-800/50 p-3 mb-3\">\n <p class=\"text-red-400 text-xs\">{{ fc.error }}</p>\n </div>\n }\n\n @if (fc.exists && fc.metadata != null && fc.metadata.lineCount != null) {\n <p class=\"text-xs text-neutral-500 mb-3\">\n {{ fc.metadata.lineCount }} sor a fájlban\n </p>\n }\n }\n\n <div class=\"flex flex-col gap-2\">\n @for (entry of filteredEntries_$(); track entry.signature) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-3\">\n <div class=\"flex flex-wrap items-center gap-2 mb-2\">\n @if (entry.reportKind === reportKindEnum.e2e) {\n <span class=\"px-2 py-0.5 text-[10px] rounded uppercase tracking-wide bg-purple-900/40 text-purple-200 border border-purple-700/50\">\n E2E\n </span>\n } @else {\n <span class=\"px-2 py-0.5 text-[10px] rounded uppercase tracking-wide bg-amber-900/40 text-amber-200 border border-amber-700/50\">\n Build\n </span>\n }\n <span class=\"text-[11px] text-neutral-500 font-mono\">{{ entry.reportKind }}</span>\n <span class=\"text-[11px] text-neutral-500\">{{ entry.recordedAt }}</span>\n </div>\n <p class=\"text-sm text-neutral-100 break-words\">{{ entry.message }}</p>\n @if (entry.stackTop) {\n <pre class=\"text-[11px] text-neutral-400 mt-2 whitespace-pre-wrap font-mono\">{{ entry.stackTop }}</pre>\n }\n @if (entry.meta && (entry.meta['specFile'] || entry.meta['testTitle'])) {\n <div class=\"mt-2 text-[11px] text-neutral-500 flex flex-col gap-0.5\">\n @if (entry.meta['specFile']) {\n <span>spec: <span class=\"text-neutral-400 font-mono\">{{ entry.meta['specFile'] }}</span></span>\n }\n @if (entry.meta['testTitle']) {\n <span>test: {{ entry.meta['testTitle'] }}</span>\n }\n </div>\n }\n </div>\n }\n </div>\n </app-s-content-state>\n</div>\n", "import { Component, computed, EventEmitter, Input, Output, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n DT_DeveloperReviewMeta_Response,\n DT_DeveloperRun_Response,\n DT_DeveloperReviewResult_Interface,\n DT_DeveloperReviewIssue_Interface,\n DT_DeveloperReviewIssueSourceLine_Interface,\n} from '../../../../../_models/server-index';\nimport { S_ContentState_Component } from '../../../../shared/_components/s-content-state/s-content-state.component';\nimport { S_CopyButton_Component } from '../../../../shared/_components/s-copy-button/s-copy-button.component';\n\n/**\n * Reviews tab – developer kód minőség review-k futtatása a projekt localPath-ján.\n * Checkboxokkal kiválaszthatók az egyes review-k, futtathatók egyenként vagy batch-ben.\n */\n@Component({\n selector: 'app-pm-reviews-tab',\n standalone: true,\n imports: [CommonModule, S_ContentState_Component, S_CopyButton_Component],\n templateUrl: './pm-reviews-tab.component.html',\n})\n/** PM_ReviewsTab_Component class. */\nexport class PM_ReviewsTab_Component {\n\n /** Elérhető review-k metaadatai. */\n @Input() reviewsMeta: DT_DeveloperReviewMeta_Response[] = [];\n\n /** Utolsó review futtatás eredménye. */\n @Input() reviewResult: DT_DeveloperRun_Response | null = null;\n\n /** Meta betöltés folyamatban. */\n @Input() isMetaLoading: boolean = false;\n\n /** Review futtatás folyamatban. */\n @Input() isRunning: boolean = false;\n\n /** Meta betöltési hiba. */\n @Input() metaError: unknown | null = null;\n\n /** Review futtatási hiba. */\n @Input() runError: unknown | null = null;\n\n /** Review-ok futtatása – reviewIds (szelektív) vagy undefined (összes). */\n @Output() readonly runReviews: EventEmitter<string[] | undefined> =\n new EventEmitter<string[] | undefined>();\n\n /** Meta újratöltés kérése. */\n @Output() readonly refreshMeta: EventEmitter<void> = new EventEmitter<void>();\n\n /** Kiválasztott review ID-k (checkbox state). */\n readonly selectedReviewIds_$ = signal<Set<string>>(new Set<string>());\n\n /** Van-e legalább egy kiválasztott review. */\n readonly hasSelection_$ = computed(\n (): boolean => this.selectedReviewIds_$().size > 0,\n );\n\n /** Eredmény szöveg a vágólapra (linter-stílusú plain text riport forráskód kontextussal). */\n readonly clipboardText_$ = computed((): string => {\n const result: DT_DeveloperRun_Response | null = this.reviewResult;\n if (!result) {\n return '';\n }\n const lines: string[] = [\n 'Code Review Report',\n '==================',\n `Executed: ${result.executedAt}`,\n `Target: ${result.targetPath}`,\n `Total issues: ${result.totalIssueCnt} | Failed: ${result.failedReviewCnt}/${result.results.length}`,\n '',\n ];\n for (const r of result.results) {\n const status: string = r.isPassed ? 'PASSED' : `FAILED - ${r.issueCnt} issue(s)`;\n lines.push(`--- ${r.reviewName} (${status}) ---`);\n if (r.isPassed) {\n lines.push(' No issues found.');\n } else {\n for (const issue of r.issues) {\n const loc: string = issue.line ? `${issue.filePath}:${issue.line}` : issue.filePath;\n lines.push('');\n lines.push(` ${loc}`);\n if (issue.sourceLines && issue.sourceLines.length > 0) {\n const maxNum: number =\n issue.sourceLines[issue.sourceLines.length - 1].lineNumber;\n const pad: number = String(maxNum).length;\n for (const sl of issue.sourceLines) {\n const prefix: string = sl.lineNumber === issue.line ? '>' : ' ';\n const numStr: string = String(sl.lineNumber).padStart(pad);\n lines.push(` ${prefix} ${numStr} | ${sl.content}`);\n }\n }\n lines.push(` ⚠ ${issue.message}`);\n }\n }\n lines.push('');\n }\n return lines.join('\\n');\n });\n\n /** Checkbox toggle egyedi review-ra. */\n handleToggleReview(reviewId: string): void {\n this.selectedReviewIds_$.update((set: Set<string>): Set<string> => {\n const next: Set<string> = new Set<string>(set);\n if (next.has(reviewId)) {\n next.delete(reviewId);\n } else {\n next.add(reviewId);\n }\n return next;\n });\n }\n\n /** Összes kijelölése / kijelölés törlése. */\n handleToggleAll(): void {\n const allIds: string[] = this.reviewsMeta.map(\n (r: DT_DeveloperReviewMeta_Response): string => r.reviewId,\n );\n const isAllSelected: boolean = this.selectedReviewIds_$().size === allIds.length;\n if (isAllSelected) {\n this.selectedReviewIds_$.set(new Set<string>());\n } else {\n this.selectedReviewIds_$.set(new Set<string>(allIds));\n }\n }\n\n /** Kiválasztott review-k futtatása. */\n handleRunSelected(): void {\n const ids: string[] = Array.from(this.selectedReviewIds_$());\n this.runReviews.emit(ids.length > 0 ? ids : undefined);\n }\n\n /** Összes review futtatása. */\n handleRunAll(): void {\n this.runReviews.emit(undefined);\n }\n\n /** Egyetlen review futtatása (sorból). */\n handleRunSingle(reviewId: string): void {\n this.runReviews.emit([reviewId]);\n }\n}\n", "<div class=\"flex flex-col gap-4\">\n\n <!-- Fejléc: cím + akciógombok -->\n <div class=\"flex items-center justify-between gap-3 flex-wrap\">\n <h2 class=\"text-base font-semibold text-neutral-200\">Code Reviews</h2>\n <div class=\"flex items-center gap-2\">\n <button type=\"button\"\n (click)=\"handleRunSelected()\"\n [disabled]=\"isRunning || !hasSelection_$()\"\n class=\"px-3 py-1.5 border border-neonCyan rounded text-neonCyan text-xs font-semibold\n hover:bg-neonCyan/10 transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (isRunning) { Running... } @else { Run Selected }\n </button>\n <button type=\"button\"\n (click)=\"handleRunAll()\"\n [disabled]=\"isRunning\"\n class=\"px-3 py-1.5 border border-ccapAccent rounded text-ccapAccent text-xs font-semibold\n hover:bg-ccapAccent/10 transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (isRunning) { Running... } @else { Run All }\n </button>\n </div>\n </div>\n\n <!-- Review lista – meta loading/error/empty state -->\n <app-s-content-state\n [isLoading]=\"isMetaLoading\"\n [error]=\"metaError\"\n [isEmpty]=\"reviewsMeta.length === 0\"\n emptyMessage=\"Nincs elérhető review.\"\n errorSourceLabel=\"Review meta\"\n (retry)=\"refreshMeta.emit()\">\n </app-s-content-state>\n\n <!-- Review lista – checkboxok -->\n @if (!isMetaLoading && !metaError && reviewsMeta.length > 0) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n\n <!-- Select All fejléc -->\n <label class=\"flex items-center gap-2 pb-3 mb-3 border-b border-neutral-700 cursor-pointer\n text-xs text-neutral-400 hover:text-neutral-200 transition-colors duration-200\">\n <input type=\"checkbox\"\n [checked]=\"selectedReviewIds_$().size === reviewsMeta.length && reviewsMeta.length > 0\"\n (change)=\"handleToggleAll()\"\n class=\"accent-ccapAccent w-3.5 h-3.5\" />\n Select All ({{ reviewsMeta.length }})\n </label>\n\n <!-- Review sorok -->\n <div class=\"flex flex-col gap-1.5 max-h-[480px] overflow-y-auto\">\n @for (review of reviewsMeta; track review.reviewId) {\n <div class=\"flex items-center gap-3 py-1.5 px-1 rounded\n hover:bg-neutral-700/40 transition-colors duration-150\">\n <input type=\"checkbox\"\n [checked]=\"selectedReviewIds_$().has(review.reviewId)\"\n (change)=\"handleToggleReview(review.reviewId)\"\n class=\"accent-ccapAccent w-3.5 h-3.5 shrink-0 cursor-pointer\" />\n <div class=\"flex-1 min-w-0\">\n <span class=\"text-sm text-neutral-200 font-medium\">{{ review.name }}</span>\n <span class=\"text-xs text-neutral-500 ml-2\">{{ review.description }}</span>\n </div>\n <button type=\"button\"\n (click)=\"handleRunSingle(review.reviewId)\"\n [disabled]=\"isRunning\"\n class=\"shrink-0 px-2 py-0.5 text-[10px] border border-neutral-600 rounded\n text-neutral-400 hover:border-neonCyan hover:text-neonCyan\n transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n Run\n </button>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Futtatási hiba -->\n @if (runError) {\n <app-s-content-state\n [isLoading]=\"false\"\n [error]=\"runError\"\n [isEmpty]=\"false\"\n errorSourceLabel=\"Review futtatás\">\n </app-s-content-state>\n }\n\n <!-- Eredmények – plain text nézet, pontosan ahogy a tool visszaadja -->\n @if (reviewResult) {\n <div class=\"flex flex-col gap-2 mt-2\">\n <div class=\"flex items-center justify-end\">\n <app-s-copy-button\n [content]=\"clipboardText_$()\"\n buttonTitle=\"Riport másolása\">\n </app-s-copy-button>\n </div>\n <pre class=\"rounded-lg bg-neutral-900/80 border border-neonDefault p-4\n text-xs text-neutral-300 font-mono whitespace-pre-wrap\n overflow-x-auto max-h-[600px] overflow-y-auto leading-relaxed\">{{ clipboardText_$() }}</pre>\n </div>\n }\n\n</div>\n", "import {\n Component,\n computed,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n signal,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n PM_ControlEntryMutationMode_Type,\n PM_ControlFileType_Type,\n PM_ControlFileContent_Response,\n PM_UserInputEntry_Interface,\n} from '../../../../../_models/server-index';\nimport { PM_CcLaunchWizard_Component } from '../../pm-cc-launch-wizard/pm-cc-launch-wizard.component';\nimport { PM_EntryRawModal_Component } from '../../pm-entry-raw-modal/pm-entry-raw-modal.component';\nimport { PM_UserInputWizard_Component } from '../pm-user-input-wizard/pm-user-input-wizard.component';\nimport { PM_ControlEntryEditModal_Component } from '../pm-entry-mutation-ui/pm-control-entry-edit-modal.component';\nimport { PM_ItemRowActions_Component } from '../pm-entry-mutation-ui/pm-item-row-actions.component';\nimport { PM_CcLaunchPrompt_Util } from '../../../_collections/utils/pm-cc-launch-prompt.util';\nimport { CCAP_GlobalError_ControlService } from '../../../../../_services/control-services/ccap-global-error.control-service';\nimport { ProjectManagement_DataService } from '../../../_services/data-services/project-management.data-service';\nimport { S_ContentState_Component } from '../../../../shared/_components/s-content-state/s-content-state.component';\nimport { PM_ControlFilePreambleDisclosure_Component } from '../pm-control-file-preamble-disclosure/pm-control-file-preamble-disclosure.component';\nimport { S_Modal_Component } from '../../../../shared/_components/s-modal/s-modal.component';\n\n/** Egy USER-INPUT sor a listában — stabil @for track (kód + index). */\ntype PM_UserInputTabRow_Type = {\n stableId: string;\n entry: PM_UserInputEntry_Interface;\n};\n\n/**\n * USER-INPUT.md (multi-file) tab — parse-olt entry-k megjelenítése (Etalon formátum).\n * Fejlécből New USER-INPUT wizard; soronként Edit/Remove és CC Session work/review.\n */\n@Component({\n selector: 'app-pm-user-input-tab',\n standalone: true,\n imports: [\n CommonModule,\n S_ContentState_Component,\n PM_EntryRawModal_Component,\n S_Modal_Component,\n PM_UserInputWizard_Component,\n PM_CcLaunchWizard_Component,\n PM_ControlEntryEditModal_Component,\n PM_ItemRowActions_Component,\n PM_ControlFilePreambleDisclosure_Component,\n ],\n templateUrl: './pm-user-input-tab.component.html',\n})\n/** PM_UserInputTab_Component class. */\nexport class PM_UserInputTab_Component implements OnChanges {\n\n @Input() fileContent: PM_ControlFileContent_Response<PM_UserInputEntry_Interface> | null = null;\n @Input() isLoading: boolean = false;\n @Input() error: unknown | null = null;\n\n @Input() projectId: string = '';\n\n @Input() workspacePath: string | undefined;\n\n @Output() readonly refresh: EventEmitter<void> = new EventEmitter<void>();\n\n private readonly pm_DS: ProjectManagement_DataService = inject(ProjectManagement_DataService);\n private readonly globalError_CS: CCAP_GlobalError_ControlService =\n inject(CCAP_GlobalError_ControlService);\n\n readonly displayRows_$ = signal<PM_UserInputTabRow_Type[]>([]);\n\n readonly rawModalOpen_$ = signal<boolean>(false);\n readonly rawModalTitle_$ = signal<string>('');\n readonly rawModalBody_$ = signal<string>('');\n\n readonly userInputWizardModalOpen_$ = signal<boolean>(false);\n\n /**\n * REQ-QI-008: true ha a wizard skip-suggest módban nyílt (közvetlen létrehozás — AI Format rejtve).\n */\n readonly userInputWizardSkipSuggest_$ = signal<boolean>(false);\n\n readonly entryMutationBusy_$ = signal<boolean>(false);\n\n readonly ccLaunchOpen_$ = signal<boolean>(false);\n readonly ccLaunchTitle_$ = signal<string>('');\n readonly ccLaunchLabel_$ = signal<string>('');\n readonly ccLaunchBasePrompt_$ = signal<string>('');\n\n readonly editModalOpen_$ = signal<boolean>(false);\n readonly editModalTitle_$ = signal<string>('');\n readonly editModalInitial_$ = signal<string>('');\n private editPriorBlock_: string = '';\n\n /** `S_Modal` megerősítő — USER-INPUT entry törlés. */\n readonly confirmModalOpen_$ = signal<boolean>(false);\n readonly confirmModalTitle_$ = signal<string>('');\n readonly confirmModalBody_$ = signal<string>('');\n private pendingConfirmAction_: (() => Promise<void>) | null = null;\n\n readonly workspacePathForWizard_$ = computed((): string => this.workspacePath?.trim() ?? '');\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.fileContent) {\n const entries: PM_UserInputEntry_Interface[] = this.fileContent?.entries ?? [];\n const rows: PM_UserInputTabRow_Type[] = entries.map(\n (entry: PM_UserInputEntry_Interface, index: number): PM_UserInputTabRow_Type => ({\n stableId: `${entry.code}:${String(index)}`,\n entry: entry,\n }),\n );\n this.displayRows_$.set(rows);\n }\n }\n\n handleOpenRawUserInput(entry: PM_UserInputEntry_Interface): void {\n this.rawModalTitle_$.set(`USER-INPUT — ${entry.code}`);\n this.rawModalBody_$.set(entry.rawLines.join('\\n'));\n this.rawModalOpen_$.set(true);\n }\n\n handleCloseRawModal(): void {\n this.rawModalOpen_$.set(false);\n this.rawModalTitle_$.set('');\n this.rawModalBody_$.set('');\n }\n\n handleOpenUserInputWizardModal(): void {\n this.userInputWizardSkipSuggest_$.set(false);\n this.userInputWizardModalOpen_$.set(true);\n }\n\n /**\n * REQ-QI-008: USER-INPUT létrehozás wizard nélkül (skip-suggest) — AI Format rejtve,\n * review blokk azonnal látható.\n */\n handleOpenUserInputDirectCreateModal(): void {\n this.userInputWizardSkipSuggest_$.set(true);\n this.userInputWizardModalOpen_$.set(true);\n }\n\n handleCloseUserInputWizardModal(): void {\n this.userInputWizardModalOpen_$.set(false);\n this.userInputWizardSkipSuggest_$.set(false);\n }\n\n handleUserInputWizardCompleted(): void {\n this.userInputWizardModalOpen_$.set(false);\n this.userInputWizardSkipSuggest_$.set(false);\n }\n\n handleOpenCcWork(entry: PM_UserInputEntry_Interface): void {\n this.ccLaunchTitle_$.set(`CC Session — USER-INPUT ${entry.code}`);\n this.ccLaunchLabel_$.set(`PM UI ${entry.code}`);\n this.ccLaunchBasePrompt_$.set(PM_CcLaunchPrompt_Util.buildUserInputWorkPrompt(entry));\n this.ccLaunchOpen_$.set(true);\n }\n\n handleOpenCcReview(entry: PM_UserInputEntry_Interface): void {\n this.ccLaunchTitle_$.set(`CC Session — Review USER-INPUT ${entry.code}`);\n this.ccLaunchLabel_$.set(`PM UI review ${entry.code}`);\n this.ccLaunchBasePrompt_$.set(PM_CcLaunchPrompt_Util.buildUserInputReviewPrompt(entry));\n this.ccLaunchOpen_$.set(true);\n }\n\n handleCcLaunchClosed(): void {\n this.ccLaunchOpen_$.set(false);\n this.ccLaunchBasePrompt_$.set('');\n }\n\n handleOpenEdit(entry: PM_UserInputEntry_Interface): void {\n if (!this.projectId.trim().length) {\n return;\n }\n const prior: string = entry.rawLines.join('\\n');\n this.editPriorBlock_ = prior;\n this.editModalTitle_$.set(`Edit USER-INPUT — ${entry.code}`);\n this.editModalInitial_$.set(prior);\n this.editModalOpen_$.set(true);\n }\n\n handleEditModalClosed(): void {\n this.editModalOpen_$.set(false);\n this.editPriorBlock_ = '';\n }\n\n async handleEditSaved(params: { newRawBlock: string }): Promise<void> {\n const pid: string = this.projectId.trim();\n const prior: string = this.editPriorBlock_;\n if (!pid.length || !prior.length || this.entryMutationBusy_$()) {\n return;\n }\n this.entryMutationBusy_$.set(true);\n try {\n await this.pm_DS.mutateControlFileEntryAndRefresh(pid, PM_ControlFileType_Type.userInput, {\n mode: PM_ControlEntryMutationMode_Type.update,\n priorRawBlock: prior,\n newRawBlock: params.newRawBlock,\n });\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-user-input-entry-update');\n } finally {\n this.entryMutationBusy_$.set(false);\n }\n }\n\n handleRemove(entry: PM_UserInputEntry_Interface): void {\n const pid: string = this.projectId.trim();\n if (!pid.length || this.entryMutationBusy_$()) {\n return;\n }\n this.confirmModalTitle_$.set('Remove USER-INPUT entry');\n this.confirmModalBody_$.set(`Remove USER-INPUT entry ${entry.code} from file(s)?`);\n this.pendingConfirmAction_ = async (): Promise<void> => {\n await this.executeRemoveUserInputEntry(pid, entry);\n };\n this.confirmModalOpen_$.set(true);\n }\n\n /**\n * USER-INPUT entry törlés mutation (megerősítés után).\n */\n private async executeRemoveUserInputEntry(\n pid: string,\n entry: PM_UserInputEntry_Interface,\n ): Promise<void> {\n const prior: string = entry.rawLines.join('\\n');\n this.entryMutationBusy_$.set(true);\n try {\n await this.pm_DS.mutateControlFileEntryAndRefresh(pid, PM_ControlFileType_Type.userInput, {\n mode: PM_ControlEntryMutationMode_Type.remove,\n priorRawBlock: prior,\n });\n } catch (err: unknown) {\n this.globalError_CS.showError(err, 'pm-user-input-entry-remove');\n } finally {\n this.entryMutationBusy_$.set(false);\n }\n }\n\n /**\n * Megerősítő modal bezárása (backdrop, Escape, X).\n */\n handleConfirmModalDismissed(): void {\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n }\n\n /** Cancel gomb. */\n handleConfirmModalCancel(): void {\n this.handleConfirmModalDismissed();\n }\n\n /** Confirm gomb. */\n async handleConfirmModalConfirm(): Promise<void> {\n const action: (() => Promise<void>) | null = this.pendingConfirmAction_;\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n if (action) {\n await action();\n }\n }\n}\n", "<div class=\"flex flex-col gap-4\">\n <div class=\"flex flex-col gap-2\">\n @if (projectId) {\n <div class=\"flex flex-wrap gap-2\">\n <button type=\"button\"\n (click)=\"handleOpenUserInputWizardModal()\"\n class=\"px-3 py-1.5 border border-ccapAccent rounded text-ccapAccent text-xs font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\"\n title=\"Open the multi-step AI-assisted USER-INPUT wizard; guides refinement before writing to the repo.\">\n New USER-INPUT (wizard)\n </button>\n <button type=\"button\"\n (click)=\"handleOpenUserInputDirectCreateModal()\"\n class=\"px-3 py-1.5 border border-neutral-500 rounded text-neutral-200 text-xs font-semibold\n hover:border-neonCyan hover:text-neonCyan transition-colors duration-200\"\n title=\"Skip the AI Format step — go straight to the meta-field review form (REQ-QI-008).\">\n New USER-INPUT (direct)\n </button>\n </div>\n }\n <div class=\"flex items-center justify-between gap-3 flex-wrap\">\n <div class=\"flex items-center gap-3 flex-wrap\">\n <h3 class=\"text-sm font-semibold text-neutral-200\">USER-INPUT (repo)</h3>\n @if (\n fileContent != null\n && fileContent.metadata != null\n && fileContent.metadata.fileCount !== undefined\n && fileContent.metadata.fileCount > 1\n ) {\n <span class=\"text-xs text-neutral-500\">{{ fileContent.metadata.fileCount }} files</span>\n }\n @if (fileContent != null && fileContent.metadata != null && fileContent.metadata.lineCount) {\n <span class=\"text-xs text-neutral-500\">{{ fileContent.metadata.lineCount }} lines</span>\n }\n @if (fileContent?.entries?.length) {\n <span class=\"text-xs text-neutral-400\">{{ fileContent!.entries.length }} entries</span>\n }\n </div>\n <button type=\"button\"\n (click)=\"refresh.emit()\"\n class=\"px-3 py-1.5 border border-neutral-500 rounded text-neutral-300 text-xs font-semibold shrink-0\n hover:border-ccapAccent hover:text-ccapAccent transition-colors duration-200\">\n Refresh\n </button>\n </div>\n </div>\n\n <app-pm-control-file-preamble-disclosure [filePreamble]=\"fileContent?.filePreamble\">\n </app-pm-control-file-preamble-disclosure>\n\n <app-s-content-state [isLoading]=\"isLoading\"\n [error]=\"error\"\n [isEmpty]=\"!fileContent || !fileContent.exists\"\n [emptyMessage]=\"'No USER-INPUT*.md found (root, __specifications, __documentations, docs).'\"\n [loadingMessage]=\"'Loading…'\"\n (retry)=\"refresh.emit()\">\n\n @if (fileContent && fileContent.error) {\n <div class=\"rounded-lg bg-amber-900/20 border border-amber-800/50 p-3 mb-3\">\n <p class=\"text-amber-200 text-xs font-medium mb-1\">Partial read / parse warnings</p>\n <p class=\"text-amber-400/90 text-xs whitespace-pre-wrap\">{{ fileContent.error }}</p>\n </div>\n }\n\n @if (fileContent && fileContent.exists && fileContent.entries.length === 0) {\n <p class=\"text-neutral-500 text-sm\">File exists but no parseable USER-INPUT blocks (expected ### [TYPE] (CODE) …).</p>\n }\n\n <div class=\"flex flex-col gap-2\">\n @for (row of displayRows_$(); track row.stableId) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <div class=\"flex items-start justify-between gap-2 flex-wrap w-full\">\n <div class=\"flex items-start gap-2 flex-wrap min-w-0 flex-1\">\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-700 text-neutral-300 border border-neutral-600\n font-mono uppercase shrink-0\">\n {{ row.entry.type }}\n </span>\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-900 text-neonCyan border border-neonCyan/40\n font-mono shrink-0\">\n {{ row.entry.code }}\n </span>\n <div class=\"flex gap-1 shrink-0 text-base leading-none\" title=\"E1 Spec · E2 Impl · E3 Test · E4 Done\">\n <span>{{ row.entry.e1 }}</span>\n <span>{{ row.entry.e2 }}</span>\n <span>{{ row.entry.e3 }}</span>\n <span>{{ row.entry.e4 }}</span>\n </div>\n </div>\n <button type=\"button\"\n class=\"shrink-0 p-1.5 rounded-full border border-neutral-600/60 text-neutral-400\n hover:border-ccapAccent hover:text-ccapAccent transition-colors\"\n title=\"Raw block lines\"\n (click)=\"handleOpenRawUserInput(row.entry)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\"\n stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z\" />\n </svg>\n </button>\n </div>\n <div class=\"flex flex-wrap gap-x-4 gap-y-1 mt-2 text-xs text-neutral-400\">\n @if (row.entry.priority) {\n <span>\n <span class=\"text-neutral-500\">priority:</span>\n <span class=\"font-medium\"\n [class.text-red-400]=\"row.entry.priority === 'urgent'\"\n [class.text-amber-400]=\"row.entry.priority === 'high'\"\n [class.text-neutral-300]=\"row.entry.priority === 'medium' || row.entry.priority === 'low'\">\n {{ row.entry.priority }}\n </span>\n </span>\n }\n @if (row.entry.source) {\n <span><span class=\"text-neutral-500\">source:</span> {{ row.entry.source }}</span>\n }\n @if (row.entry.area) {\n <span><span class=\"text-neutral-500\">area:</span> {{ row.entry.area }}</span>\n }\n @if (row.entry.phase) {\n <span><span class=\"text-neutral-500\">phase:</span> {{ row.entry.phase }}</span>\n }\n @if (row.entry.isAriLess) {\n <span class=\"text-neutral-500\">ari-less</span>\n }\n </div>\n @if (row.entry.details) {\n <p class=\"text-neutral-400 text-xs mt-2 border-l-2 border-neutral-600 pl-2\">{{ row.entry.details }}</p>\n }\n @if (row.entry.extraFields && (row.entry.extraFields | keyvalue).length > 0) {\n <div class=\"flex flex-wrap gap-2 mt-2\">\n @for (kv of row.entry.extraFields | keyvalue; track kv.key) {\n <span class=\"px-1.5 py-0.5 text-[10px] rounded bg-neutral-900/80 text-neutral-400 border border-neutral-700 font-mono\">\n {{ kv.key }}: {{ kv.value }}\n </span>\n }\n </div>\n }\n @if (row.entry.rawUserInput) {\n <p class=\"text-neutral-200 text-sm mt-3 whitespace-pre-wrap border-t border-neutral-700/60 pt-3\">\n {{ row.entry.rawUserInput }}\n </p>\n }\n <app-pm-item-row-actions\n [showCcFix]=\"false\"\n [showCcWork]=\"true\"\n [showCcReview]=\"true\"\n [disabledCc]=\"!workspacePath?.trim()\"\n [disabledEdit]=\"entryMutationBusy_$()\"\n [disabledRemove]=\"entryMutationBusy_$()\"\n (edit)=\"handleOpenEdit(row.entry)\"\n (remove)=\"handleRemove(row.entry)\"\n (ccWork)=\"handleOpenCcWork(row.entry)\"\n (ccReview)=\"handleOpenCcReview(row.entry)\">\n </app-pm-item-row-actions>\n </div>\n }\n </div>\n </app-s-content-state>\n\n <app-pm-entry-raw-modal\n [isOpen]=\"rawModalOpen_$()\"\n [title]=\"rawModalTitle_$()\"\n [rawText]=\"rawModalBody_$()\"\n (closed)=\"handleCloseRawModal()\">\n </app-pm-entry-raw-modal>\n\n @if (projectId) {\n <app-s-modal [isOpen]=\"userInputWizardModalOpen_$()\"\n [title]=\"userInputWizardSkipSuggest_$() ? 'New USER-INPUT (direct)' : 'New USER-INPUT (wizard)'\"\n maxWidth=\"5xl\"\n headerBorderClass=\"border-ccapAccent/30\"\n (closed)=\"handleCloseUserInputWizardModal()\">\n <app-pm-user-input-wizard [projectId]=\"projectId\"\n [isEmbeddedInModal]=\"true\"\n [skipSuggestMode]=\"userInputWizardSkipSuggest_$()\"\n (wizardCompleted)=\"handleUserInputWizardCompleted()\">\n </app-pm-user-input-wizard>\n </app-s-modal>\n }\n\n <app-pm-cc-launch-wizard\n [isOpen]=\"ccLaunchOpen_$()\"\n [modalTitle]=\"ccLaunchTitle_$()\"\n [sessionLabel]=\"ccLaunchLabel_$()\"\n [basePrompt]=\"ccLaunchBasePrompt_$()\"\n [workspacePath]=\"workspacePathForWizard_$()\"\n (closed)=\"handleCcLaunchClosed()\">\n </app-pm-cc-launch-wizard>\n\n <app-pm-control-entry-edit-modal\n [isOpen]=\"editModalOpen_$()\"\n [title]=\"editModalTitle_$()\"\n [initialText]=\"editModalInitial_$()\"\n (closed)=\"handleEditModalClosed()\"\n (saved)=\"handleEditSaved($event)\">\n </app-pm-control-entry-edit-modal>\n\n <app-s-modal [isOpen]=\"confirmModalOpen_$()\"\n [title]=\"confirmModalTitle_$()\"\n [maxWidth]=\"'md'\"\n (closed)=\"handleConfirmModalDismissed()\">\n <p class=\"text-sm text-neutral-300 whitespace-pre-wrap\">{{ confirmModalBody_$() }}</p>\n <div modal-footer\n class=\"flex items-center justify-end gap-2 px-4 py-3 border-t border-neutral-700 shrink-0 bg-neutral-900/80\">\n <button type=\"button\"\n (click)=\"handleConfirmModalCancel()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neutral-600 text-neutral-300\n hover:bg-neutral-700 transition-colors\">\n Cancel\n </button>\n <button type=\"button\"\n (click)=\"handleConfirmModalConfirm()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neonRed/60 text-neonRed/90\n hover:bg-neonRed/10 transition-colors\">\n Confirm\n </button>\n </div>\n </app-s-modal>\n</div>\n", "import { Component, inject, OnInit, signal } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { PM_UserRequest } from '../../../../_models/server-index';\nimport { PM_UserRequestType_Type } from '../../../../_models/server-index';\nimport { PM_Priority_Type } from '../../../../_models/server-index';\nimport { ProjectManagement_DataService } from '../../_services/data-services/project-management.data-service';\nimport { Terminals_DataService } from '../../../dev/_modules/devtools/_modules/terminals/_services/terminals.data-service';\n\n/** Tab azonosítók a projekt részlet nézethez. */\ntype PM_DetailTab_Type =\n | 'user-requests'\n | 'overview'\n | 'git'\n | 'todo'\n | 'backlog'\n | 'bugs'\n | 'changelog'\n | 'test-error-reports'\n | 'reviews'\n | 'source-ide';\n\n/**\n * Project Management – projekt részlet nézet.\n * Tabokkal: User Input, TODO, Backlog, Bugs, Changelog.\n */\n@Component({\n selector: 'app-pm-project-detail',\n templateUrl: './pm-detail.component.html',\n})\n/** PM_Detail_Component class. */\nexport class PM_Detail_Component implements OnInit {\n\n readonly pm_DS: ProjectManagement_DataService =\n inject(ProjectManagement_DataService);\n\n private readonly terminal_DS: Terminals_DataService =\n inject(Terminals_DataService);\n\n private readonly route: ActivatedRoute = inject(ActivatedRoute);\n private readonly router: Router = inject(Router);\n\n /** Aktív tab. */\n readonly activeTab_$ = signal<PM_DetailTab_Type>('overview');\n\n /** Projekt ID az URL-ből. */\n projectId: string = '';\n\n /** Új user request form látható-e. */\n readonly isNewRequestFormOpen_$ = signal<boolean>(false);\n\n /** Új user request – tartalom (nyers szöveg). */\n readonly newRequestContent_$ = signal<string>('');\n\n /** Új user request – típus. */\n readonly newRequestType_$ = signal<PM_UserRequestType_Type>(PM_UserRequestType_Type.req);\n\n /** Új user request – prioritás. */\n readonly newRequestPriority_$ = signal<PM_Priority_Type>(PM_Priority_Type.medium);\n\n /** Új user request – kód (pl. REQ-UI-001). */\n readonly newRequestCode_$ = signal<string>('');\n\n /** Mentés folyamatban. */\n readonly isSaving_$ = signal<boolean>(false);\n\n /** Mentési hiba. */\n readonly saveError_$ = signal<unknown | null>(null);\n\n /** `S_Modal` megerősítő — package script futtatás előtt. */\n readonly confirmModalOpen_$ = signal<boolean>(false);\n readonly confirmModalTitle_$ = signal<string>('');\n readonly confirmModalBody_$ = signal<string>('');\n private pendingConfirmAction_: (() => Promise<void>) | null = null;\n\n /** Enum értékek a template-ben. */\n readonly requestTypes: PM_UserRequestType_Type[] = Object.values(PM_UserRequestType_Type);\n readonly priorities: PM_Priority_Type[] = Object.values(PM_Priority_Type);\n\n ngOnInit(): void {\n this.projectId = this.route.snapshot.params.projectId as string;\n void this.pm_DS.loadProject(this.projectId);\n void this.pm_DS.loadUserRequests(this.projectId);\n }\n\n /** Fájl tartalmak betöltve-e (lazy load: csak tab nyitáskor töltjük). */\n private isFileContentsLoaded: boolean = false;\n\n /** Review meta betöltve-e (lazy load: csak a Reviews tab nyitásakor töltjük). */\n private isReviewsMetaLoaded: boolean = false;\n\n /** Tab váltás – fájl tartalom lazy loading. */\n setTab(tab: PM_DetailTab_Type): void {\n this.activeTab_$.set(tab);\n // Fájl tartalmak lazy loading: első file-sync tab nyitáskor töltjük.\n const fileTabs: PM_DetailTab_Type[] = [\n 'user-requests',\n 'todo',\n 'backlog',\n 'bugs',\n 'changelog',\n 'test-error-reports',\n ];\n if (fileTabs.includes(tab) && !this.isFileContentsLoaded && this.projectId) {\n this.isFileContentsLoaded = true;\n void this.pm_DS.loadAllFileContents(this.projectId);\n }\n // Reviews tab: meta lazy loading az első megnyitáskor.\n if (tab === 'reviews' && !this.isReviewsMetaLoaded && this.projectId) {\n this.isReviewsMetaLoaded = true;\n void this.pm_DS.loadReviewsMeta(this.projectId);\n }\n }\n\n /** Fájl tartalom újratöltése (tab Refresh gomb). */\n handleFileRefresh(): void {\n if (this.projectId) {\n void this.pm_DS.loadAllFileContents(this.projectId);\n }\n }\n\n /** TEST-ERROR-REPORTS.json ürítése, majd lista frissítése. */\n handleClearTestErrorReports(): void {\n if (this.projectId) {\n void this.pm_DS.clearTestErrorReportsAndRefresh(this.projectId);\n }\n }\n\n /** Git állapot gyors frissítése (csak git, nem teljes sync). */\n handleGitRefresh(): void {\n if (this.projectId) {\n void this.pm_DS.refreshGitStatus(this.projectId);\n }\n }\n\n /** Sync indítása az aktuális projektre. */\n handleSync(): void {\n if (this.projectId) {\n void this.pm_DS.syncProject(this.projectId);\n }\n }\n\n /** Review-ok futtatása (szelektív vagy teljes). */\n handleRunReviews(reviewIds?: string[]): void {\n if (this.projectId) {\n void this.pm_DS.runProjectReviews(this.projectId, reviewIds);\n }\n }\n\n /** Review meta újratöltése. */\n handleReviewsMetaRefresh(): void {\n if (this.projectId) {\n this.isReviewsMetaLoaded = false;\n void this.pm_DS.loadReviewsMeta(this.projectId);\n this.isReviewsMetaLoaded = true;\n }\n }\n\n /** Vissza a projekt listára. */\n goBack(): void {\n void this.router.navigate(['/project-management']);\n }\n\n /**\n * Navigálás a projekt alá tartozó agent-scope-os route-ra (REQ-PM-AGT-001 Slice 3).\n * Pl. `agent-reports` → `/project-management/projects/:projectId/agent-reports`.\n * A cél route-ot a Slice 4 (Reports UI) regisztrálja.\n */\n handleNavigateToAgentRoute(routeSegment: string): void {\n if (!this.projectId || !routeSegment) {\n return;\n }\n void this.router.navigate(['/project-management/projects', this.projectId, routeSegment]);\n }\n\n /** Új request form toggle. */\n toggleNewRequestForm(): void {\n this.isNewRequestFormOpen_$.update((open: boolean): boolean => !open);\n if (!this.isNewRequestFormOpen_$()) {\n this.resetRequestForm();\n }\n }\n\n /** User request mentése. */\n async handleCreateUserRequest(): Promise<void> {\n const content: string = this.newRequestContent_$().trim();\n if (!content) {\n return;\n }\n this.isSaving_$.set(true);\n this.saveError_$.set(null);\n try {\n await this.pm_DS.createUserRequest(this.projectId, {\n content: content,\n type: this.newRequestType_$(),\n priority: this.newRequestPriority_$(),\n code: this.newRequestCode_$().trim() || undefined,\n });\n this.isNewRequestFormOpen_$.set(false);\n this.resetRequestForm();\n } catch (err: unknown) {\n this.saveError_$.set(err);\n } finally {\n this.isSaving_$.set(false);\n }\n }\n\n /** User request archiválása (törlés). */\n async handleArchiveUserRequest(request: PM_UserRequest): Promise<void> {\n if (!request._id) {\n return;\n }\n try {\n await this.pm_DS.updateUserRequest(this.projectId, request._id, {\n status: undefined,\n });\n } catch {\n // hiba a UI-ban jelenik meg\n }\n }\n\n /**\n * Package script futtatása terminálban — `S_Modal` megerősítés után indít.\n * A terminal a projekt localPath-jában indul, majd a `pnpm <scriptName>` parancsot futtatja.\n */\n handleRunScript(scriptName: string): void {\n const project = this.pm_DS.activeProject_$();\n if (!project?.localPath) {\n return;\n }\n const localPath: string = project.localPath;\n const name: string = project.name ?? '';\n this.confirmModalTitle_$.set('Run package script');\n this.confirmModalBody_$.set(\n `Futtatás: pnpm ${scriptName}\\nProjekt: ${name}\\nÚtvonal: ${localPath}`,\n );\n this.pendingConfirmAction_ = async (): Promise<void> => {\n try {\n await this.terminal_DS.startTerminalRest({ path: localPath });\n await this.terminal_DS.runCommand({ action: 'shell', command: `pnpm ${scriptName}` });\n } catch {\n // Hiba a terminal data service signal-okon keresztül jelenik meg.\n }\n };\n this.confirmModalOpen_$.set(true);\n }\n\n /**\n * Megerősítő modal bezárása (backdrop, Escape, X) — pending action törlése.\n */\n handleConfirmModalDismissed(): void {\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n }\n\n /** Cancel gomb a megerősítő modal-ban. */\n handleConfirmModalCancel(): void {\n this.handleConfirmModalDismissed();\n }\n\n /** Confirm gomb: pending terminal action futtatása. */\n async handleConfirmModalConfirm(): Promise<void> {\n const action: (() => Promise<void>) | null = this.pendingConfirmAction_;\n this.pendingConfirmAction_ = null;\n this.confirmModalOpen_$.set(false);\n this.confirmModalTitle_$.set('');\n this.confirmModalBody_$.set('');\n if (action) {\n await action();\n }\n }\n\n /** Form reset. */\n private resetRequestForm(): void {\n this.newRequestContent_$.set('');\n this.newRequestType_$.set(PM_UserRequestType_Type.req);\n this.newRequestPriority_$.set(PM_Priority_Type.medium);\n this.newRequestCode_$.set('');\n this.saveError_$.set(null);\n }\n}\n", "<div class=\"flex flex-col min-h-full text-neutral-100 p-4 gt-xs:p-6\">\n\n <!-- Fejléc -->\n <header class=\"mb-6\">\n <button type=\"button\"\n (click)=\"goBack()\"\n class=\"flex items-center gap-2 text-neutral-400 text-sm hover:text-neutral-200\n transition-colors duration-200 mb-3\">\n <svg class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 19l-7-7 7-7\"/>\n </svg>\n Projektek\n </button>\n @if (pm_DS.activeProjectLoading_$()) {\n <p class=\"text-neutral-400 text-sm\">Betöltés…</p>\n } @else if (pm_DS.activeProject_$()) {\n @let project = pm_DS.activeProject_$()!;\n <div class=\"flex flex-wrap items-start gap-3\">\n <div class=\"min-w-0 flex-1\">\n <div class=\"flex items-center gap-3 mb-1\">\n <h1 class=\"text-2xl gt-xs:text-3xl font-bold text-neutral-100 break-words\">\n {{ project.name }}\n </h1>\n <!-- Sync gomb -->\n <button type=\"button\"\n (click)=\"handleSync()\"\n [disabled]=\"pm_DS.syncLoading_$()\"\n class=\"shrink-0 px-3 py-1 border border-neutral-500 rounded text-neutral-300 text-xs font-semibold\n hover:border-neonCyan hover:text-neonCyan transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (pm_DS.syncLoading_$()) { Syncing... } @else { Sync }\n </button>\n </div>\n @if (project.description) {\n <p class=\"text-neutral-400 text-sm mt-1\">{{ project.description }}</p>\n }\n <!-- Git + version badges -->\n @if (project.gitBranch || project.packageVersion || project.localPath) {\n <div class=\"flex flex-wrap gap-2 mt-2\">\n @if (project.gitBranch) {\n <span class=\"px-2 py-0.5 text-xs rounded border font-mono\"\n [class]=\"project.gitStatus === 'clean'\n ? 'bg-green-900/30 text-green-300 border-green-800'\n : project.gitStatus === 'dirty'\n ? 'bg-yellow-900/30 text-yellow-300 border-yellow-800'\n : 'bg-neutral-800 text-neutral-400 border-neutral-700'\">\n {{ project.gitBranch }}\n @if (project.gitStatus === 'dirty') { * }\n </span>\n }\n @if (project.packageVersion) {\n <span class=\"px-2 py-0.5 text-xs rounded bg-blue-900/30 text-blue-300 border border-blue-800 font-mono\">\n v{{ project.packageVersion }}\n </span>\n }\n @if (project.gitAheadBehind && project.gitAheadBehind !== 'ahead 0 / behind 0') {\n <span class=\"px-2 py-0.5 text-xs rounded bg-purple-900/30 text-purple-300 border border-purple-800 font-mono\">\n {{ project.gitAheadBehind }}\n </span>\n }\n @if (project.lastSyncAt) {\n <span class=\"text-neutral-500 text-xs self-center\">\n synced: {{ project.lastSyncAt | date:'MM.dd HH:mm' }}\n </span>\n }\n </div>\n }\n @if (project.localPath) {\n <p class=\"text-neutral-600 text-xs font-mono mt-1 truncate max-w-xl\">{{ project.localPath }}</p>\n }\n </div>\n </div>\n <!-- Sync hiba -->\n @if (pm_DS.syncError_$()) {\n <p class=\"text-red-400 text-xs mt-2\">Sync hiba - kerjuk probald ujra.</p>\n }\n <!-- Sync report (REQ-PM-SYNC-001) — legutóbbi sync eredménye -->\n @if (pm_DS.lastSyncResult_$(); as sync) {\n <div class=\"mt-3 rounded-md border px-3 py-2 text-xs gt-xs:text-sm\"\n [class]=\"sync.syncStatus === 'success'\n ? 'border-green-700/60 bg-green-950/30 text-green-100'\n : sync.syncStatus === 'partial'\n ? 'border-amber-600/60 bg-amber-950/30 text-amber-100'\n : 'border-red-700/60 bg-red-950/30 text-red-100'\">\n <div class=\"flex flex-wrap items-center gap-x-3 gap-y-1\">\n <span class=\"font-semibold uppercase tracking-wide\">\n Sync — {{ sync.syncStatus }}\n </span>\n <span class=\"text-neutral-400 font-mono text-[10px] gt-xs:text-xs\">\n {{ sync.durationMs }}ms\n </span>\n <span class=\"text-neutral-500 font-mono text-[10px] gt-xs:text-xs\">\n {{ sync.syncedAt | date:'yyyy-MM-dd HH:mm:ss' }}\n </span>\n </div>\n @if (sync.summary) {\n <p class=\"mt-1 text-neutral-200\">{{ sync.summary }}</p>\n }\n @if (sync.gitInfo?.autoPulled && sync.gitInfo?.autoPullResult) {\n <p class=\"mt-1 text-neutral-300 font-mono text-[10px] gt-xs:text-xs\">\n auto-pull: {{ sync.gitInfo?.autoPullResult }}\n </p>\n }\n @if (sync.errors.length > 0) {\n <ul class=\"mt-1 list-disc list-inside text-red-200\">\n @for (err of sync.errors; track err) {\n <li class=\"break-words\">{{ err }}</li>\n }\n </ul>\n }\n </div>\n }\n }\n </header>\n\n <!-- Betöltési hiba -->\n @if (pm_DS.activeProjectError_$()) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-red-500/50 p-5 max-w-lg mb-6\">\n <p class=\"text-red-400 text-sm\">Projekt betöltése sikertelen.</p>\n </div>\n }\n\n <!-- Tab nav -->\n <nav class=\"flex gap-1 border-b border-neonDefault mb-6 overflow-x-auto\">\n @for (tab of [\n { id: 'overview', label: 'Overview' },\n { id: 'git', label: 'Git' },\n { id: 'user-requests', label: 'User Input' },\n { id: 'todo', label: 'TODO' },\n { id: 'backlog', label: 'Backlog' },\n { id: 'bugs', label: 'Bugs' },\n { id: 'changelog', label: 'Changelog' },\n { id: 'test-error-reports', label: 'Error reports' },\n { id: 'reviews', label: 'Reviews' },\n { id: 'source-ide', label: 'Source IDE' }\n ]; track tab.id) {\n <button type=\"button\"\n (click)=\"setTab($any(tab.id))\"\n class=\"px-4 py-2.5 text-sm font-medium border-b-2 transition-colors duration-200\n whitespace-nowrap -mb-px\"\n [class.border-ccapAccent]=\"activeTab_$() === tab.id\"\n [class.text-ccapAccent]=\"activeTab_$() === tab.id\"\n [class.border-transparent]=\"activeTab_$() !== tab.id\"\n [class.text-neutral-400]=\"activeTab_$() !== tab.id\"\n [class.hover:text-neutral-200]=\"activeTab_$() !== tab.id\">\n {{ tab.label }}\n </button>\n }\n </nav>\n\n <!-- Tab: Overview -->\n @if (activeTab_$() === 'overview' && pm_DS.activeProject_$()) {\n @let p = pm_DS.activeProject_$()!;\n <div class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\n\n <!-- Git summary card (részletek a Git tab-on) -->\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <div class=\"flex items-center justify-between mb-3\">\n <h3 class=\"text-sm font-semibold text-neutral-300\">Git</h3>\n <button type=\"button\"\n (click)=\"setTab('git')\"\n class=\"text-[10px] text-neutral-500 hover:text-neonCyan transition-colors duration-200\">\n Git tab &rarr;\n </button>\n </div>\n @if (p.gitInfo) {\n <div class=\"flex flex-col gap-2 text-xs\">\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Branch</span>\n <span class=\"text-neutral-200 font-mono\">{{ p.gitInfo.branch }}</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Status</span>\n <span class=\"font-mono\"\n [class]=\"p.gitInfo.status === 'clean' ? 'text-green-400' : p.gitInfo.status === 'dirty' ? 'text-yellow-400' : 'text-neutral-400'\">\n {{ p.gitInfo.status }}\n </span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Ahead/Behind</span>\n <span class=\"text-neutral-300 font-mono\">{{ p.gitInfo.aheadBehind }}</span>\n </div>\n @if (p.gitInfo.uncommittedFiles.length > 0) {\n <span class=\"text-yellow-400 mt-1\">{{ p.gitInfo.uncommittedFiles.length }} uncommitted file(s)</span>\n }\n </div>\n } @else if (p.gitStatus === 'no-git') {\n <p class=\"text-neutral-500 text-xs\">Nem git repository.</p>\n } @else {\n <p class=\"text-neutral-500 text-xs\">Nincs adat – futtass Git Refresh-t vagy Sync-et.</p>\n }\n </div>\n\n <!-- Package info card -->\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <h3 class=\"text-sm font-semibold text-neutral-300 mb-3\">Package</h3>\n @if (p.packageInfo) {\n <div class=\"flex flex-col gap-2 text-xs\">\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Name</span>\n <span class=\"text-neutral-200 font-mono\">{{ p.packageInfo.packageName }}</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Version</span>\n <span class=\"text-blue-300 font-mono\">{{ p.packageInfo.packageVersion }}</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Dependencies</span>\n <span class=\"text-neutral-300\">{{ p.packageInfo.packageDependencyCount }}</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">DevDependencies</span>\n <span class=\"text-neutral-300\">{{ p.packageInfo.packageDevDependencyCount }}</span>\n </div>\n @if (p.packageInfo.packageScripts.length > 0) {\n <div class=\"border-t border-neutral-700 pt-2 mt-1\">\n <span class=\"text-neutral-500\">Scripts ({{ p.packageInfo.packageScripts.length }})</span>\n <div class=\"flex flex-wrap gap-1 mt-1\">\n @for (script of p.packageInfo.packageScripts; track script) {\n <button type=\"button\"\n (click)=\"handleRunScript(script)\"\n class=\"px-1.5 py-0.5 text-[10px] rounded bg-neutral-900 text-neutral-400\n border border-neutral-700 font-mono cursor-pointer\n hover:border-neonCyan hover:text-neonCyan transition-colors duration-200\"\n [title]=\"'Futtatás: pnpm ' + script\">\n {{ script }}\n </button>\n }\n </div>\n </div>\n }\n </div>\n } @else {\n <p class=\"text-neutral-500 text-xs\">Nincs sync adat. Nyomj Sync-et.</p>\n }\n </div>\n\n <!-- Artifacts card -->\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <h3 class=\"text-sm font-semibold text-neutral-300 mb-3\">Artifacts</h3>\n @if (p.artifacts) {\n <div class=\"flex flex-col gap-1.5 text-xs\">\n @for (artifact of [\n { key: 'todoMd', label: 'TODO.md', tab: 'todo' },\n { key: 'backlogMd', label: 'BACKLOG.md', tab: 'backlog' },\n { key: 'changelogMd', label: 'CHANGELOG.md', tab: 'changelog' },\n { key: 'bugsMd', label: 'BUGS.md', tab: 'bugs' },\n { key: 'userInputMd', label: 'USER-INPUT.md', tab: 'user-requests' },\n { key: 'specifications', label: '__specifications/', tab: '' },\n { key: 'agent', label: '__agent/', tab: '' },\n { key: 'documentations', label: '__documentations/', tab: '' },\n { key: 'statusMd', label: 'STATUS.md', tab: '' },\n { key: 'claudeMd', label: 'CLAUDE.md', tab: '' }\n ]; track artifact.key) {\n @let state = $any(p.artifacts)[artifact.key];\n <div class=\"flex items-center justify-between gap-2 rounded px-1 -mx-1 py-0.5\"\n [ngClass]=\"{ 'cursor-pointer hover:bg-neutral-700/40': artifact.tab }\"\n (click)=\"artifact.tab ? setTab($any(artifact.tab)) : null\">\n <span class=\"font-mono\" [class]=\"state?.exists ? 'text-neutral-200' : 'text-neutral-600'\">\n {{ artifact.label }}\n </span>\n <div class=\"flex items-center gap-2\">\n @if (state?.exists) {\n @if (state.sizeBytes !== undefined) {\n <span class=\"text-neutral-500\">{{ state.sizeBytes > 1024 ? (state.sizeBytes / 1024 | number:'1.0-0') + 'KB' : state.sizeBytes + 'B' }}</span>\n }\n @if (state.lineCount !== undefined) {\n <span class=\"text-neutral-500\">{{ state.lineCount }}L</span>\n }\n @if (state.entryCount !== undefined) {\n <span class=\"text-neutral-400 font-medium\" title=\"Parsed item count (same parsers as file sync)\">\n {{ state.entryCount }} items\n </span>\n }\n <span class=\"w-2 h-2 rounded-full bg-green-500\"></span>\n } @else {\n <span class=\"w-2 h-2 rounded-full bg-neutral-700\"></span>\n }\n @if (artifact.tab) {\n <span class=\"text-[10px] text-neutral-600 group-hover:text-neutral-400\">&rarr;</span>\n }\n </div>\n </div>\n }\n\n <!-- REQ-PM-AGT-001 Slice 3: Agent activity subsection -->\n <div class=\"mt-3 pt-2 border-t border-neutral-700/60\">\n <div class=\"text-[11px] uppercase tracking-wide text-neutral-500 mb-1 font-semibold\">\n Agent activity\n </div>\n @for (artifact of [\n { key: 'agentStatusMd', label: '__agent/STATUS.md', route: '' },\n { key: 'agentUserInputMd', label: '__agent/USER_INPUT.md', route: '' },\n { key: 'agentReports', label: '__agent/reports/', route: 'agent-reports' }\n ]; track artifact.key) {\n @let state = $any(p.artifacts)[artifact.key];\n <div class=\"flex items-center justify-between gap-2 rounded px-1 -mx-1 py-0.5\"\n [ngClass]=\"{ 'cursor-pointer hover:bg-neutral-700/40': artifact.route }\"\n (click)=\"artifact.route ? handleNavigateToAgentRoute(artifact.route) : null\">\n <span class=\"font-mono\" [class]=\"state?.exists ? 'text-neutral-200' : 'text-neutral-600'\">\n {{ artifact.label }}\n </span>\n <div class=\"flex items-center gap-2\">\n @if (state?.exists) {\n @if (state.fileCount !== undefined) {\n <span class=\"text-neutral-400 font-medium\" title=\"Agent report files\">\n {{ state.fileCount }} files\n </span>\n }\n @if (state.sizeBytes !== undefined) {\n <span class=\"text-neutral-500\">{{ state.sizeBytes > 1024 ? (state.sizeBytes / 1024 | number:'1.0-0') + 'KB' : state.sizeBytes + 'B' }}</span>\n }\n @if (state.lineCount !== undefined) {\n <span class=\"text-neutral-500\">{{ state.lineCount }}L</span>\n }\n <span class=\"w-2 h-2 rounded-full bg-green-500\"></span>\n } @else {\n <span class=\"w-2 h-2 rounded-full bg-neutral-700\"></span>\n }\n @if (artifact.route) {\n <span class=\"text-[10px] text-neutral-600 group-hover:text-neutral-400\">&rarr;</span>\n }\n </div>\n </div>\n }\n </div>\n </div>\n } @else {\n <p class=\"text-neutral-500 text-xs\">Nincs sync adat. Nyomj Sync-et.</p>\n }\n </div>\n\n <!-- Sync summary card -->\n @if (p.lastSyncAt) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <h3 class=\"text-sm font-semibold text-neutral-300 mb-3\">Last Sync</h3>\n <div class=\"flex flex-col gap-2 text-xs\">\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Status</span>\n <span class=\"font-mono\"\n [class]=\"p.lastSyncStatus === 'success' ? 'text-green-400' : p.lastSyncStatus === 'partial' ? 'text-yellow-400' : 'text-red-400'\">\n {{ p.lastSyncStatus }}\n </span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Time</span>\n <span class=\"text-neutral-300\">{{ p.lastSyncAt | date:'yyyy.MM.dd HH:mm:ss' }}</span>\n </div>\n @if (p.lastSyncDurationMs) {\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Duration</span>\n <span class=\"text-neutral-300\">{{ p.lastSyncDurationMs }}ms</span>\n </div>\n }\n @if (p.lastSyncSummary) {\n <div class=\"border-t border-neutral-700 pt-2 mt-1\">\n <span class=\"text-neutral-400\">{{ p.lastSyncSummary }}</span>\n </div>\n }\n @if (p.lastSyncErrors && p.lastSyncErrors.length > 0) {\n <div class=\"border-t border-neutral-700 pt-2 mt-1\">\n <span class=\"text-red-400\">Errors:</span>\n @for (err of p.lastSyncErrors; track err) {\n <p class=\"text-red-400/70 font-mono truncate mt-0.5\">{{ err }}</p>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Tab: Git -->\n @if (activeTab_$() === 'git' && pm_DS.activeProject_$()) {\n @let g = pm_DS.activeProject_$()!;\n <div class=\"flex flex-col gap-4\">\n\n <!-- Fejléc + Git Refresh gomb -->\n <div class=\"flex items-center justify-between gap-3\">\n <h2 class=\"text-base font-semibold text-neutral-200\">Git Status</h2>\n <button type=\"button\"\n (click)=\"handleGitRefresh()\"\n [disabled]=\"pm_DS.gitStatusLoading_$()\"\n class=\"px-3 py-1.5 border border-neonCyan rounded text-neonCyan text-xs font-semibold\n hover:bg-neonCyan/10 transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (pm_DS.gitStatusLoading_$()) { Refreshing... } @else { Git Refresh }\n </button>\n </div>\n\n <!-- Git refresh hiba -->\n @if (pm_DS.gitStatusError_$()) {\n <p class=\"text-red-400 text-xs\">Git status frissítés sikertelen.</p>\n }\n\n @if (g.gitInfo) {\n <div class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\n\n <!-- Branch & Status card -->\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <h3 class=\"text-sm font-semibold text-neutral-300 mb-3\">Branch & Status</h3>\n <div class=\"flex flex-col gap-2 text-xs\">\n <div class=\"flex justify-between items-center\">\n <span class=\"text-neutral-500\">Branch</span>\n <span class=\"px-2 py-0.5 rounded border font-mono\"\n [class]=\"g.gitInfo.status === 'clean'\n ? 'bg-green-900/30 text-green-300 border-green-800'\n : g.gitInfo.status === 'dirty'\n ? 'bg-yellow-900/30 text-yellow-300 border-yellow-800'\n : 'bg-neutral-800 text-neutral-400 border-neutral-700'\">\n {{ g.gitInfo.branch }}\n @if (g.gitInfo.status === 'dirty') { * }\n </span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Status</span>\n <span class=\"font-mono\"\n [class]=\"g.gitInfo.status === 'clean' ? 'text-green-400' : g.gitInfo.status === 'dirty' ? 'text-yellow-400' : 'text-neutral-400'\">\n {{ g.gitInfo.status }}\n </span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Ahead / Behind</span>\n <span class=\"text-neutral-300 font-mono\">{{ g.gitInfo.aheadBehind }}</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Remote</span>\n <span class=\"text-neutral-300 font-mono truncate max-w-48 text-right\" [title]=\"g.gitInfo.remoteUrl\">\n {{ g.gitInfo.remoteUrl }}\n </span>\n </div>\n @if (g.gitInfo.lastFetchedAt) {\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Fetched</span>\n <span class=\"text-neutral-400 font-mono\">{{ g.gitInfo.lastFetchedAt | date:'HH:mm:ss' }}</span>\n </div>\n }\n @if (g.gitInfo.autoPulled) {\n <div class=\"border-t border-neutral-700 pt-2 mt-1\">\n <span class=\"text-green-400 text-xs\">{{ g.gitInfo.autoPullResult }}</span>\n </div>\n } @else if (g.gitInfo.autoPullResult) {\n <div class=\"border-t border-neutral-700 pt-2 mt-1\">\n <span class=\"text-yellow-400 text-xs\">{{ g.gitInfo.autoPullResult }}</span>\n </div>\n }\n </div>\n </div>\n\n <!-- Last Commit card -->\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <h3 class=\"text-sm font-semibold text-neutral-300 mb-3\">Last Commit</h3>\n @if (g.gitInfo.lastCommitHash) {\n <div class=\"flex flex-col gap-2 text-xs\">\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Hash</span>\n <span class=\"text-neonCyan font-mono\">{{ g.gitInfo.lastCommitHash }}</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Author</span>\n <span class=\"text-neutral-200\">{{ g.gitInfo.lastCommitAuthor }}</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-neutral-500\">Date</span>\n <span class=\"text-neutral-300 font-mono\">{{ g.gitInfo.lastCommitDate | date:'yyyy.MM.dd HH:mm' }}</span>\n </div>\n <div class=\"border-t border-neutral-700 pt-2 mt-1\">\n <span class=\"text-neutral-200\">{{ g.gitInfo.lastCommitMessage }}</span>\n </div>\n </div>\n } @else {\n <p class=\"text-neutral-500 text-xs\">Nincs commit adat.</p>\n }\n </div>\n\n <!-- Uncommitted Files card -->\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <h3 class=\"text-sm font-semibold text-neutral-300 mb-3\">\n Uncommitted Files\n @if (g.gitInfo.uncommittedFiles.length > 0) {\n <span class=\"text-yellow-400 font-normal ml-1\">({{ g.gitInfo.uncommittedFiles.length }})</span>\n }\n </h3>\n @if (g.gitInfo.uncommittedFiles.length > 0) {\n <div class=\"flex flex-col gap-1 text-xs max-h-52 overflow-y-auto\">\n @for (file of g.gitInfo.uncommittedFiles; track file) {\n <div class=\"flex items-center gap-2\">\n <span class=\"shrink-0 w-5 font-mono font-bold\"\n [class]=\"file.startsWith(' M') || file.startsWith('M ')\n ? 'text-yellow-400'\n : file.startsWith('??')\n ? 'text-green-400'\n : file.startsWith(' D') || file.startsWith('D ')\n ? 'text-red-400'\n : 'text-neutral-400'\">\n {{ file.substring(0, 2) }}\n </span>\n <span class=\"text-neutral-300 font-mono truncate\">{{ file.substring(3) }}</span>\n </div>\n }\n </div>\n } @else {\n <p class=\"text-green-400 text-xs\">Nincs uncommitted file – working tree clean.</p>\n }\n </div>\n </div>\n\n <!-- Recent Commits (teljes szélesség) -->\n @if (g.gitInfo.recentCommits.length > 0) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <h3 class=\"text-sm font-semibold text-neutral-300 mb-3\">\n Recent Commits ({{ g.gitInfo.recentCommits.length }})\n </h3>\n <div class=\"flex flex-col gap-1.5 text-xs max-h-72 overflow-y-auto\">\n @for (commit of g.gitInfo.recentCommits; track commit.hash) {\n <div class=\"flex items-baseline gap-3\">\n <span class=\"text-neonCyan font-mono shrink-0\">{{ commit.hash }}</span>\n <span class=\"text-neutral-200 min-w-0 truncate flex-1\">{{ commit.message }}</span>\n <span class=\"text-neutral-500 shrink-0\">{{ commit.author }}</span>\n <span class=\"text-neutral-600 font-mono shrink-0\">{{ commit.date | date:'MM.dd HH:mm' }}</span>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Git error (ha a scan-ben volt hiba) -->\n @if (g.gitInfo.error) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-red-500/50 p-4\">\n <h3 class=\"text-sm font-semibold text-red-400 mb-2\">Git Scan Errors</h3>\n <p class=\"text-red-400/70 text-xs font-mono whitespace-pre-wrap\">{{ g.gitInfo.error }}</p>\n </div>\n }\n } @else if (g.gitStatus === 'no-git') {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-6 text-center\">\n <p class=\"text-neutral-500 text-sm\">Ez nem git repository. A git funkciók nem elérhetők.</p>\n </div>\n } @else {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-6 text-center\">\n <p class=\"text-neutral-500 text-sm mb-2\">Még nincs git adat ehhez a projekthez.</p>\n <p class=\"text-neutral-600 text-xs\">Nyomj a <strong class=\"text-neonCyan\">Git Refresh</strong> gombra a git állapot lekéréséhez.</p>\n </div>\n }\n </div>\n }\n\n <!-- Tab: User Input (USER-INPUT fájl + PM DB) -->\n @if (activeTab_$() === 'user-requests') {\n <div class=\"flex flex-col gap-6\">\n <app-pm-user-input-tab\n [fileContent]=\"pm_DS.fileContents_$()?.userInput ?? null\"\n [isLoading]=\"pm_DS.fileContentLoading_$()\"\n [error]=\"pm_DS.fileContentError_$()\"\n [projectId]=\"projectId\"\n [workspacePath]=\"pm_DS.activeProject_$()?.localPath\"\n (refresh)=\"handleFileRefresh()\">\n </app-pm-user-input-tab>\n\n <div class=\"border-t border-neutral-700/60 pt-4 flex flex-col gap-4\">\n <div class=\"flex items-center justify-between gap-3\">\n <h2 class=\"text-base font-semibold text-neutral-200\">PM database</h2>\n <button type=\"button\"\n (click)=\"toggleNewRequestForm()\"\n class=\"px-3 py-1.5 border border-ccapAccent rounded text-ccapAccent text-xs font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\">\n @if (isNewRequestFormOpen_$()) { Mégse } @else { + Új user input }\n </button>\n </div>\n\n <!-- Új user input form -->\n @if (isNewRequestFormOpen_$()) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-ccapAccent/40 p-4\">\n <div class=\"flex flex-col gap-3 max-w-2xl\">\n <div class=\"flex gap-3\">\n <div class=\"flex flex-col gap-1 flex-1\">\n <label class=\"text-xs text-neutral-400\">Típus</label>\n <select [value]=\"newRequestType_$()\"\n (change)=\"newRequestType_$.set($any($event.target).value)\"\n class=\"bg-neutral-900 border border-neutral-600 rounded px-2 py-1.5 text-sm\n text-neutral-100 focus:outline-none focus:border-ccapAccent\">\n @for (t of requestTypes; track t) {\n <option [value]=\"t\">{{ t }}</option>\n }\n </select>\n </div>\n <div class=\"flex flex-col gap-1 flex-1\">\n <label class=\"text-xs text-neutral-400\">Prioritás</label>\n <select [value]=\"newRequestPriority_$()\"\n (change)=\"newRequestPriority_$.set($any($event.target).value)\"\n class=\"bg-neutral-900 border border-neutral-600 rounded px-2 py-1.5 text-sm\n text-neutral-100 focus:outline-none focus:border-ccapAccent\">\n @for (p of priorities; track p) {\n <option [value]=\"p\">{{ p }}</option>\n }\n </select>\n </div>\n <div class=\"flex flex-col gap-1 w-36\">\n <label class=\"text-xs text-neutral-400\">Kód (pl. REQ-001)</label>\n <input type=\"text\"\n [value]=\"newRequestCode_$()\"\n (input)=\"newRequestCode_$.set($any($event.target).value)\"\n placeholder=\"REQ-UI-001\"\n class=\"bg-neutral-900 border border-neutral-600 rounded px-2 py-1.5 text-sm\n text-neutral-100 placeholder:text-neutral-600\n focus:outline-none focus:border-ccapAccent\" />\n </div>\n </div>\n <div class=\"flex flex-col gap-1\">\n <label class=\"text-xs text-neutral-400\">Tartalom (nyers szöveg) *</label>\n <textarea [value]=\"newRequestContent_$()\"\n (input)=\"newRequestContent_$.set($any($event.target).value)\"\n placeholder=\"A user eredeti kérése, igénye…\"\n rows=\"4\"\n class=\"bg-neutral-900 border border-neutral-600 rounded px-3 py-2 text-sm\n text-neutral-100 placeholder:text-neutral-600\n focus:outline-none focus:border-ccapAccent resize-none\"></textarea>\n </div>\n @if (saveError_$()) {\n <p class=\"text-red-400 text-xs\">Mentési hiba – kérjük próbálja újra.</p>\n }\n <div class=\"flex gap-3\">\n <button type=\"button\"\n (click)=\"handleCreateUserRequest()\"\n [disabled]=\"isSaving_$() || !newRequestContent_$().trim()\"\n class=\"px-4 py-2 border border-ccapAccent rounded text-ccapAccent text-sm font-semibold\n hover:bg-ccapAccent hover:text-white transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (isSaving_$()) { Mentés… } @else { Mentés }\n </button>\n </div>\n </div>\n </div>\n }\n\n <!-- User input lista (PM DB) -->\n @if (pm_DS.userRequestsLoading_$()) {\n <p class=\"text-neutral-400 text-sm py-4\">Betöltés…</p>\n } @else if (pm_DS.userRequestsError_$()) {\n <p class=\"text-red-400 text-sm py-4\">User input lista betöltése sikertelen.</p>\n } @else if (pm_DS.userRequests_$().length === 0) {\n <div class=\"rounded-lg bg-neutral-800/40 border border-neonDefault p-6 text-center\">\n <p class=\"text-neutral-500 text-sm\">Még nincs user input ehhez a projekthez.</p>\n </div>\n } @else {\n <div class=\"flex flex-col gap-2\">\n @for (req of pm_DS.userRequests_$(); track req._id) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault p-4\">\n <div class=\"flex items-start gap-3 flex-wrap\">\n <div class=\"flex gap-2 shrink-0 flex-wrap\">\n @if (req.type) {\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-700 text-neutral-300\n border border-neutral-600 font-mono uppercase\">\n {{ req.type }}\n </span>\n }\n @if (req.code) {\n <span class=\"px-2 py-0.5 text-xs rounded bg-neutral-900 text-neonCyan\n border border-neonCyan/40 font-mono\">\n {{ req.code }}\n </span>\n }\n @if (req.priority) {\n <span class=\"px-2 py-0.5 text-xs rounded font-medium\"\n [class.bg-red-900]=\"req.priority === 'urgent'\"\n [class.text-red-300]=\"req.priority === 'urgent'\"\n [class.bg-amber-900]=\"req.priority === 'high'\"\n [class.text-amber-300]=\"req.priority === 'high'\"\n [class.bg-neutral-700]=\"req.priority === 'medium' || req.priority === 'low'\"\n [class.text-neutral-300]=\"req.priority === 'medium' || req.priority === 'low'\">\n {{ req.priority }}\n </span>\n }\n </div>\n <div class=\"flex gap-2 ml-auto shrink-0 text-neutral-500 text-xs font-mono\">\n <span title=\"Spec\">{{ req.specStatus ?? '❌' }}</span>\n <span title=\"Impl\">{{ req.implStatus ?? '❌' }}</span>\n <span title=\"Test\">{{ req.testStatus ?? '❌' }}</span>\n <span title=\"Complete\">{{ req.completeStatus ?? '❌' }}</span>\n </div>\n </div>\n <p class=\"text-neutral-200 text-sm mt-2 whitespace-pre-wrap\">{{ req.content }}</p>\n @if (req.__created) {\n <p class=\"text-neutral-600 text-xs mt-2\">\n {{ req.__created | date:'yyyy.MM.dd HH:mm' }}\n </p>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Tab: TODO -->\n @if (activeTab_$() === 'todo') {\n <app-pm-todo-tab\n [fileContent]=\"pm_DS.fileContents_$()?.todo ?? null\"\n [isLoading]=\"pm_DS.fileContentLoading_$()\"\n [error]=\"pm_DS.fileContentError_$()\"\n [projectId]=\"projectId\"\n [workspacePath]=\"pm_DS.activeProject_$()?.localPath\"\n (refresh)=\"handleFileRefresh()\">\n </app-pm-todo-tab>\n }\n\n <!-- Tab: Backlog -->\n @if (activeTab_$() === 'backlog') {\n <app-pm-backlog-tab\n [fileContent]=\"pm_DS.fileContents_$()?.backlog ?? null\"\n [isLoading]=\"pm_DS.fileContentLoading_$()\"\n [error]=\"pm_DS.fileContentError_$()\"\n [projectId]=\"projectId\"\n [workspacePath]=\"pm_DS.activeProject_$()?.localPath\"\n (refresh)=\"handleFileRefresh()\">\n </app-pm-backlog-tab>\n }\n\n <!-- Tab: Bugs -->\n @if (activeTab_$() === 'bugs') {\n <app-pm-bugs-tab\n [bugsFileContent]=\"pm_DS.fileContents_$()?.bugs ?? null\"\n [backlogFileContent]=\"pm_DS.fileContents_$()?.backlog ?? null\"\n [isLoading]=\"pm_DS.fileContentLoading_$()\"\n [error]=\"pm_DS.fileContentError_$()\"\n [projectId]=\"projectId\"\n [isCcapRevisionedHost]=\"pm_DS.activeProjectComputedCcapHost_$()\"\n [workspacePath]=\"pm_DS.activeProject_$()?.localPath\"\n (refresh)=\"handleFileRefresh()\">\n </app-pm-bugs-tab>\n }\n\n <!-- Tab: Changelog -->\n @if (activeTab_$() === 'changelog') {\n <app-pm-changelog-tab\n [fileContent]=\"pm_DS.fileContents_$()?.changelog ?? null\"\n [isLoading]=\"pm_DS.fileContentLoading_$()\"\n [error]=\"pm_DS.fileContentError_$()\"\n (refresh)=\"handleFileRefresh()\">\n </app-pm-changelog-tab>\n }\n\n <!-- Tab: Test & build error reports (TEST-ERROR-REPORTS.json) -->\n @if (activeTab_$() === 'test-error-reports') {\n <app-pm-test-error-reports-tab\n [fileContent]=\"pm_DS.fileContents_$()?.testErrorReports ?? null\"\n [isLoading]=\"pm_DS.fileContentLoading_$()\"\n [error]=\"pm_DS.fileContentError_$()\"\n [isClearing]=\"pm_DS.testErrorReportsClearing_$()\"\n (refresh)=\"handleFileRefresh()\"\n (clearFile)=\"handleClearTestErrorReports()\">\n </app-pm-test-error-reports-tab>\n }\n\n <!-- Tab: Reviews -->\n @if (activeTab_$() === 'reviews') {\n <app-pm-reviews-tab\n [reviewsMeta]=\"pm_DS.reviewsMeta_$()\"\n [reviewResult]=\"pm_DS.reviewResult_$()\"\n [isMetaLoading]=\"pm_DS.reviewsMetaLoading_$()\"\n [isRunning]=\"pm_DS.reviewsRunning_$()\"\n [metaError]=\"pm_DS.reviewsMetaError_$()\"\n [runError]=\"pm_DS.reviewsRunError_$()\"\n (runReviews)=\"handleRunReviews($event)\"\n (refreshMeta)=\"handleReviewsMetaRefresh()\">\n </app-pm-reviews-tab>\n }\n\n <!-- Tab: Source IDE -->\n @if (activeTab_$() === 'source-ide') {\n <div class=\"flex flex-col\" style=\"height: calc(100vh - 280px); min-height: 400px;\">\n <app-ps-ide-shell [projectId]=\"projectId\"></app-ps-ide-shell>\n </div>\n }\n\n <app-s-modal [isOpen]=\"confirmModalOpen_$()\"\n [title]=\"confirmModalTitle_$()\"\n [maxWidth]=\"'lg'\"\n (closed)=\"handleConfirmModalDismissed()\">\n <p class=\"text-sm text-neutral-300 whitespace-pre-wrap font-mono\">{{ confirmModalBody_$() }}</p>\n <div modal-footer\n class=\"flex items-center justify-end gap-2 px-4 py-3 border-t border-neutral-700 shrink-0 bg-neutral-900/80\">\n <button type=\"button\"\n (click)=\"handleConfirmModalCancel()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neutral-600 text-neutral-300\n hover:bg-neutral-700 transition-colors\">\n Cancel\n </button>\n <button type=\"button\"\n (click)=\"handleConfirmModalConfirm()\"\n class=\"px-3 py-1.5 text-xs font-semibold rounded border border-neonCyan/60 text-neonCyan\n hover:bg-neonCyan/10 transition-colors\">\n Run\n </button>\n </div>\n </app-s-modal>\n\n</div>\n", "import { Component, computed, inject, OnInit, signal, Signal } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { CCAP_TextSearch_Util } from '../../../../_collections/utils/ccap-text-search.util';\nimport { PM_GroupFileEntry_Interface } from '../../../../_models/server-index';\nimport { ProjectManagement_DataService } from '../../_services/data-services/project-management.data-service';\n\n/**\n * Project Management – csoport részlet nézet.\n * Extra (nem-projekt) fájlok listázása a csoport scanPath mappájából.\n */\n@Component({\n selector: 'app-pm-group-detail',\n templateUrl: './pm-group-detail.component.html',\n})\n/** PM_GroupDetail_Component class. */\nexport class PM_GroupDetail_Component implements OnInit {\n\n readonly pm_DS: ProjectManagement_DataService =\n inject(ProjectManagement_DataService);\n\n private readonly route: ActivatedRoute = inject(ActivatedRoute);\n private readonly router: Router = inject(Router);\n\n /** Group ID az URL-ből. */\n groupId: string = '';\n\n /** Szűrő szöveg a fájl listára. */\n readonly filterText_$ = signal<string>('');\n\n /** Csak fájlok mutatása (könyvtárak nélkül). */\n readonly isFilesOnly_$ = signal<boolean>(false);\n\n /** Szűrt fájlok — filterText és isFilesOnly alapján (computed signal). */\n readonly filteredFiles_$: Signal<PM_GroupFileEntry_Interface[]> = computed((): PM_GroupFileEntry_Interface[] => {\n const response = this.pm_DS.groupFiles_$();\n if (!response?.files) {\n return [];\n }\n let files: PM_GroupFileEntry_Interface[] = response.files;\n if (this.isFilesOnly_$()) {\n files = files.filter((f: PM_GroupFileEntry_Interface): boolean => !f.isDirectory);\n }\n const filter: string = this.filterText_$();\n if (filter.trim()) {\n // REQ-SE-001: ékezet- és kisbetű/nagybetű-érzéketlen match.\n files = files.filter((f: PM_GroupFileEntry_Interface): boolean =>\n CCAP_TextSearch_Util.includesText(f.relativePath, filter),\n );\n }\n return files;\n });\n\n ngOnInit(): void {\n this.groupId = this.route.snapshot.params.groupId;\n void this.pm_DS.loadGroupFiles(this.groupId);\n }\n\n /** Vissza a projekt listára. */\n goBack(): void {\n void this.router.navigate(['/project-management']);\n }\n\n /** Fájl lista frissítése. */\n handleRefresh(): void {\n void this.pm_DS.loadGroupFiles(this.groupId);\n }\n}\n", "<div class=\"flex flex-col min-h-full text-neutral-100 p-4 gt-xs:p-6\">\n\n <!-- Fejléc -->\n <header class=\"mb-6\">\n <button type=\"button\"\n (click)=\"goBack()\"\n class=\"flex items-center gap-2 text-neutral-400 text-sm hover:text-neutral-200\n transition-colors duration-200 mb-3 py-1\">\n <svg class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 19l-7-7 7-7\"/>\n </svg>\n Projektek\n </button>\n\n @if (pm_DS.groupFilesLoading_$() && !pm_DS.groupFiles_$()) {\n <p class=\"text-neutral-400 text-sm\">Betöltés…</p>\n } @else if (pm_DS.groupFiles_$()) {\n @let gf = pm_DS.groupFiles_$()!;\n <div class=\"flex flex-col gt-xs:flex-row gt-xs:items-start gt-xs:justify-between gap-3\">\n <div class=\"min-w-0\">\n <h1 class=\"text-xl gt-xs:text-2xl md:text-3xl font-bold text-neutral-100 break-words\">\n {{ gf.groupName }}\n </h1>\n <p class=\"text-neutral-500 text-xs font-mono mt-1 break-all gt-xs:truncate gt-xs:max-w-xl\">\n {{ gf.scanPath }}\n </p>\n <div class=\"flex gap-3 mt-2 text-xs text-neutral-400\">\n <span>{{ gf.totalFiles }} fájl</span>\n <span>{{ gf.totalDirectories }} mappa</span>\n </div>\n </div>\n <button type=\"button\"\n (click)=\"handleRefresh()\"\n [disabled]=\"pm_DS.groupFilesLoading_$()\"\n class=\"shrink-0 self-start px-3 py-2 gt-xs:py-1.5 border border-neonCyan rounded text-neonCyan\n text-xs font-semibold hover:bg-neonCyan/10 transition-colors duration-200\n disabled:opacity-40 disabled:cursor-not-allowed\">\n @if (pm_DS.groupFilesLoading_$()) { Scan… } @else { Újrascan }\n </button>\n </div>\n }\n </header>\n\n <!-- Hiba -->\n @if (pm_DS.groupFilesError_$()) {\n <div class=\"rounded-lg bg-neutral-800/60 border border-red-500/50 p-4 gt-xs:p-5 mb-6\">\n <p class=\"text-red-400 text-sm\">Fájl lista betöltése sikertelen.</p>\n </div>\n }\n\n <!-- Szűrők -->\n @if (pm_DS.groupFiles_$()) {\n <div class=\"flex flex-col gt-xs:flex-row gt-xs:items-center gap-3 mb-4\">\n <input type=\"text\"\n [value]=\"filterText_$()\"\n (input)=\"filterText_$.set($any($event.target).value)\"\n placeholder=\"Szűrés útvonal alapján…\"\n class=\"bg-neutral-900 border border-neutral-600 rounded-md px-3 py-2.5 gt-xs:py-1.5\n text-sm text-neutral-100 placeholder:text-neutral-600 focus:outline-none\n focus:border-neonCyan transition-colors gt-xs:max-w-sm flex-1 font-mono\" />\n <label class=\"flex items-center gap-2 text-xs text-neutral-400 cursor-pointer select-none py-1\">\n <input type=\"checkbox\"\n [checked]=\"isFilesOnly_$()\"\n (change)=\"isFilesOnly_$.set($any($event.target).checked)\"\n class=\"rounded border-neutral-600 bg-neutral-900 text-neonCyan focus:ring-neonCyan/30\n w-4 h-4\" />\n Csak fájlok\n </label>\n </div>\n\n <!-- Fájl lista -->\n @if (filteredFiles_$().length === 0) {\n <div class=\"rounded-lg bg-neutral-800/40 border border-neonDefault p-6 text-center\">\n <p class=\"text-neutral-500 text-sm\">\n @if (filterText_$()) {\n Nincs a szűrőnek megfelelő fájl.\n } @else {\n Nincs extra fájl a csoport mappájában.\n }\n </p>\n </div>\n } @else {\n <div class=\"rounded-lg bg-neutral-800/60 border border-neonDefault overflow-hidden\">\n <!-- Fejléc sor (csak desktop) -->\n <div class=\"hidden gt-xs:grid grid-cols-[1fr_auto_auto_auto] gap-3 px-4 py-2 border-b border-neutral-700\n text-[11px] font-semibold text-neutral-500 uppercase tracking-wider\">\n <span>Útvonal</span>\n <span class=\"text-right w-20\">Méret</span>\n <span class=\"text-right w-32\">Módosítva</span>\n <span class=\"text-center w-10\">Típus</span>\n </div>\n <!-- Fájl sorok -->\n <div class=\"max-h-[calc(100vh-380px)] overflow-y-auto\">\n @for (file of filteredFiles_$(); track file.relativePath) {\n <!-- Desktop sor -->\n <div class=\"hidden gt-xs:grid grid-cols-[1fr_auto_auto_auto] gap-3 px-4 py-2\n border-b border-neutral-800/60 text-xs hover:bg-neutral-700/20 transition-colors\">\n <span class=\"font-mono text-neutral-200 truncate min-w-0\"\n [class.text-neutral-400]=\"file.isDirectory\"\n [title]=\"file.relativePath\">\n @if (file.isDirectory) {\n <span class=\"text-neutral-500 mr-1\">📁</span>\n }\n {{ file.relativePath }}\n </span>\n <span class=\"text-right text-neutral-400 w-20 font-mono\">\n {{ file.sizeBytes === 0 ? '—' : file.sizeBytes < 1024 ? file.sizeBytes + ' B' : file.sizeBytes < 1048576 ? (file.sizeBytes / 1024 | number:'1.0-1') + ' KB' : (file.sizeBytes / 1048576 | number:'1.0-1') + ' MB' }}\n </span>\n <span class=\"text-right text-neutral-500 w-32 font-mono\">\n {{ file.lastModifiedAt | date:'yyyy.MM.dd HH:mm' }}\n </span>\n <span class=\"text-center w-10\">\n @if (file.isDirectory) {\n <span class=\"text-neutral-500 text-[10px]\">dir</span>\n } @else {\n <span class=\"text-neutral-400 text-[10px]\">file</span>\n }\n </span>\n </div>\n <!-- Mobil sor (kompakt kártya layout) -->\n <div class=\"gt-xs:hidden flex flex-col gap-0.5 px-3 py-2.5 border-b border-neutral-800/60\">\n <div class=\"flex items-center gap-1.5 min-w-0\">\n @if (file.isDirectory) {\n <span class=\"text-neutral-500 shrink-0\">📁</span>\n }\n <span class=\"font-mono text-xs truncate min-w-0\"\n [class]=\"file.isDirectory ? 'text-neutral-400' : 'text-neutral-200'\"\n [title]=\"file.relativePath\">\n {{ file.relativePath }}\n </span>\n </div>\n <div class=\"flex items-center gap-3 text-[11px] text-neutral-500\">\n @if (!file.isDirectory) {\n <span class=\"font-mono\">\n {{ file.sizeBytes < 1024 ? file.sizeBytes + ' B' : file.sizeBytes < 1048576 ? (file.sizeBytes / 1024 | number:'1.0-1') + ' KB' : (file.sizeBytes / 1048576 | number:'1.0-1') + ' MB' }}\n </span>\n }\n <span class=\"font-mono\">{{ file.lastModifiedAt | date:'MM.dd HH:mm' }}</span>\n </div>\n </div>\n }\n </div>\n <!-- Összesítő sor -->\n <div class=\"px-3 gt-xs:px-4 py-2 border-t border-neutral-700 text-[11px] text-neutral-500\n flex justify-between\">\n <span>{{ filteredFiles_$().length }} elem</span>\n @if (filterText_$() || isFilesOnly_$()) {\n <span class=\"text-neutral-600\">(szűrve)</span>\n }\n </div>\n </div>\n }\n }\n</div>\n", "import { Component, computed, inject, OnInit, signal, Signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nimport { CCAP_AssistantMarkdownRender_Util } from '../../../../_collections/display/ccap-assistant-markdown-render.util';\nimport { CCAP_GlobalError_ControlService } from '../../../../_services/control-services/ccap-global-error.control-service';\nimport { PM_AgentReport_Interface } from '../../../../_models/server-index';\nimport { ProjectManagement_DataService } from '../../_services/data-services/project-management.data-service';\n\n/**\n * Dedikált Agent Reports nézet (REQ-PM-AGT-001 Slice 4).\n * Listázza az `__agent/reports/YYYY-MM/YYYY-MM-DD.md` fájlokat descending dátum-rendben\n * hónap-szekciókkal. A kiválasztott riport markdown tartalma jobb oldalt (desktop) vagy\n * alatta (mobile) renderelődik — `CCAP_AssistantMarkdownRender_Util` + DOMPurify\n * pipeline-on keresztül.\n */\n@Component({\n selector: 'app-pm-agent-reports',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './pm-agent-reports.component.html',\n})\n/** PM_AgentReports_Component class. */\nexport class PM_AgentReports_Component implements OnInit {\n\n private readonly route: ActivatedRoute = inject(ActivatedRoute);\n private readonly router: Router = inject(Router);\n private readonly sanitizer: DomSanitizer = inject(DomSanitizer);\n /** REQ-UI-MD-CODE-COPY-001: clipboard helper a fenced code-block-ok copy gombjához. */\n private readonly globalError_CS: CCAP_GlobalError_ControlService = inject(CCAP_GlobalError_ControlService);\n\n readonly pm_DS: ProjectManagement_DataService =\n inject(ProjectManagement_DataService);\n\n /** Aktuális projekt ID az URL-ből. */\n projectId: string = '';\n\n /** A kiválasztott riport relPath-ja (vagy null, ha nincs). */\n readonly selectedRelPath_$ = signal<string | null>(null);\n\n /**\n * A reports lista hónap szerint csoportosítva a timeline rendereléshez.\n * Minden csoport rendezetten tartja a riportokat a DS által biztosított\n * descending dátum-rendben (`2026-04-24` → `2026-04-23` → ...).\n */\n readonly reportsByMonth_$: Signal<Array<{ month: string; items: PM_AgentReport_Interface[] }>> =\n computed((): Array<{ month: string; items: PM_AgentReport_Interface[] }> => {\n const reports: PM_AgentReport_Interface[] = this.pm_DS.agentReports_$();\n const groups: Map<string, PM_AgentReport_Interface[]> =\n new Map<string, PM_AgentReport_Interface[]>();\n for (const r of reports) {\n const month: string = r.date.slice(0, 7); // YYYY-MM\n const bucket: PM_AgentReport_Interface[] | undefined = groups.get(month);\n if (bucket) {\n bucket.push(r);\n } else {\n groups.set(month, [r]);\n }\n }\n // Hónap kulcsok descending (legfrissebb hónap elöl).\n const months: string[] = Array.from(groups.keys()).sort(\n (a: string, b: string): number => b.localeCompare(a),\n );\n return months.map((month: string): { month: string; items: PM_AgentReport_Interface[] } => ({\n month: month,\n items: groups.get(month) ?? [],\n }));\n });\n\n /** Aktív riport markdown → sanitized HTML (DomSanitizer bypass + DOMPurify). */\n readonly activeReportHtml_$: Signal<SafeHtml> = computed((): SafeHtml => {\n const active = this.pm_DS.activeAgentReport_$();\n if (!active) {\n return '';\n }\n const html: string = CCAP_AssistantMarkdownRender_Util.toSanitizedHtml(active.content);\n return this.sanitizer.bypassSecurityTrustHtml(html);\n });\n\n ngOnInit(): void {\n this.projectId = this.route.snapshot.params.projectId as string;\n if (!this.projectId) {\n return;\n }\n void this.pm_DS.loadAgentReports(this.projectId);\n // Előző nézetből maradt aktív riport tisztítása.\n this.pm_DS.clearActiveAgentReport();\n }\n\n /**\n * Egy riport kiválasztása — relPath alapján betölti a tartalmat a DS-en keresztül.\n * Path-traversal védelem szerver-oldalon: érvénytelen relPath → 400 + DS error state.\n */\n handleSelectReport(relPath: string): void {\n if (!this.projectId || !relPath) {\n return;\n }\n this.selectedRelPath_$.set(relPath);\n void this.pm_DS.loadAgentReport(this.projectId, relPath);\n }\n\n /** Vissza a projekt detail-re. */\n handleBackToProject(): void {\n if (!this.projectId) {\n return;\n }\n void this.router.navigate(['/project-management/projects', this.projectId]);\n }\n\n /** Lista refresh (felhasználó gombnyomásra). */\n handleRefresh(): void {\n if (!this.projectId) {\n return;\n }\n void this.pm_DS.loadAgentReports(this.projectId);\n }\n\n /**\n * REQ-UI-MD-CODE-COPY-001: a markdown container `(click)` handler-e —\n * a render-util által beillesztett `.ccap-md-copy-btn` gombokhoz adja a\n * vágólap-műveletet (event-delegation). Más click-célnál no-op.\n */\n async handleAssistantMdClick(event: MouseEvent): Promise<void> {\n await CCAP_AssistantMarkdownRender_Util.handleCodeCopyClick(\n event,\n (text: string): Promise<{ ok: boolean }> => this.globalError_CS.copyToClipboard(text),\n );\n }\n}\n", "<div class=\"flex flex-col h-full p-4 gap-3\">\n\n <!-- Header row: back + title + refresh -->\n <div class=\"flex items-center gap-3\">\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-700 hover:bg-neutral-800 text-neutral-300\"\n (click)=\"handleBackToProject()\"\n title=\"Vissza a projekt nézetre\">\n ← Back\n </button>\n <h2 class=\"text-lg font-semibold text-neutral-100 flex-1\">\n Agent Reports\n </h2>\n <button type=\"button\"\n class=\"px-2 py-1 text-xs rounded border border-neutral-700 hover:bg-neutral-800 text-neutral-300\"\n (click)=\"handleRefresh()\"\n [disabled]=\"pm_DS.agentReportsLoading_$()\">\n ⟳ Refresh\n </button>\n </div>\n\n <!-- Main layout: list (left) + detail (right) on desktop; stacked on mobile -->\n <div class=\"flex-1 flex flex-col md:flex-row gap-3 min-h-0\">\n\n <!-- Timeline list -->\n <aside class=\"md:w-80 md:max-w-sm flex flex-col min-h-0 rounded-lg border border-neutral-700 bg-neutral-900/60\">\n <div class=\"px-3 py-2 border-b border-neutral-700 text-xs uppercase tracking-wide text-neutral-400\">\n Timeline\n </div>\n <div class=\"flex-1 overflow-y-auto text-sm\">\n @if (pm_DS.agentReportsLoading_$()) {\n <div class=\"p-3 text-neutral-500 text-xs\">Loading…</div>\n } @else if (pm_DS.agentReportsError_$()) {\n <div class=\"p-3 text-red-400 text-xs\">\n Failed to load reports.\n </div>\n } @else if (!reportsByMonth_$().length) {\n <div class=\"p-3 text-neutral-500 text-xs italic\">\n No reports found in __agent/reports/.\n </div>\n } @else {\n @for (group of reportsByMonth_$(); track group.month) {\n <div class=\"px-3 py-1 bg-neutral-800/50 text-[11px] font-semibold uppercase tracking-wide text-neutral-400 border-t border-neutral-700/60\">\n {{ group.month }}\n </div>\n @for (report of group.items; track report.relPath) {\n <button type=\"button\"\n class=\"block w-full text-left px-3 py-2 border-b border-neutral-800 hover:bg-neutral-800/60 transition-colors\"\n [class.bg-neutral-800]=\"selectedRelPath_$() === report.relPath\"\n (click)=\"handleSelectReport(report.relPath)\">\n <div class=\"flex items-center justify-between gap-2\">\n <span class=\"font-mono text-xs text-neutral-200\">{{ report.date }}</span>\n <span class=\"text-[10px] text-neutral-500\">{{ report.lineCount }}L</span>\n </div>\n @if (report.preview) {\n <div class=\"mt-1 text-[11px] text-neutral-400 line-clamp-2\">\n {{ report.preview }}\n </div>\n }\n </button>\n }\n }\n }\n </div>\n </aside>\n\n <!-- Detail panel -->\n <main class=\"flex-1 min-h-0 rounded-lg border border-neutral-700 bg-neutral-900/60 flex flex-col\">\n @if (pm_DS.activeAgentReportLoading_$()) {\n <div class=\"p-4 text-neutral-500 text-xs\">Loading report…</div>\n } @else if (pm_DS.activeAgentReportError_$()) {\n <div class=\"p-4 text-red-400 text-xs\">\n Failed to load report (invalid relPath or path-traversal rejection).\n </div>\n } @else {\n @let active = pm_DS.activeAgentReport_$();\n @if (active) {\n <div class=\"px-4 py-2 border-b border-neutral-700 flex items-center gap-3\">\n <span class=\"font-mono text-xs text-neutral-200\">{{ active.date }}</span>\n <span class=\"text-[10px] text-neutral-500\">{{ active.lineCount }}L</span>\n <span class=\"text-[10px] text-neutral-500 ml-auto\">{{ active.lastModified }}</span>\n </div>\n <!-- REQ-UI-MD-CODE-COPY-001: `(click)` event-delegation a fenced\n code-block-ok copy gombjához. -->\n <div class=\"flex-1 overflow-y-auto p-4 prose prose-invert prose-sm max-w-none\"\n [innerHTML]=\"activeReportHtml_$()\"\n (click)=\"handleAssistantMdClick($event)\"></div>\n } @else {\n <div class=\"p-4 text-neutral-500 text-xs italic\">\n Select a report from the timeline to view its content.\n </div>\n }\n }\n </main>\n\n </div>\n</div>\n", "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { S_ContentState_Component } from '../shared/_components/s-content-state/s-content-state.component';\nimport { S_PageHeader_Component } from '../shared/_components/s-page-header/s-page-header.component';\nimport { S_Modal_Component } from '../shared/_components/s-modal/s-modal.component';\nimport { PM_DiscoverWizard_Component } from './_components/pm-discover-wizard/pm-discover-wizard.component';\nimport { PM_Shell_Component } from './_components/pm-shell/pm-shell.component';\nimport { PM_List_Component } from './_components/pm-projects-list/pm-list.component';\nimport { PM_Detail_Component } from './_components/pm-project-detail/pm-detail.component';\nimport { PM_GroupDetail_Component } from './_components/pm-group-detail/pm-group-detail.component';\nimport { PM_TodoTab_Component } from './_components/pm-project-detail/pm-todo-tab/pm-todo-tab.component';\nimport { PM_BacklogTab_Component } from './_components/pm-project-detail/pm-backlog-tab/pm-backlog-tab.component';\nimport { PM_BugsTab_Component } from './_components/pm-project-detail/pm-bugs-tab/pm-bugs-tab.component';\nimport { PM_ChangelogTab_Component } from './_components/pm-project-detail/pm-changelog-tab/pm-changelog-tab.component';\nimport { PM_TestErrorReportsTab_Component } from './_components/pm-project-detail/pm-test-error-reports-tab/pm-test-error-reports-tab.component';\nimport { PM_ReviewsTab_Component } from './_components/pm-project-detail/pm-reviews-tab/pm-reviews-tab.component';\nimport { PM_UserInputTab_Component } from './_components/pm-project-detail/pm-user-input-tab/pm-user-input-tab.component';\nimport { PM_UserInputWizard_Component } from './_components/pm-project-detail/pm-user-input-wizard/pm-user-input-wizard.component';\nimport { PM_AgentReports_Component } from './_components/pm-agent-reports/pm-agent-reports.component';\nimport { ProjectSource_Module } from './_modules/project-source/project-source.module';\n\n/** Project Management modul route-jai. */\nconst projectManagementRoutes: Routes = [\n {\n path: '',\n component: PM_Shell_Component,\n children: [\n { path: '', pathMatch: 'full', component: PM_List_Component },\n { path: 'projects/:projectId', component: PM_Detail_Component },\n { path: 'projects/:projectId/agent-reports', component: PM_AgentReports_Component },\n { path: 'groups/:groupId', component: PM_GroupDetail_Component },\n ],\n },\n];\n\n/**\n * Project Management modul.\n * Projektek kezelése: lista, részlet, user request-ek, file sync (TODO/Backlog/Bugs/Changelog).\n */\n@NgModule({\n declarations: [\n PM_Shell_Component,\n PM_List_Component,\n PM_Detail_Component,\n PM_GroupDetail_Component,\n PM_DiscoverWizard_Component,\n ],\n imports: [\n CommonModule,\n RouterModule.forChild(projectManagementRoutes),\n S_ContentState_Component,\n S_Modal_Component,\n S_PageHeader_Component,\n PM_TodoTab_Component,\n PM_BacklogTab_Component,\n PM_BugsTab_Component,\n PM_ChangelogTab_Component,\n PM_TestErrorReportsTab_Component,\n PM_ReviewsTab_Component,\n PM_UserInputTab_Component,\n PM_UserInputWizard_Component,\n PM_AgentReports_Component,\n ProjectSource_Module,\n ],\n})\n/** ProjectManagement_Module class. */\nexport class ProjectManagement_Module {}\n"],
5
+ "mappings": "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",
6
+ "names": ["\u0275\u0275text", "\u0275\u0275elementStart", "\u0275\u0275elementEnd", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "scanPath_$", "set", "target", "value", "\u0275\u0275template", "PM_DiscoverWizard_Component_Conditional_18_Conditional_13_Template", "PM_DiscoverWizard_Component_Conditional_18_Conditional_14_Template", "handleScan", "PM_DiscoverWizard_Component_Conditional_18_Conditional_17_Template", "PM_DiscoverWizard_Component_Conditional_18_Conditional_18_Template", "handleClose", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275conditional", "pm_DS", "discoveryError_$", "discoveryLoading_$", "discoveredProjects_$", "length", "trim", "\u0275\u0275element", "\u0275\u0275textInterpolate", "project_r7", "description", "\u0275$index_95_r6", "_r5", "$index", "toggleProject", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_For_7_Conditional_2_Template", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_For_7_Conditional_8_Template", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_For_7_Conditional_10_Template", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_For_7_Conditional_11_Template", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_For_7_Conditional_12_Template", "\u0275\u0275classMap", "selectedIndexes_$", "has", "name", "localPath", "hasGitRepo", "hasPackageJson", "githubRepoUrl", "_r4", "toggleSelectAll", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_Conditional_3_Template", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_Conditional_4_Template", "\u0275\u0275repeaterCreate", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_For_7_Template", "_forTrack0", "size", "newProjects_$", "\u0275\u0275repeater", "project_r8", "PM_DiscoverWizard_Component_Conditional_19_Conditional_8_For_5_Template", "existingProjects_$", "PM_DiscoverWizard_Component_Conditional_19_Conditional_6_Template", "PM_DiscoverWizard_Component_Conditional_19_Conditional_7_Template", "PM_DiscoverWizard_Component_Conditional_19_Conditional_8_Template", "_r3", "goToConfirm", "goBackToScan", "\u0275\u0275textInterpolate1", "selectedProjects_$", "project_r10", "PM_DiscoverWizard_Component_Conditional_20_For_5_Conditional_5_Template", "PM_DiscoverWizard_Component_Conditional_20_For_5_Conditional_6_Template", "PM_DiscoverWizard_Component_Conditional_20_For_5_Template", "PM_DiscoverWizard_Component_Conditional_20_Conditional_6_Template", "_r9", "handleCreate", "PM_DiscoverWizard_Component_Conditional_20_Conditional_9_Template", "PM_DiscoverWizard_Component_Conditional_20_Conditional_10_Template", "goBackToSelect", "saveError_$", "isSaving_$", "_r11", "createdCount_$", "PM_DiscoverWizard_Component", "closed", "EventEmitter", "inject", "ProjectManagement_DataService", "settingsGeneral_DS", "Set_General_DataService", "step_$", "signal", "Set", "computed", "filter", "p", "isAlreadyRegistered", "indexes", "_p", "i", "ngOnInit", "loadDefaultWorkspacePath", "then", "path", "defaultWorkspacePath_$", "__async", "scanPath", "discoverProjects", "allNew", "allIndexes", "map", "index", "current", "delete", "add", "clearDiscovery", "projects", "createDiscoveredProjects", "err", "emit", "selectors", "outputs", "decls", "vars", "consts", "template", "rf", "ctx", "PM_DiscoverWizard_Component_Case_3_Template", "PM_DiscoverWizard_Component_Case_4_Template", "PM_DiscoverWizard_Component_Case_5_Template", "PM_DiscoverWizard_Component_Case_6_Template", "PM_DiscoverWizard_Component_Conditional_18_Template", "PM_DiscoverWizard_Component_Conditional_19_Template", "PM_DiscoverWizard_Component_Conditional_20_Template", "PM_DiscoverWizard_Component_Conditional_21_Template", "tmp_0_0", "PM_Shell_Component", "selectors", "decls", "vars", "template", "rf", "ctx", "\u0275\u0275element", "\u0275\u0275text", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleDiscoverWizardClosed", "\u0275\u0275elementEnd", "$event", "_r3", "newProjectName_$", "set", "target", "value", "newProjectGithubUrl_$", "newProjectDescription_$", "\u0275\u0275template", "PM_List_Component_Conditional_13_Conditional_16_Template", "handleCreateProject", "PM_List_Component_Conditional_13_Conditional_19_Template", "PM_List_Component_Conditional_13_Conditional_20_Template", "toggleNewProjectForm", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275conditional", "saveError_$", "isSaving_$", "trim", "_r4", "newGroupName_$", "newGroupScanPath_$", "PM_List_Component_Conditional_21_Conditional_11_Template", "handleCreateGroup", "PM_List_Component_Conditional_21_Conditional_14_Template", "PM_List_Component_Conditional_21_Conditional_15_Template", "groupSaveError_$", "isGroupSaving_$", "group_r6", "_r5", "$implicit", "handleOpenGroupDetail", "\u0275\u0275element", "handleArchiveGroup", "\u0275\u0275textInterpolate1", "name", "\u0275\u0275textInterpolate", "scanPath", "\u0275\u0275repeaterCreate", "PM_List_Component_Conditional_22_For_2_Template", "_forTrack0", "\u0275\u0275repeater", "pm_DS", "groups_$", "project_r8", "description", "\u0275\u0275classMap", "gitStatus", "gitBranch", "packageVersion", "lastSyncStatus", "PM_List_Component_For_29_Conditional_6_Conditional_1_Template", "PM_List_Component_For_29_Conditional_6_Conditional_2_Template", "PM_List_Component_For_29_Conditional_6_Conditional_3_Template", "_r9", "handleGitRefresh", "PM_List_Component_For_29_Conditional_6_Conditional_5_Template", "PM_List_Component_For_29_Conditional_6_Conditional_6_Template", "gitRefreshingProjectId_$", "_id", "githubRepoUrl", "_r7", "openProject", "PM_List_Component_For_29_Conditional_4_Template", "PM_List_Component_For_29_Conditional_5_Template", "PM_List_Component_For_29_Conditional_6_Template", "PM_List_Component_For_29_Conditional_7_Template", "handleDeleteClick", "isActive", "_r10", "handleCrossInstanceRefresh", "PM_List_Component_Conditional_37_Conditional_1_Template", "PM_List_Component_Conditional_37_Conditional_2_Template", "crossInstanceLoading_$", "rp_r11", "gitRemoteUrl", "_r12", "cloneTargetDir_$", "PM_List_Component_Conditional_38_Conditional_3_For_2_Conditional_8_Conditional_2_Template", "handleConfirmClone", "PM_List_Component_Conditional_38_Conditional_3_For_2_Conditional_8_Conditional_5_Template", "PM_List_Component_Conditional_38_Conditional_3_For_2_Conditional_8_Conditional_6_Template", "handleCancelClone", "cloneError_$", "cloneLoading_$", "_r13", "handleStartClone", "PM_List_Component_Conditional_38_Conditional_3_For_2_Conditional_6_Template", "PM_List_Component_Conditional_38_Conditional_3_For_2_Conditional_7_Template", "PM_List_Component_Conditional_38_Conditional_3_For_2_Conditional_8_Template", "PM_List_Component_Conditional_38_Conditional_3_For_2_Conditional_9_Template", "tmp_13_0", "ccapId", "undefined", "tmp_14_0", "substring", "cloneSourceProjectId_$", "PM_List_Component_Conditional_38_Conditional_3_For_2_Template", "remoteProjects_$", "PM_List_Component_Conditional_38_Conditional_0_Template", "PM_List_Component_Conditional_38_Conditional_1_Template", "PM_List_Component_Conditional_38_Conditional_2_Template", "PM_List_Component_Conditional_38_Conditional_3_Template", "length", "crossInstanceError_$", "PM_List_Component_Conditional_40_Conditional_8_Template", "ctx", "deleteError_$", "PM_List_Component", "inject", "ProjectManagement_DataService", "router", "Router", "isDiscoverWizardOpen_$", "signal", "isNewProjectFormOpen_$", "isDeleteModalOpen_$", "projectToDelete_$", "isDeleting_$", "isGroupFormOpen_$", "isCrossInstanceOpen_$", "computed", "currentCcapId", "currentCcapId_$", "all", "crossInstanceProjects_$", "filter", "p", "ngOnInit", "loadProjects", "loadGroups", "handleSyncAll", "syncAllProjects", "event", "project", "__async", "stopPropagation", "refreshGitStatus", "toggleDiscoverWizard", "update", "open", "resetForm", "navigate", "createProject", "err", "handleDeleteModalDismissed", "handleDeleteConfirmed", "archiveProject", "toggleGroupForm", "resetGroupForm", "createGroup", "group", "archiveGroup", "toggleCrossInstance", "loadCrossInstanceProjects", "projectId", "sourceId", "targetDir", "cloneProject", "sourceProjectId", "targetParentDir", "selectors", "decls", "vars", "consts", "template", "rf", "PM_List_Component_Conditional_4_Template", "PM_List_Component_Conditional_5_Template", "PM_List_Component_Conditional_7_Template", "PM_List_Component_Conditional_8_Template", "PM_List_Component_Conditional_10_Template", "PM_List_Component_Conditional_11_Template", "PM_List_Component_Conditional_12_Template", "PM_List_Component_Conditional_13_Template", "PM_List_Component_Conditional_19_Template", "PM_List_Component_Conditional_20_Template", "PM_List_Component_Conditional_21_Template", "PM_List_Component_Conditional_22_Template", "PM_List_Component_Conditional_23_Template", "PM_List_Component_For_29_Template", "PM_List_Component_Conditional_37_Template", "PM_List_Component_Conditional_38_Template", "PM_List_Component_Conditional_40_Template", "PM_List_Component_Conditional_45_Template", "PM_List_Component_Conditional_46_Template", "syncLoading_$", "projectsLoading_$", "projectsError_$", "projects_$", "\u0275\u0275classProp", "tmp_24_0", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "PM_CcLaunchWizard_Component", "isOpen", "input", "modalTitle", "sessionLabel", "workspacePath", "basePrompt", "closed", "output", "ccSession_DS", "inject", "ClaudeCode_DataService", "router", "Router", "peiContext_DS", "ExS_InstanceContext_DataService", "globalError_CS", "CCAP_GlobalError_ControlService", "extraInstruction_$", "signal", "fullPromptPreview_$", "computed", "base", "trimEnd", "extra", "trim", "length", "isStarting_$", "handleClose", "set", "emit", "handleExtraChange", "value", "handleStartSession", "__async", "ws", "promptText", "sessionId", "createSession", "label", "initialPrompt", "ccapId", "activeCcapId_$", "target", "navigate", "err", "showError", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275listener", "\u0275\u0275template", "PM_CcLaunchWizard_Component_Conditional_7_Template", "$event", "PM_CcLaunchWizard_Component_Conditional_22_Template", "PM_CcLaunchWizard_Component_Conditional_23_Template", "\u0275\u0275property", "\u0275\u0275advance", "\u0275\u0275conditional", "\u0275\u0275textInterpolate", "CommonModule", "FormsModule", "DefaultValueAccessor", "NgControlStatus", "NgModel", "S_Modal_Component", "encapsulation", "import_fsm_dynamo", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275text", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleCopy", "\u0275\u0275template", "PM_EntryRawModal_Component_Conditional_1_Conditional_2_Template", "PM_EntryRawModal_Component_Conditional_1_Conditional_3_Template", "\u0275\u0275advance", "\u0275\u0275classMap", "isCopied_$", "\u0275\u0275conditional", "\u0275\u0275textInterpolate", "rawText", "PM_EntryRawModal_Component", "isOpen", "input", "title", "closed", "output", "hasBody_$", "computed", "trim", "length", "signal", "handleModalClosed", "set", "emit", "text", "navigator", "clipboard", "writeText", "then", "setTimeout", "catch", "err", "DyFM_Log", "error", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "PM_EntryRawModal_Component_Conditional_1_Template", "PM_EntryRawModal_Component_Conditional_2_Template", "\u0275\u0275property", "CommonModule", "S_Modal_Component", "encapsulation", "PM_ControlEntryEditModal_Component", "isOpen", "input", "title", "initialText", "closed", "output", "saved", "draft_$", "signal", "constructor", "effect", "set", "handleClose", "emit", "handleSave", "text", "trimEnd", "length", "newRawBlock", "handleDraftChange", "value", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275text", "\u0275\u0275elementEnd", "$event", "\u0275\u0275property", "\u0275\u0275advance", "trim", "CommonModule", "FormsModule", "DefaultValueAccessor", "NgControlStatus", "NgModel", "S_Modal_Component", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleEdit", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "disabledEdit", "_r3", "handleRemove", "disabledRemove", "_r4", "handleCcWork", "disabledCc", "_r5", "handleCcFix", "_r6", "handleCcReview", "PM_ItemRowActions_Component", "showEdit", "input", "showRemove", "showCcWork", "showCcFix", "showCcReview", "edit", "output", "remove", "ccWork", "ccFix", "ccReview", "emit", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "PM_ItemRowActions_Component_Conditional_1_Template", "PM_ItemRowActions_Component_Conditional_2_Template", "PM_ItemRowActions_Component_Conditional_3_Template", "PM_ItemRowActions_Component_Conditional_4_Template", "PM_ItemRowActions_Component_Conditional_5_Template", "\u0275\u0275advance", "\u0275\u0275conditional", "CommonModule", "encapsulation", "PM_CcLaunchPrompt_Util", "buildBugFixPrompt", "entry", "lines", "code", "title", "details", "trim", "length", "push", "linked", "linkedCcapErrorId", "join", "buildBugReviewPrompt", "buildBacklogWorkPrompt", "type", "statusRaw", "buildBacklogReviewPrompt", "buildTodoWorkPrompt", "section", "buildTodoReviewPrompt", "buildUserInputWorkPrompt", "e1", "e2", "e3", "e4", "rawUserInput", "buildUserInputReviewPrompt", "\u0275\u0275elementStart", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275text", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "ctx_r0", "filePreamble", "PM_ControlFilePreambleDisclosure_Component", "selectors", "inputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "PM_ControlFilePreambleDisclosure_Component_Conditional_0_Template", "\u0275\u0275conditional", "trim", "length", "CommonModule", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "ctx_r0", "fileContent", "metadata", "lineCount", "\u0275\u0275textInterpolate", "error", "\u0275\u0275classProp", "entry_r3", "priority", "area", "phase", "source", "details", "section", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r2", "$implicit", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleOpenRawTodo", "\u0275\u0275element", "\u0275\u0275template", "PM_TodoTab_Component_For_14_Conditional_13_Template", "PM_TodoTab_Component_For_14_Conditional_14_Template", "PM_TodoTab_Component_For_14_Conditional_15_Template", "PM_TodoTab_Component_For_14_Conditional_16_Template", "PM_TodoTab_Component_For_14_Conditional_17_Template", "PM_TodoTab_Component_For_14_Conditional_18_Template", "handleOpenEdit", "handleRemove", "handleOpenCcWork", "handleOpenCcReview", "statusEmoji", "code", "title", "\u0275\u0275conditional", "\u0275\u0275property", "workspacePath", "trim", "entryMutationBusy_$", "PM_TodoTab_Component", "isLoading", "projectId", "refresh", "EventEmitter", "pm_DS", "inject", "ProjectManagement_DataService", "globalError_CS", "CCAP_GlobalError_ControlService", "rawModalOpen_$", "signal", "rawModalTitle_$", "rawModalBody_$", "ccLaunchOpen_$", "ccLaunchTitle_$", "ccLaunchLabel_$", "ccLaunchBasePrompt_$", "editModalOpen_$", "editModalTitle_$", "editModalInitial_$", "editPriorBlock_", "confirmModalOpen_$", "confirmModalTitle_$", "confirmModalBody_$", "pendingConfirmAction_", "workspacePathForWizard_$", "computed", "entry", "set", "rawLines", "join", "handleCloseRawModal", "PM_CcLaunchPrompt_Util", "buildTodoWorkPrompt", "buildTodoReviewPrompt", "handleCcLaunchClosed", "length", "prior", "handleEditModalClosed", "handleEditSaved", "params", "__async", "pid", "mutateControlFileEntryAndRefresh", "PM_ControlFileType_Type", "todo", "mode", "PM_ControlEntryMutationMode_Type", "update", "priorRawBlock", "newRawBlock", "err", "showError", "executeRemoveTodoEntry", "remove", "handleConfirmModalDismissed", "handleConfirmModalCancel", "handleConfirmModalConfirm", "action", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "PM_TodoTab_Component_Conditional_5_Template", "emit", "PM_TodoTab_Component_Conditional_10_Template", "PM_TodoTab_Component_Conditional_11_Template", "\u0275\u0275repeaterCreate", "PM_TodoTab_Component_For_14_Template", "_forTrack0", "$event", "filePreamble", "exists", "entries", "\u0275\u0275repeater", "tmp_9_0", "undefined", "\u0275\u0275pureFunction0", "_c0", "CommonModule", "S_ContentState_Component", "PM_EntryRawModal_Component", "PM_CcLaunchWizard_Component", "PM_ControlEntryEditModal_Component", "PM_ItemRowActions_Component", "PM_ControlFilePreambleDisclosure_Component", "S_Modal_Component", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "ctx_r0", "fileContent", "metadata", "lineCount", "entries", "length", "\u0275\u0275textInterpolate", "error", "entry_r3", "statusKey", "\u0275\u0275classProp", "priority", "area", "phase", "details", "req_r4", "\u0275\u0275repeaterCreate", "PM_BacklogTab_Component_For_15_Conditional_20_For_2_Template", "\u0275\u0275repeaterTrackByIdentity", "\u0275\u0275repeater", "reqCodes", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r2", "$implicit", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleOpenRawBacklog", "\u0275\u0275element", "\u0275\u0275template", "PM_BacklogTab_Component_For_15_Conditional_15_Template", "PM_BacklogTab_Component_For_15_Conditional_16_Template", "PM_BacklogTab_Component_For_15_Conditional_17_Template", "PM_BacklogTab_Component_For_15_Conditional_18_Template", "PM_BacklogTab_Component_For_15_Conditional_19_Template", "PM_BacklogTab_Component_For_15_Conditional_20_Template", "handleOpenEdit", "handleRemove", "handleOpenCcWork", "handleOpenCcReview", "type", "statusEmoji", "code", "title", "\u0275\u0275conditional", "\u0275\u0275property", "workspacePath", "trim", "entryMutationBusy_$", "PM_BacklogTab_Component", "isLoading", "projectId", "refresh", "EventEmitter", "pm_DS", "inject", "ProjectManagement_DataService", "globalError_CS", "CCAP_GlobalError_ControlService", "rawModalOpen_$", "signal", "rawModalTitle_$", "rawModalBody_$", "ccLaunchOpen_$", "ccLaunchTitle_$", "ccLaunchLabel_$", "ccLaunchBasePrompt_$", "editModalOpen_$", "editModalTitle_$", "editModalInitial_$", "editPriorBlock_", "confirmModalOpen_$", "confirmModalTitle_$", "confirmModalBody_$", "pendingConfirmAction_", "workspacePathForWizard_$", "computed", "entry", "set", "rawLines", "join", "handleCloseRawModal", "PM_CcLaunchPrompt_Util", "buildBacklogWorkPrompt", "buildBacklogReviewPrompt", "handleCcLaunchClosed", "prior", "handleEditModalClosed", "handleEditSaved", "params", "__async", "pid", "mutateControlFileEntryAndRefresh", "PM_ControlFileType_Type", "backlog", "mode", "PM_ControlEntryMutationMode_Type", "update", "priorRawBlock", "newRawBlock", "err", "showError", "executeRemoveBacklogEntry", "remove", "handleConfirmModalDismissed", "handleConfirmModalCancel", "handleConfirmModalConfirm", "action", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "PM_BacklogTab_Component_Conditional_5_Template", "PM_BacklogTab_Component_Conditional_6_Template", "emit", "PM_BacklogTab_Component_Conditional_11_Template", "PM_BacklogTab_Component_Conditional_12_Template", "PM_BacklogTab_Component_For_15_Template", "_forTrack0", "$event", "filePreamble", "exists", "tmp_10_0", "undefined", "\u0275\u0275pureFunction0", "_c0", "CommonModule", "S_ContentState_Component", "PM_EntryRawModal_Component", "PM_CcLaunchWizard_Component", "PM_ControlEntryEditModal_Component", "PM_ItemRowActions_Component", "PM_ControlFilePreambleDisclosure_Component", "S_Modal_Component", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "cand_r2", "\u0275\u0275restoreView", "_r1", "$implicit", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleSelectPreferredBugsPath", "\u0275\u0275property", "projectId", "trim", "length", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "relativeToProject", "\u0275\u0275repeaterCreate", "PM_BugsTab_Component_Conditional_13_For_8_Template", "_forTrack0", "\u0275\u0275repeater", "bugsPathResolve_$", "candidates", "\u0275\u0275textInterpolate", "lastManualBugSummary_$", "lastAppendFromErrorsSummary_$", "lastSingleBugFromErrorSummary_$", "errors_DS", "errorsLoadError_$", "\u0275\u0275element", "row_r6", "_r5", "handlePmUserMarkToggle", "\u0275\u0275template", "PM_BugsTab_Component_Conditional_15_Conditional_11_For_18_Conditional_11_Template", "PM_BugsTab_Component_Conditional_15_Conditional_11_For_18_Conditional_12_Template", "PM_BugsTab_Component_Conditional_15_Conditional_11_For_18_Conditional_13_Template", "handleAppendSingleBugFromError", "PM_BugsTab_Component_Conditional_15_Conditional_11_For_18_Conditional_16_Template", "PM_BugsTab_Component_Conditional_15_Conditional_11_For_18_Conditional_17_Template", "\u0275\u0275pureFunction1", "_c0", "isPmUserMarked", "messageShort", "tmp_14_0", "occurrenceCount", "undefined", "tmp_15_0", "source", "tmp_16_0", "idLabel", "tmp_17_0", "\u0275\u0275pureFunction2", "_c1", "errorId", "pmUserMarkBusyErrorId_$", "\u0275\u0275conditional", "errorsLoading_$", "isAppendFromErrorsBusy_$", "singleBugFromErrorBusyErrorId_$", "PM_BugsTab_Component_Conditional_15_Conditional_11_For_18_Template", "_forTrack1", "errorTableRows_$", "_r4", "handleAppendBugsFromErrors", "PM_BugsTab_Component_Conditional_15_Conditional_6_Template", "PM_BugsTab_Component_Conditional_15_Conditional_7_Template", "PM_BugsTab_Component_Conditional_15_Conditional_8_Template", "PM_BugsTab_Component_Conditional_15_Conditional_9_Template", "PM_BugsTab_Component_Conditional_15_Conditional_10_Template", "PM_BugsTab_Component_Conditional_15_Conditional_11_Template", "\u0275\u0275classProp", "entry_r8", "priority", "area", "linkedCcapErrorId", "details", "_r9", "handleRemoveLinkedError", "_r7", "handleOpenRawBug", "PM_BugsTab_Component_Conditional_18_For_2_Conditional_13_Template", "PM_BugsTab_Component_Conditional_18_For_2_Conditional_14_Template", "PM_BugsTab_Component_Conditional_18_For_2_Conditional_15_Template", "PM_BugsTab_Component_Conditional_18_For_2_Conditional_16_Template", "handleOpenEditBugFromFile", "handleRemoveBugEntry", "handleOpenCcFixWizard", "handleOpenCcReviewWizard", "PM_BugsTab_Component_Conditional_18_For_2_Conditional_18_Template", "statusEmoji", "code", "title", "workspacePath", "entryMutationBusy_$", "PM_BugsTab_Component_Conditional_18_For_2_Template", "_forTrack2", "bugsFileContent", "entries", "entry_r11", "_r12", "_r10", "PM_BugsTab_Component_Conditional_20_For_2_Conditional_15_Template", "PM_BugsTab_Component_Conditional_20_For_2_Conditional_16_Template", "PM_BugsTab_Component_Conditional_20_For_2_Conditional_17_Template", "PM_BugsTab_Component_Conditional_20_For_2_Conditional_18_Template", "handleOpenEditBugFromBacklog", "PM_BugsTab_Component_Conditional_20_For_2_Conditional_20_Template", "PM_BugsTab_Component_Conditional_20_For_2_Template", "backlogBugs_$", "PM_BugsTab_Component", "input", "backlogFileContent", "isLoading", "error", "isCcapRevisionedHost", "refresh", "EventEmitter", "inject", "Errors_DataService", "pm_DS", "ProjectManagement_DataService", "globalError_CS", "CCAP_GlobalError_ControlService", "signal", "rawModalOpen_$", "rawModalTitle_$", "rawModalBody_$", "ccLaunchOpen_$", "ccLaunchTitle_$", "ccLaunchLabel_$", "ccLaunchBasePrompt_$", "manualBugModalOpen_$", "manualBugBusy_$", "bugsPathResolveLoading_$", "editModalOpen_$", "editModalTitle_$", "editModalInitial_$", "editPriorBlock_", "confirmModalOpen_$", "confirmModalTitle_$", "confirmModalBody_$", "pendingConfirmAction_", "workspacePathForWizard_$", "computed", "errors_$", "map", "e", "i", "rawMsg", "message", "hasId", "_id", "rowKey", "String", "Boolean", "pmUserMarkedAt", "truncateText", "ngOnChanges", "changes", "pid", "loadBugsPathResolve", "set", "loadErrors", "__async", "resolution", "getBugsPathResolve", "err", "showError", "cand", "updateProject", "preferredBugsMdRelativePath", "emit", "content", "filter", "type", "hasContent_$", "isBacklogFallback_$", "bugs", "exists", "entry", "prefix", "rawLines", "join", "handleCloseRawModal", "PM_CcLaunchPrompt_Util", "buildBugFixPrompt", "buildBugReviewPrompt", "handleCcLaunchClosed", "prior", "handleEditModalClosed", "handleEditSaved", "params", "fileType", "PM_ControlFileType_Type", "backlog", "mutateControlFileEntryAndRefresh", "mode", "PM_ControlEntryMutationMode_Type", "update", "priorRawBlock", "newRawBlock", "fromBacklogFallback", "executeRemoveBugEntry", "remove", "handleOpenManualBugModal", "handleCloseManualBugModal", "handleManualBugSubmitted", "body", "result", "createManualBugAndRefresh", "createdCode", "userRequestId", "appendBugsFromErrorsAndRefreshFiles", "parts", "createdCodes", "push", "skippedAlreadyLinkedCount", "skippedMissingIdCount", "skippedUserMarkedCount", "row", "id", "appendSingleBugFromErrorAndRefreshFiles", "outcome", "PM_AppendSingleBugFromErrorOutcome_Type", "created", "alreadyLinked", "userMarked", "errorNotFound", "setPmUserMark", "clearOne", "handleConfirmModalDismissed", "handleConfirmModalCancel", "handleConfirmModalConfirm", "action", "raw", "maxLen", "t", "replace", "slice", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275NgOnChangesFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "PM_BugsTab_Component_Conditional_9_Template", "PM_BugsTab_Component_Conditional_12_Template", "PM_BugsTab_Component_Conditional_13_Template", "PM_BugsTab_Component_Conditional_14_Template", "PM_BugsTab_Component_Conditional_15_Template", "PM_BugsTab_Component_Conditional_18_Template", "PM_BugsTab_Component_Conditional_20_Template", "$event", "tmp_3_0", "isAmbiguous", "tmp_11_0", "filePreamble", "tmp_12_0", "tmp_13_0", "CommonModule", "NgClass", "S_ContentState_Component", "PM_EntryRawModal_Component", "PM_CcLaunchWizard_Component", "PM_ControlEntryEditModal_Component", "PM_ItemRowActions_Component", "PM_ManualBugModal_Component", "PM_ControlFilePreambleDisclosure_Component", "S_Modal_Component", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "ctx_r0", "fileContent", "metadata", "lineCount", "entries", "length", "\u0275\u0275textInterpolate", "error", "entry_r3", "summary", "source", "area", "doc", "req_r4", "\u0275\u0275repeaterCreate", "PM_ChangelogTab_Component_For_13_For_7_Conditional_17_For_2_Template", "\u0275\u0275repeaterTrackByIdentity", "\u0275\u0275repeater", "reqCodes", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r2", "$implicit", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleOpenRawChangelog", "\u0275\u0275element", "\u0275\u0275template", "PM_ChangelogTab_Component_For_13_For_7_Conditional_12_Template", "PM_ChangelogTab_Component_For_13_For_7_Conditional_14_Template", "PM_ChangelogTab_Component_For_13_For_7_Conditional_15_Template", "PM_ChangelogTab_Component_For_13_For_7_Conditional_16_Template", "PM_ChangelogTab_Component_For_13_For_7_Conditional_17_Template", "type", "code", "title", "\u0275\u0275conditional", "PM_ChangelogTab_Component_For_13_For_7_Template", "_forTrack1", "section_r5", "version", "PM_ChangelogTab_Component", "input", "isLoading", "refresh", "EventEmitter", "rawModalOpen_$", "signal", "rawModalTitle_$", "rawModalBody_$", "entry", "set", "rawLines", "join", "handleCloseRawModal", "versionSections_$", "computed", "content", "map", "Map", "order", "ver", "has", "push", "get", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "PM_ChangelogTab_Component_Conditional_5_Template", "PM_ChangelogTab_Component_Conditional_6_Template", "emit", "PM_ChangelogTab_Component_Conditional_11_Template", "PM_ChangelogTab_Component_For_13_Template", "_forTrack0", "tmp_1_0", "\u0275\u0275property", "tmp_2_0", "filePreamble", "exists", "CommonModule", "S_ContentState_Component", "PM_EntryRawModal_Component", "PM_ControlFilePreambleDisclosure_Component", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "fc_r1", "error", "\u0275\u0275textInterpolate1", "metadata", "lineCount", "\u0275\u0275template", "PM_TestErrorReportsTab_Component_Conditional_23_Conditional_0_Template", "PM_TestErrorReportsTab_Component_Conditional_23_Conditional_1_Template", "\u0275\u0275conditional", "exists", "entry_r2", "stackTop", "meta", "PM_TestErrorReportsTab_Component_For_26_Conditional_11_Conditional_1_Template", "PM_TestErrorReportsTab_Component_For_26_Conditional_11_Conditional_2_Template", "PM_TestErrorReportsTab_Component_For_26_Conditional_2_Template", "PM_TestErrorReportsTab_Component_For_26_Conditional_3_Template", "PM_TestErrorReportsTab_Component_For_26_Conditional_10_Template", "PM_TestErrorReportsTab_Component_For_26_Conditional_11_Template", "reportKind", "ctx_r2", "reportKindEnum", "e2e", "recordedAt", "message", "PM_TestErrorReportsTab_Component", "fileContent", "input", "isLoading", "isClearing", "PM_TestErrorReportKind_Type", "filterMode_$", "signal", "refresh", "output", "clearFile", "filteredEntries_$", "computed", "entries", "mode", "filter", "e", "handleSetFilter", "set", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275listener", "emit", "PM_TestErrorReportsTab_Component_Conditional_23_Template", "\u0275\u0275repeaterCreate", "PM_TestErrorReportsTab_Component_For_26_Template", "_forTrack0", "\u0275\u0275property", "\u0275\u0275classProp", "tmp_19_0", "\u0275\u0275repeater", "CommonModule", "S_ContentState_Component", "encapsulation", "\u0275\u0275text", "\u0275\u0275elementStart", "\u0275\u0275listener", "review_r4", "\u0275\u0275restoreView", "_r3", "$implicit", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleToggleReview", "reviewId", "\u0275\u0275elementEnd", "handleRunSingle", "\u0275\u0275advance", "\u0275\u0275property", "selectedReviewIds_$", "has", "\u0275\u0275textInterpolate", "name", "description", "isRunning", "_r1", "handleToggleAll", "\u0275\u0275repeaterCreate", "PM_ReviewsTab_Component_Conditional_12_For_6_Template", "_forTrack0", "size", "reviewsMeta", "length", "\u0275\u0275textInterpolate1", "\u0275\u0275repeater", "\u0275\u0275element", "runError", "clipboardText_$", "PM_ReviewsTab_Component", "reviewResult", "isMetaLoading", "metaError", "runReviews", "EventEmitter", "refreshMeta", "signal", "Set", "hasSelection_$", "computed", "result", "lines", "executedAt", "targetPath", "totalIssueCnt", "failedReviewCnt", "results", "r", "status", "isPassed", "issueCnt", "push", "reviewName", "issue", "issues", "loc", "line", "filePath", "sourceLines", "maxNum", "lineNumber", "pad", "String", "sl", "prefix", "numStr", "padStart", "content", "message", "join", "update", "set", "next", "delete", "add", "allIds", "map", "handleRunSelected", "ids", "Array", "from", "emit", "undefined", "handleRunAll", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "PM_ReviewsTab_Component_Conditional_6_Template", "PM_ReviewsTab_Component_Conditional_7_Template", "PM_ReviewsTab_Component_Conditional_9_Template", "PM_ReviewsTab_Component_Conditional_10_Template", "PM_ReviewsTab_Component_Conditional_12_Template", "PM_ReviewsTab_Component_Conditional_13_Template", "PM_ReviewsTab_Component_Conditional_14_Template", "\u0275\u0275conditional", "CommonModule", "S_ContentState_Component", "S_CopyButton_Component", "encapsulation", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleOpenUserInputWizardModal", "\u0275\u0275text", "\u0275\u0275elementEnd", "handleOpenUserInputDirectCreateModal", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "fileContent", "metadata", "fileCount", "lineCount", "entries", "length", "\u0275\u0275textInterpolate", "error", "\u0275\u0275classProp", "row_r4", "entry", "priority", "source", "area", "phase", "details", "\u0275\u0275textInterpolate2", "kv_r5", "key", "value", "\u0275\u0275repeaterCreate", "PM_UserInputTab_Component_For_18_Conditional_26_For_2_Template", "_forTrack1", "\u0275\u0275repeater", "\u0275\u0275pipeBind1", "extraFields", "rawUserInput", "_r3", "$implicit", "handleOpenRawUserInput", "\u0275\u0275element", "\u0275\u0275template", "PM_UserInputTab_Component_For_18_Conditional_20_Template", "PM_UserInputTab_Component_For_18_Conditional_21_Template", "PM_UserInputTab_Component_For_18_Conditional_22_Template", "PM_UserInputTab_Component_For_18_Conditional_23_Template", "PM_UserInputTab_Component_For_18_Conditional_24_Template", "PM_UserInputTab_Component_For_18_Conditional_25_Template", "PM_UserInputTab_Component_For_18_Conditional_26_Template", "PM_UserInputTab_Component_For_18_Conditional_28_Template", "handleOpenEdit", "handleRemove", "handleOpenCcWork", "handleOpenCcReview", "type", "code", "e1", "e2", "e3", "e4", "\u0275\u0275conditional", "isAriLess", "\u0275\u0275property", "workspacePath", "trim", "entryMutationBusy_$", "_r6", "handleCloseUserInputWizardModal", "handleUserInputWizardCompleted", "userInputWizardModalOpen_$", "userInputWizardSkipSuggest_$", "projectId", "PM_UserInputTab_Component", "isLoading", "refresh", "EventEmitter", "pm_DS", "inject", "ProjectManagement_DataService", "globalError_CS", "CCAP_GlobalError_ControlService", "displayRows_$", "signal", "rawModalOpen_$", "rawModalTitle_$", "rawModalBody_$", "ccLaunchOpen_$", "ccLaunchTitle_$", "ccLaunchLabel_$", "ccLaunchBasePrompt_$", "editModalOpen_$", "editModalTitle_$", "editModalInitial_$", "editPriorBlock_", "confirmModalOpen_$", "confirmModalTitle_$", "confirmModalBody_$", "pendingConfirmAction_", "workspacePathForWizard_$", "computed", "ngOnChanges", "changes", "rows", "map", "index", "stableId", "String", "set", "rawLines", "join", "handleCloseRawModal", "PM_CcLaunchPrompt_Util", "buildUserInputWorkPrompt", "buildUserInputReviewPrompt", "handleCcLaunchClosed", "prior", "handleEditModalClosed", "handleEditSaved", "params", "__async", "pid", "mutateControlFileEntryAndRefresh", "PM_ControlFileType_Type", "userInput", "mode", "PM_ControlEntryMutationMode_Type", "update", "priorRawBlock", "newRawBlock", "err", "showError", "executeRemoveUserInputEntry", "remove", "handleConfirmModalDismissed", "handleConfirmModalCancel", "handleConfirmModalConfirm", "action", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275NgOnChangesFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "PM_UserInputTab_Component_Conditional_2_Template", "PM_UserInputTab_Component_Conditional_7_Template", "PM_UserInputTab_Component_Conditional_8_Template", "PM_UserInputTab_Component_Conditional_9_Template", "emit", "PM_UserInputTab_Component_Conditional_14_Template", "PM_UserInputTab_Component_Conditional_15_Template", "PM_UserInputTab_Component_For_18_Template", "_forTrack0", "PM_UserInputTab_Component_Conditional_20_Template", "$event", "undefined", "filePreamble", "exists", "CommonModule", "KeyValuePipe", "S_ContentState_Component", "PM_EntryRawModal_Component", "S_Modal_Component", "PM_UserInputWizard_Component", "PM_CcLaunchWizard_Component", "PM_ControlEntryEditModal_Component", "PM_ItemRowActions_Component", "PM_ControlFilePreambleDisclosure_Component", "encapsulation", "label", "tab", "route", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "project_r3", "description", "\u0275\u0275template", "PM_Detail_Component_Conditional_7_Conditional_10_Conditional_1_Conditional_2_Template", "\u0275\u0275classMap", "gitStatus", "\u0275\u0275textInterpolate1", "gitBranch", "\u0275\u0275conditional", "packageVersion", "gitAheadBehind", "\u0275\u0275pipeBind2", "lastSyncAt", "PM_Detail_Component_Conditional_7_Conditional_10_Conditional_1_Template", "PM_Detail_Component_Conditional_7_Conditional_10_Conditional_2_Template", "PM_Detail_Component_Conditional_7_Conditional_10_Conditional_3_Template", "PM_Detail_Component_Conditional_7_Conditional_10_Conditional_4_Template", "localPath", "sync_r4", "summary", "gitInfo", "autoPullResult", "err_r5", "\u0275\u0275repeaterCreate", "PM_Detail_Component_Conditional_7_Conditional_13_Conditional_11_For_2_Template", "\u0275\u0275repeaterTrackByIdentity", "\u0275\u0275repeater", "errors", "PM_Detail_Component_Conditional_7_Conditional_13_Conditional_9_Template", "PM_Detail_Component_Conditional_7_Conditional_13_Conditional_10_Template", "PM_Detail_Component_Conditional_7_Conditional_13_Conditional_11_Template", "syncStatus", "durationMs", "syncedAt", "autoPulled", "length", "\u0275\u0275declareLet", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleSync", "PM_Detail_Component_Conditional_7_Conditional_7_Template", "PM_Detail_Component_Conditional_7_Conditional_8_Template", "PM_Detail_Component_Conditional_7_Conditional_9_Template", "PM_Detail_Component_Conditional_7_Conditional_10_Template", "PM_Detail_Component_Conditional_7_Conditional_11_Template", "PM_Detail_Component_Conditional_7_Conditional_12_Template", "PM_Detail_Component_Conditional_7_Conditional_13_Template", "\u0275\u0275storeLet", "pm_DS", "activeProject_$", "project_r6", "name", "\u0275\u0275property", "syncLoading_$", "syncError_$", "tmp_9_0", "lastSyncResult_$", "tab_r8", "_r7", "$implicit", "setTab", "id", "\u0275\u0275classProp", "activeTab_$", "p_r10", "uncommittedFiles", "PM_Detail_Component_Conditional_12_Conditional_8_Conditional_16_Template", "branch", "status", "aheadBehind", "script_r12", "_r11", "handleRunScript", "PM_Detail_Component_Conditional_12_Conditional_14_Conditional_21_For_5_Template", "packageInfo", "packageScripts", "PM_Detail_Component_Conditional_12_Conditional_14_Conditional_21_Template", "packageName", "packageDependencyCount", "packageDevDependencyCount", "state_r15", "sizeBytes", "lineCount", "entryCount", "PM_Detail_Component_Conditional_12_Conditional_19_For_2_Conditional_5_Conditional_0_Template", "PM_Detail_Component_Conditional_12_Conditional_19_For_2_Conditional_5_Conditional_1_Template", "PM_Detail_Component_Conditional_12_Conditional_19_For_2_Conditional_5_Conditional_2_Template", "\u0275\u0275element", "undefined", "artifact_r14", "_r13", "PM_Detail_Component_Conditional_12_Conditional_19_For_2_Conditional_5_Template", "PM_Detail_Component_Conditional_12_Conditional_19_For_2_Conditional_6_Template", "PM_Detail_Component_Conditional_12_Conditional_19_For_2_Conditional_7_Template", "artifacts", "key", "\u0275\u0275pureFunction1", "_c25", "state_r16", "exists", "state_r19", "fileCount", "PM_Detail_Component_Conditional_12_Conditional_19_For_7_Conditional_5_Conditional_0_Template", "PM_Detail_Component_Conditional_12_Conditional_19_For_7_Conditional_5_Conditional_1_Template", "PM_Detail_Component_Conditional_12_Conditional_19_For_7_Conditional_5_Conditional_2_Template", "artifact_r18", "_r17", "handleNavigateToAgentRoute", "PM_Detail_Component_Conditional_12_Conditional_19_For_7_Conditional_5_Template", "PM_Detail_Component_Conditional_12_Conditional_19_For_7_Conditional_6_Template", "PM_Detail_Component_Conditional_12_Conditional_19_For_7_Conditional_7_Template", "state_r20", "PM_Detail_Component_Conditional_12_Conditional_19_For_2_Template", "_forTrack1", "PM_Detail_Component_Conditional_12_Conditional_19_For_7_Template", "\u0275\u0275pureFunctionV", "_c10", "\u0275\u0275pureFunction0", "_c11", "_c12", "_c13", "_c14", "_c15", "_c16", "_c17", "_c18", "_c19", "_c20", "\u0275\u0275pureFunction3", "_c24", "_c21", "_c22", "_c23", "lastSyncDurationMs", "lastSyncSummary", "err_r21", "PM_Detail_Component_Conditional_12_Conditional_21_Conditional_17_For_4_Template", "lastSyncErrors", "PM_Detail_Component_Conditional_12_Conditional_21_Conditional_15_Template", "PM_Detail_Component_Conditional_12_Conditional_21_Conditional_16_Template", "PM_Detail_Component_Conditional_12_Conditional_21_Conditional_17_Template", "lastSyncStatus", "_r9", "PM_Detail_Component_Conditional_12_Conditional_8_Template", "PM_Detail_Component_Conditional_12_Conditional_9_Template", "PM_Detail_Component_Conditional_12_Conditional_10_Template", "PM_Detail_Component_Conditional_12_Conditional_14_Template", "PM_Detail_Component_Conditional_12_Conditional_15_Template", "PM_Detail_Component_Conditional_12_Conditional_19_Template", "PM_Detail_Component_Conditional_12_Conditional_20_Template", "PM_Detail_Component_Conditional_12_Conditional_21_Template", "p_r22", "g_r24", "lastFetchedAt", "lastCommitHash", "lastCommitAuthor", "lastCommitDate", "lastCommitMessage", "file_r25", "startsWith", "substring", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_38_For_2_Template", "commit_r26", "hash", "message", "author", "date", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_40_For_5_Template", "_forTrack2", "recentCommits", "error", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_10_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_26_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_27_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_28_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_32_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_33_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_37_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_38_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_39_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_40_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Conditional_41_Template", "remoteUrl", "_r23", "handleGitRefresh", "PM_Detail_Component_Conditional_13_Conditional_6_Template", "PM_Detail_Component_Conditional_13_Conditional_7_Template", "PM_Detail_Component_Conditional_13_Conditional_8_Template", "PM_Detail_Component_Conditional_13_Conditional_9_Template", "PM_Detail_Component_Conditional_13_Conditional_10_Template", "PM_Detail_Component_Conditional_13_Conditional_11_Template", "gitStatusLoading_$", "gitStatusError_$", "g_r27", "t_r30", "p_r31", "$event", "_r29", "newRequestType_$", "set", "target", "value", "PM_Detail_Component_Conditional_14_Conditional_9_For_8_Template", "newRequestPriority_$", "PM_Detail_Component_Conditional_14_Conditional_9_For_14_Template", "newRequestCode_$", "newRequestContent_$", "PM_Detail_Component_Conditional_14_Conditional_9_Conditional_23_Template", "handleCreateUserRequest", "PM_Detail_Component_Conditional_14_Conditional_9_Conditional_26_Template", "PM_Detail_Component_Conditional_14_Conditional_9_Conditional_27_Template", "requestTypes", "priorities", "saveError_$", "isSaving_$", "trim", "req_r32", "type", "code", "priority", "__created", "PM_Detail_Component_Conditional_14_Conditional_13_For_2_Conditional_3_Template", "PM_Detail_Component_Conditional_14_Conditional_13_For_2_Conditional_4_Template", "PM_Detail_Component_Conditional_14_Conditional_13_For_2_Conditional_5_Template", "PM_Detail_Component_Conditional_14_Conditional_13_For_2_Conditional_17_Template", "tmp_15_0", "specStatus", "tmp_16_0", "implStatus", "tmp_17_0", "testStatus", "tmp_18_0", "completeStatus", "content", "PM_Detail_Component_Conditional_14_Conditional_13_For_2_Template", "_forTrack3", "userRequests_$", "_r28", "handleFileRefresh", "toggleNewRequestForm", "PM_Detail_Component_Conditional_14_Conditional_7_Template", "PM_Detail_Component_Conditional_14_Conditional_8_Template", "PM_Detail_Component_Conditional_14_Conditional_9_Template", "PM_Detail_Component_Conditional_14_Conditional_10_Template", "PM_Detail_Component_Conditional_14_Conditional_11_Template", "PM_Detail_Component_Conditional_14_Conditional_12_Template", "PM_Detail_Component_Conditional_14_Conditional_13_Template", "tmp_1_0", "fileContents_$", "userInput", "fileContentLoading_$", "fileContentError_$", "projectId", "tmp_5_0", "isNewRequestFormOpen_$", "userRequestsLoading_$", "userRequestsError_$", "_r33", "todo", "_r34", "backlog", "_r35", "bugs", "tmp_2_0", "activeProjectComputedCcapHost_$", "tmp_7_0", "_r36", "changelog", "_r37", "handleClearTestErrorReports", "testErrorReports", "testErrorReportsClearing_$", "_r38", "handleRunReviews", "handleReviewsMetaRefresh", "reviewsMeta_$", "reviewResult_$", "reviewsMetaLoading_$", "reviewsRunning_$", "reviewsMetaError_$", "reviewsRunError_$", "PM_Detail_Component", "inject", "ProjectManagement_DataService", "terminal_DS", "Terminals_DataService", "ActivatedRoute", "router", "Router", "signal", "PM_UserRequestType_Type", "req", "PM_Priority_Type", "medium", "confirmModalOpen_$", "confirmModalTitle_$", "confirmModalBody_$", "pendingConfirmAction_", "Object", "values", "ngOnInit", "snapshot", "params", "loadProject", "loadUserRequests", "isFileContentsLoaded", "isReviewsMetaLoaded", "includes", "loadAllFileContents", "loadReviewsMeta", "clearTestErrorReportsAndRefresh", "refreshGitStatus", "syncProject", "reviewIds", "runProjectReviews", "goBack", "navigate", "routeSegment", "update", "open", "resetRequestForm", "__async", "createUserRequest", "err", "handleArchiveUserRequest", "request", "_id", "updateUserRequest", "scriptName", "project", "startTerminalRest", "path", "runCommand", "action", "command", "handleConfirmModalDismissed", "handleConfirmModalCancel", "handleConfirmModalConfirm", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "PM_Detail_Component_Conditional_6_Template", "PM_Detail_Component_Conditional_7_Template", "PM_Detail_Component_Conditional_8_Template", "PM_Detail_Component_For_11_Template", "_forTrack0", "PM_Detail_Component_Conditional_12_Template", "PM_Detail_Component_Conditional_13_Template", "PM_Detail_Component_Conditional_14_Template", "PM_Detail_Component_Conditional_15_Template", "PM_Detail_Component_Conditional_16_Template", "PM_Detail_Component_Conditional_17_Template", "PM_Detail_Component_Conditional_18_Template", "PM_Detail_Component_Conditional_19_Template", "PM_Detail_Component_Conditional_20_Template", "PM_Detail_Component_Conditional_21_Template", "activeProjectLoading_$", "activeProjectError_$", "_c0", "_c1", "_c2", "_c3", "_c4", "_c5", "_c6", "_c7", "_c8", "_c9", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275declareLet", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleRefresh", "\u0275\u0275template", "PM_GroupDetail_Component_Conditional_7_Conditional_13_Template", "PM_GroupDetail_Component_Conditional_7_Conditional_14_Template", "pm_DS", "groupFiles_$", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "gf_r3", "groupName", "scanPath", "totalFiles", "totalDirectories", "\u0275\u0275property", "groupFilesLoading_$", "\u0275\u0275conditional", "PM_GroupDetail_Component_Conditional_9_Conditional_5_Conditional_2_Template", "PM_GroupDetail_Component_Conditional_9_Conditional_5_Conditional_3_Template", "filterText_$", "file_r5", "sizeBytes", "\u0275\u0275pipeBind2", "PM_GroupDetail_Component_Conditional_9_Conditional_6_For_12_Conditional_2_Template", "PM_GroupDetail_Component_Conditional_9_Conditional_6_For_12_Conditional_12_Template", "PM_GroupDetail_Component_Conditional_9_Conditional_6_For_12_Conditional_13_Template", "PM_GroupDetail_Component_Conditional_9_Conditional_6_For_12_Conditional_16_Template", "PM_GroupDetail_Component_Conditional_9_Conditional_6_For_12_Conditional_20_Template", "\u0275\u0275classProp", "isDirectory", "relativePath", "lastModifiedAt", "\u0275\u0275classMap", "\u0275\u0275textInterpolate", "\u0275\u0275repeaterCreate", "PM_GroupDetail_Component_Conditional_9_Conditional_6_For_12_Template", "_forTrack0", "PM_GroupDetail_Component_Conditional_9_Conditional_6_Conditional_16_Template", "\u0275\u0275repeater", "filteredFiles_$", "length", "isFilesOnly_$", "$event", "_r4", "set", "target", "value", "checked", "PM_GroupDetail_Component_Conditional_9_Conditional_5_Template", "PM_GroupDetail_Component_Conditional_9_Conditional_6_Template", "PM_GroupDetail_Component", "inject", "ProjectManagement_DataService", "route", "ActivatedRoute", "router", "Router", "groupId", "signal", "computed", "response", "files", "filter", "f", "trim", "CCAP_TextSearch_Util", "includesText", "ngOnInit", "snapshot", "params", "loadGroupFiles", "goBack", "navigate", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275element", "PM_GroupDetail_Component_Conditional_6_Template", "PM_GroupDetail_Component_Conditional_7_Template", "PM_GroupDetail_Component_Conditional_8_Template", "PM_GroupDetail_Component_Conditional_9_Template", "groupFilesError_$", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "report_r2", "preview", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "$implicit", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleSelectReport", "relPath", "\u0275\u0275template", "PM_AgentReports_Component_Conditional_16_For_1_For_3_Conditional_6_Template", "\u0275\u0275classProp", "selectedRelPath_$", "\u0275\u0275textInterpolate", "date", "lineCount", "\u0275\u0275conditional", "\u0275\u0275repeaterCreate", "PM_AgentReports_Component_Conditional_16_For_1_For_3_Template", "_forTrack1", "group_r4", "month", "\u0275\u0275repeater", "items", "PM_AgentReports_Component_Conditional_16_For_1_Template", "_forTrack0", "reportsByMonth_$", "$event", "_r5", "handleAssistantMdClick", "active_r6", "lastModified", "\u0275\u0275property", "activeReportHtml_$", "\u0275\u0275sanitizeHtml", "\u0275\u0275declareLet", "PM_AgentReports_Component_Conditional_20_Conditional_1_Template", "PM_AgentReports_Component_Conditional_20_Conditional_2_Template", "\u0275\u0275storeLet", "pm_DS", "activeAgentReport_$", "active_r7", "PM_AgentReports_Component", "route", "inject", "ActivatedRoute", "router", "Router", "sanitizer", "DomSanitizer", "globalError_CS", "CCAP_GlobalError_ControlService", "ProjectManagement_DataService", "projectId", "signal", "computed", "reports", "agentReports_$", "groups", "Map", "r", "slice", "bucket", "get", "push", "set", "Array", "from", "keys", "sort", "a", "b", "localeCompare", "map", "active", "html", "CCAP_AssistantMarkdownRender_Util", "toSanitizedHtml", "content", "bypassSecurityTrustHtml", "ngOnInit", "snapshot", "params", "loadAgentReports", "clearActiveAgentReport", "loadAgentReport", "handleBackToProject", "navigate", "handleRefresh", "event", "__async", "handleCodeCopyClick", "text", "copyToClipboard", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "PM_AgentReports_Component_Conditional_13_Template", "PM_AgentReports_Component_Conditional_14_Template", "PM_AgentReports_Component_Conditional_15_Template", "PM_AgentReports_Component_Conditional_16_Template", "PM_AgentReports_Component_Conditional_18_Template", "PM_AgentReports_Component_Conditional_19_Template", "PM_AgentReports_Component_Conditional_20_Template", "agentReportsLoading_$", "agentReportsError_$", "length", "activeAgentReportLoading_$", "activeAgentReportError_$", "CommonModule", "encapsulation", "projectManagementRoutes", "path", "component", "PM_Shell_Component", "children", "pathMatch", "PM_List_Component", "PM_Detail_Component", "PM_AgentReports_Component", "PM_GroupDetail_Component", "ProjectManagement_Module", "CommonModule", "RouterModule", "forChild", "S_ContentState_Component", "S_Modal_Component", "S_PageHeader_Component", "PM_TodoTab_Component", "PM_BacklogTab_Component", "PM_BugsTab_Component", "PM_ChangelogTab_Component", "PM_TestErrorReportsTab_Component", "PM_ReviewsTab_Component", "PM_UserInputTab_Component", "PM_UserInputWizard_Component", "ProjectSource_Module"]
7
7
  }