@memberjunction/ng-dashboards 3.4.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (458) hide show
  1. package/README.md +102 -339
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts +12 -5
  3. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  4. package/dist/AI/components/agents/agent-configuration.component.js +103 -44
  5. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  6. package/dist/AI/components/agents/agent-editor.component.d.ts +14 -5
  7. package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
  8. package/dist/AI/components/agents/agent-editor.component.js +149 -211
  9. package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
  10. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +1 -1
  11. package/dist/AI/components/agents/agent-filter-panel.component.js +4 -4
  12. package/dist/AI/components/agents/agent-filter-panel.component.js.map +1 -1
  13. package/dist/AI/components/charts/performance-heatmap.component.d.ts.map +1 -1
  14. package/dist/AI/components/charts/performance-heatmap.component.js +4 -6
  15. package/dist/AI/components/charts/performance-heatmap.component.js.map +1 -1
  16. package/dist/AI/components/charts/time-series-chart.component.d.ts.map +1 -1
  17. package/dist/AI/components/charts/time-series-chart.component.js +6 -7
  18. package/dist/AI/components/charts/time-series-chart.component.js.map +1 -1
  19. package/dist/AI/components/execution-monitoring.component.d.ts +0 -4
  20. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  21. package/dist/AI/components/execution-monitoring.component.js +33 -37
  22. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  23. package/dist/AI/components/models/model-management.component.d.ts +3 -6
  24. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  25. package/dist/AI/components/models/model-management.component.js +34 -27
  26. package/dist/AI/components/models/model-management.component.js.map +1 -1
  27. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
  28. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +22 -17
  29. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
  30. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +1 -1
  31. package/dist/AI/components/prompts/prompt-filter-panel.component.js +4 -4
  32. package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +1 -1
  33. package/dist/AI/components/prompts/prompt-management.component.d.ts +3 -6
  34. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  35. package/dist/AI/components/prompts/prompt-management.component.js +34 -32
  36. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  37. package/dist/AI/components/prompts/prompt-version-control.component.d.ts.map +1 -1
  38. package/dist/AI/components/prompts/prompt-version-control.component.js +33 -28
  39. package/dist/AI/components/prompts/prompt-version-control.component.js.map +1 -1
  40. package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +1 -1
  41. package/dist/AI/components/system/system-config-filter-panel.component.js +4 -4
  42. package/dist/AI/components/system/system-config-filter-panel.component.js.map +1 -1
  43. package/dist/AI/components/system/system-configuration.component.d.ts +0 -4
  44. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  45. package/dist/AI/components/system/system-configuration.component.js +26 -27
  46. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  47. package/dist/AI/components/widgets/kpi-card.component.d.ts.map +1 -1
  48. package/dist/AI/components/widgets/kpi-card.component.js +52 -42
  49. package/dist/AI/components/widgets/kpi-card.component.js.map +1 -1
  50. package/dist/AI/components/widgets/live-execution-widget.component.d.ts.map +1 -1
  51. package/dist/AI/components/widgets/live-execution-widget.component.js +7 -7
  52. package/dist/AI/components/widgets/live-execution-widget.component.js.map +1 -1
  53. package/dist/APIKeys/api-applications-panel.component.d.ts +0 -2
  54. package/dist/APIKeys/api-applications-panel.component.d.ts.map +1 -1
  55. package/dist/APIKeys/api-applications-panel.component.js +193 -189
  56. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  57. package/dist/APIKeys/api-key-create-dialog.component.d.ts +0 -2
  58. package/dist/APIKeys/api-key-create-dialog.component.d.ts.map +1 -1
  59. package/dist/APIKeys/api-key-create-dialog.component.js +175 -180
  60. package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
  61. package/dist/APIKeys/api-key-edit-panel.component.d.ts +0 -2
  62. package/dist/APIKeys/api-key-edit-panel.component.d.ts.map +1 -1
  63. package/dist/APIKeys/api-key-edit-panel.component.js +231 -225
  64. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  65. package/dist/APIKeys/api-key-list.component.d.ts +0 -2
  66. package/dist/APIKeys/api-key-list.component.d.ts.map +1 -1
  67. package/dist/APIKeys/api-key-list.component.js +113 -114
  68. package/dist/APIKeys/api-key-list.component.js.map +1 -1
  69. package/dist/APIKeys/api-keys-resource.component.d.ts +0 -2
  70. package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
  71. package/dist/APIKeys/api-keys-resource.component.js +294 -302
  72. package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
  73. package/dist/APIKeys/api-scopes-panel.component.d.ts +0 -2
  74. package/dist/APIKeys/api-scopes-panel.component.d.ts.map +1 -1
  75. package/dist/APIKeys/api-scopes-panel.component.js +151 -155
  76. package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
  77. package/dist/APIKeys/api-usage-panel.component.d.ts +0 -2
  78. package/dist/APIKeys/api-usage-panel.component.d.ts.map +1 -1
  79. package/dist/APIKeys/api-usage-panel.component.js +237 -234
  80. package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
  81. package/dist/Actions/components/actions-list-view.component.d.ts.map +1 -1
  82. package/dist/Actions/components/actions-list-view.component.js +15 -14
  83. package/dist/Actions/components/actions-list-view.component.js.map +1 -1
  84. package/dist/Actions/components/actions-overview.component.d.ts +3 -6
  85. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  86. package/dist/Actions/components/actions-overview.component.js +17 -19
  87. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  88. package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
  89. package/dist/Actions/components/categories-list-view.component.js +6 -6
  90. package/dist/Actions/components/categories-list-view.component.js.map +1 -1
  91. package/dist/Actions/components/code-management.component.d.ts +0 -4
  92. package/dist/Actions/components/code-management.component.d.ts.map +1 -1
  93. package/dist/Actions/components/code-management.component.js +3 -9
  94. package/dist/Actions/components/code-management.component.js.map +1 -1
  95. package/dist/Actions/components/entity-integration.component.d.ts +0 -4
  96. package/dist/Actions/components/entity-integration.component.d.ts.map +1 -1
  97. package/dist/Actions/components/entity-integration.component.js +3 -9
  98. package/dist/Actions/components/entity-integration.component.js.map +1 -1
  99. package/dist/Actions/components/execution-monitoring.component.d.ts +3 -6
  100. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  101. package/dist/Actions/components/execution-monitoring.component.js +13 -16
  102. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  103. package/dist/Actions/components/executions-list-view.component.d.ts.map +1 -1
  104. package/dist/Actions/components/executions-list-view.component.js +3 -3
  105. package/dist/Actions/components/executions-list-view.component.js.map +1 -1
  106. package/dist/Actions/components/explorer/action-breadcrumb.component.d.ts.map +1 -1
  107. package/dist/Actions/components/explorer/action-breadcrumb.component.js +6 -6
  108. package/dist/Actions/components/explorer/action-breadcrumb.component.js.map +1 -1
  109. package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
  110. package/dist/Actions/components/explorer/action-card.component.js +11 -10
  111. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  112. package/dist/Actions/components/explorer/action-explorer.component.d.ts +0 -4
  113. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  114. package/dist/Actions/components/explorer/action-explorer.component.js +10 -14
  115. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  116. package/dist/Actions/components/explorer/action-list-item.component.d.ts.map +1 -1
  117. package/dist/Actions/components/explorer/action-list-item.component.js +8 -8
  118. package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
  119. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +1 -1
  120. package/dist/Actions/components/explorer/action-toolbar.component.js +15 -14
  121. package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -1
  122. package/dist/Actions/components/explorer/action-tree-panel.component.d.ts.map +1 -1
  123. package/dist/Actions/components/explorer/action-tree-panel.component.js +11 -10
  124. package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
  125. package/dist/Actions/components/explorer/index.d.ts +0 -1
  126. package/dist/Actions/components/explorer/index.d.ts.map +1 -1
  127. package/dist/Actions/components/explorer/index.js +0 -4
  128. package/dist/Actions/components/explorer/index.js.map +1 -1
  129. package/dist/Actions/components/explorer/new-action-panel.component.d.ts.map +1 -1
  130. package/dist/Actions/components/explorer/new-action-panel.component.js +10 -10
  131. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
  132. package/dist/Actions/components/explorer/new-category-panel.component.d.ts.map +1 -1
  133. package/dist/Actions/components/explorer/new-category-panel.component.js +8 -8
  134. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
  135. package/dist/Actions/components/scheduled-actions.component.d.ts +0 -4
  136. package/dist/Actions/components/scheduled-actions.component.d.ts.map +1 -1
  137. package/dist/Actions/components/scheduled-actions.component.js +3 -9
  138. package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
  139. package/dist/Actions/components/security-permissions.component.d.ts +0 -4
  140. package/dist/Actions/components/security-permissions.component.d.ts.map +1 -1
  141. package/dist/Actions/components/security-permissions.component.js +3 -9
  142. package/dist/Actions/components/security-permissions.component.js.map +1 -1
  143. package/dist/Actions/index.d.ts +0 -7
  144. package/dist/Actions/index.d.ts.map +1 -1
  145. package/dist/Actions/index.js +0 -8
  146. package/dist/Actions/index.js.map +1 -1
  147. package/dist/Communication/communication-dashboard.component.d.ts +0 -1
  148. package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
  149. package/dist/Communication/communication-dashboard.component.js +38 -51
  150. package/dist/Communication/communication-dashboard.component.js.map +1 -1
  151. package/dist/Communication/communication-logs-resource.component.d.ts +0 -4
  152. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  153. package/dist/Communication/communication-logs-resource.component.js +112 -108
  154. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  155. package/dist/Communication/communication-monitor-resource.component.d.ts +0 -4
  156. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  157. package/dist/Communication/communication-monitor-resource.component.js +210 -201
  158. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  159. package/dist/Communication/communication-providers-resource.component.d.ts +0 -4
  160. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  161. package/dist/Communication/communication-providers-resource.component.js +136 -124
  162. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  163. package/dist/Communication/communication-runs-resource.component.d.ts +0 -4
  164. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  165. package/dist/Communication/communication-runs-resource.component.js +91 -88
  166. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  167. package/dist/Communication/communication-templates-resource.component.d.ts +0 -4
  168. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  169. package/dist/Communication/communication-templates-resource.component.js +139 -122
  170. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  171. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +0 -4
  172. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  173. package/dist/ComponentStudio/component-studio-dashboard.component.js +21 -20
  174. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  175. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -1
  176. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +11 -12
  177. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -1
  178. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
  179. package/dist/ComponentStudio/components/artifact-load-dialog.component.js +25 -22
  180. package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
  181. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  182. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +16 -16
  183. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  184. package/dist/ComponentStudio/components/browser/component-browser.component.d.ts.map +1 -1
  185. package/dist/ComponentStudio/components/browser/component-browser.component.js +23 -21
  186. package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -1
  187. package/dist/ComponentStudio/components/editors/code-editor-panel.component.d.ts.map +1 -1
  188. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +10 -10
  189. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
  190. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts.map +1 -1
  191. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +13 -13
  192. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
  193. package/dist/ComponentStudio/components/editors/requirements-editor.component.d.ts.map +1 -1
  194. package/dist/ComponentStudio/components/editors/requirements-editor.component.js +7 -7
  195. package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
  196. package/dist/ComponentStudio/components/editors/spec-editor.component.d.ts.map +1 -1
  197. package/dist/ComponentStudio/components/editors/spec-editor.component.js +5 -5
  198. package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
  199. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.d.ts.map +1 -1
  200. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +4 -4
  201. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -1
  202. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -1
  203. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +9 -9
  204. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
  205. package/dist/ComponentStudio/components/text-import-dialog.component.d.ts.map +1 -1
  206. package/dist/ComponentStudio/components/text-import-dialog.component.js +4 -4
  207. package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
  208. package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts.map +1 -1
  209. package/dist/ComponentStudio/components/workspace/component-preview.component.js +10 -9
  210. package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -1
  211. package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts.map +1 -1
  212. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js +4 -4
  213. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js.map +1 -1
  214. package/dist/Credentials/components/credentials-audit-resource.component.d.ts +0 -1
  215. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  216. package/dist/Credentials/components/credentials-audit-resource.component.js +200 -196
  217. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  218. package/dist/Credentials/components/credentials-categories-resource.component.d.ts +0 -1
  219. package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
  220. package/dist/Credentials/components/credentials-categories-resource.component.js +195 -190
  221. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  222. package/dist/Credentials/components/credentials-list-resource.component.d.ts +0 -1
  223. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  224. package/dist/Credentials/components/credentials-list-resource.component.js +251 -240
  225. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  226. package/dist/Credentials/components/credentials-overview-resource.component.d.ts +0 -1
  227. package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
  228. package/dist/Credentials/components/credentials-overview-resource.component.js +228 -226
  229. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  230. package/dist/Credentials/components/credentials-types-resource.component.d.ts +0 -1
  231. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  232. package/dist/Credentials/components/credentials-types-resource.component.js +214 -210
  233. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  234. package/dist/Credentials/credentials-dashboard.component.d.ts +0 -1
  235. package/dist/Credentials/credentials-dashboard.component.d.ts.map +1 -1
  236. package/dist/Credentials/credentials-dashboard.component.js +31 -44
  237. package/dist/Credentials/credentials-dashboard.component.js.map +1 -1
  238. package/dist/Credentials/pipes/group-by.pipe.d.ts.map +1 -1
  239. package/dist/Credentials/pipes/group-by.pipe.js +2 -1
  240. package/dist/Credentials/pipes/group-by.pipe.js.map +1 -1
  241. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +0 -1
  242. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
  243. package/dist/DashboardBrowser/dashboard-browser-resource.component.js +73 -80
  244. package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
  245. package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts.map +1 -1
  246. package/dist/DashboardBrowser/dashboard-share-dialog.component.js +46 -45
  247. package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
  248. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts.map +1 -1
  249. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +7 -7
  250. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +1 -1
  251. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
  252. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +15 -15
  253. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
  254. package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +1 -1
  255. package/dist/DataExplorer/components/view-selector/view-selector.component.js +17 -11
  256. package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +1 -1
  257. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +2 -4
  258. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  259. package/dist/DataExplorer/data-explorer-dashboard.component.js +83 -64
  260. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  261. package/dist/DataExplorer/data-explorer-resource.component.d.ts +0 -1
  262. package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
  263. package/dist/DataExplorer/data-explorer-resource.component.js +3 -6
  264. package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
  265. package/dist/DataExplorer/index.d.ts +2 -2
  266. package/dist/DataExplorer/index.d.ts.map +1 -1
  267. package/dist/DataExplorer/index.js +2 -2
  268. package/dist/DataExplorer/index.js.map +1 -1
  269. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +0 -1
  270. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
  271. package/dist/EntityAdmin/entity-admin-dashboard.component.js +6 -7
  272. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  273. package/dist/Home/home-application.d.ts +109 -27
  274. package/dist/Home/home-application.d.ts.map +1 -1
  275. package/dist/Home/home-application.js +351 -75
  276. package/dist/Home/home-application.js.map +1 -1
  277. package/dist/Home/home-dashboard.component.d.ts +48 -12
  278. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  279. package/dist/Home/home-dashboard.component.js +267 -187
  280. package/dist/Home/home-dashboard.component.js.map +1 -1
  281. package/dist/Lists/components/lists-browse-resource.component.d.ts +0 -1
  282. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  283. package/dist/Lists/components/lists-browse-resource.component.js +761 -685
  284. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  285. package/dist/Lists/components/lists-categories-resource.component.d.ts +0 -1
  286. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  287. package/dist/Lists/components/lists-categories-resource.component.js +340 -316
  288. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  289. package/dist/Lists/components/lists-my-lists-resource.component.d.ts +0 -1
  290. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  291. package/dist/Lists/components/lists-my-lists-resource.component.js +530 -482
  292. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  293. package/dist/Lists/components/lists-operations-resource.component.d.ts +0 -1
  294. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  295. package/dist/Lists/components/lists-operations-resource.component.js +508 -455
  296. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  297. package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts.map +1 -1
  298. package/dist/Lists/components/venn-diagram/venn-diagram.component.js +44 -39
  299. package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
  300. package/dist/Lists/index.d.ts +0 -1
  301. package/dist/Lists/index.d.ts.map +1 -1
  302. package/dist/Lists/index.js +0 -11
  303. package/dist/Lists/index.js.map +1 -1
  304. package/dist/MCP/components/mcp-connection-dialog.component.d.ts +0 -4
  305. package/dist/MCP/components/mcp-connection-dialog.component.d.ts.map +1 -1
  306. package/dist/MCP/components/mcp-connection-dialog.component.js +33 -39
  307. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
  308. package/dist/MCP/components/mcp-log-detail-panel.component.d.ts +0 -4
  309. package/dist/MCP/components/mcp-log-detail-panel.component.d.ts.map +1 -1
  310. package/dist/MCP/components/mcp-log-detail-panel.component.js +42 -44
  311. package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
  312. package/dist/MCP/components/mcp-server-dialog.component.d.ts +3 -4
  313. package/dist/MCP/components/mcp-server-dialog.component.d.ts.map +1 -1
  314. package/dist/MCP/components/mcp-server-dialog.component.js +186 -77
  315. package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
  316. package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts +0 -4
  317. package/dist/MCP/components/mcp-test-tool-dialog.component.d.ts.map +1 -1
  318. package/dist/MCP/components/mcp-test-tool-dialog.component.js +187 -187
  319. package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
  320. package/dist/MCP/index.d.ts +5 -5
  321. package/dist/MCP/index.d.ts.map +1 -1
  322. package/dist/MCP/index.js +5 -5
  323. package/dist/MCP/index.js.map +1 -1
  324. package/dist/MCP/mcp-dashboard.component.d.ts +65 -7
  325. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  326. package/dist/MCP/mcp-dashboard.component.js +976 -697
  327. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  328. package/dist/MCP/mcp-filter-panel.component.d.ts +54 -0
  329. package/dist/MCP/mcp-filter-panel.component.d.ts.map +1 -0
  330. package/dist/MCP/mcp-filter-panel.component.js +288 -0
  331. package/dist/MCP/mcp-filter-panel.component.js.map +1 -0
  332. package/dist/MCP/mcp-resource.component.d.ts +11 -5
  333. package/dist/MCP/mcp-resource.component.d.ts.map +1 -1
  334. package/dist/MCP/mcp-resource.component.js +8 -9
  335. package/dist/MCP/mcp-resource.component.js.map +1 -1
  336. package/dist/MCP/mcp.module.d.ts +16 -19
  337. package/dist/MCP/mcp.module.d.ts.map +1 -1
  338. package/dist/MCP/mcp.module.js +17 -26
  339. package/dist/MCP/mcp.module.js.map +1 -1
  340. package/dist/MCP/services/mcp-tools.service.d.ts +10 -4
  341. package/dist/MCP/services/mcp-tools.service.d.ts.map +1 -1
  342. package/dist/MCP/services/mcp-tools.service.js +5 -6
  343. package/dist/MCP/services/mcp-tools.service.js.map +1 -1
  344. package/dist/QueryBrowser/query-browser-resource.component.d.ts +0 -1
  345. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  346. package/dist/QueryBrowser/query-browser-resource.component.js +79 -88
  347. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  348. package/dist/Scheduling/components/job-slideout.component.d.ts.map +1 -1
  349. package/dist/Scheduling/components/job-slideout.component.js +117 -116
  350. package/dist/Scheduling/components/job-slideout.component.js.map +1 -1
  351. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +0 -4
  352. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
  353. package/dist/Scheduling/components/scheduling-activity-resource.component.js +3 -9
  354. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
  355. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
  356. package/dist/Scheduling/components/scheduling-activity.component.js +134 -134
  357. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  358. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +0 -4
  359. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  360. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +3 -9
  361. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  362. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  363. package/dist/Scheduling/components/scheduling-jobs.component.js +102 -97
  364. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  365. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +0 -4
  366. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
  367. package/dist/Scheduling/components/scheduling-overview-resource.component.js +3 -9
  368. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
  369. package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
  370. package/dist/Scheduling/components/scheduling-overview.component.js +127 -122
  371. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  372. package/dist/Scheduling/scheduling-dashboard.component.d.ts +0 -1
  373. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  374. package/dist/Scheduling/scheduling-dashboard.component.js +35 -43
  375. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  376. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +0 -4
  377. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  378. package/dist/SystemDiagnostics/system-diagnostics.component.js +1552 -1534
  379. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  380. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  381. package/dist/Testing/components/testing-analytics-resource.component.js +3 -3
  382. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  383. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  384. package/dist/Testing/components/testing-analytics.component.js +30 -30
  385. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  386. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  387. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +3 -3
  388. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  389. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
  390. package/dist/Testing/components/testing-dashboard-tab.component.js +7 -7
  391. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  392. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
  393. package/dist/Testing/components/testing-explorer-resource.component.js +3 -3
  394. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
  395. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  396. package/dist/Testing/components/testing-explorer.component.js +42 -35
  397. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  398. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
  399. package/dist/Testing/components/testing-review-resource.component.js +3 -3
  400. package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
  401. package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
  402. package/dist/Testing/components/testing-review.component.js +16 -16
  403. package/dist/Testing/components/testing-review.component.js.map +1 -1
  404. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  405. package/dist/Testing/components/testing-runs-resource.component.js +3 -3
  406. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  407. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
  408. package/dist/Testing/components/testing-runs.component.js +15 -15
  409. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  410. package/dist/Testing/components/widgets/oracle-breakdown-table.component.d.ts.map +1 -1
  411. package/dist/Testing/components/widgets/oracle-breakdown-table.component.js +73 -61
  412. package/dist/Testing/components/widgets/oracle-breakdown-table.component.js.map +1 -1
  413. package/dist/Testing/components/widgets/suite-tree.component.d.ts.map +1 -1
  414. package/dist/Testing/components/widgets/suite-tree.component.js +34 -31
  415. package/dist/Testing/components/widgets/suite-tree.component.js.map +1 -1
  416. package/dist/Testing/components/widgets/test-run-detail-panel.component.d.ts.map +1 -1
  417. package/dist/Testing/components/widgets/test-run-detail-panel.component.js +180 -171
  418. package/dist/Testing/components/widgets/test-run-detail-panel.component.js.map +1 -1
  419. package/dist/Testing/testing-dashboard.component.d.ts +0 -1
  420. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  421. package/dist/Testing/testing-dashboard.component.js +9 -8
  422. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  423. package/dist/VersionHistory/components/diff-resource.component.d.ts +119 -0
  424. package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -0
  425. package/dist/VersionHistory/components/diff-resource.component.js +1162 -0
  426. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -0
  427. package/dist/VersionHistory/components/graph-resource.component.d.ts +67 -0
  428. package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -0
  429. package/dist/VersionHistory/components/graph-resource.component.js +521 -0
  430. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -0
  431. package/dist/VersionHistory/components/index.d.ts +5 -0
  432. package/dist/VersionHistory/components/index.d.ts.map +1 -0
  433. package/dist/VersionHistory/components/index.js +5 -0
  434. package/dist/VersionHistory/components/index.js.map +1 -0
  435. package/dist/VersionHistory/components/labels-resource.component.d.ts +89 -0
  436. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -0
  437. package/dist/VersionHistory/components/labels-resource.component.js +968 -0
  438. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -0
  439. package/dist/VersionHistory/components/restore-resource.component.d.ts +40 -0
  440. package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -0
  441. package/dist/VersionHistory/components/restore-resource.component.js +472 -0
  442. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -0
  443. package/dist/VersionHistory/index.d.ts +2 -0
  444. package/dist/VersionHistory/index.d.ts.map +1 -0
  445. package/dist/VersionHistory/index.js +2 -0
  446. package/dist/VersionHistory/index.js.map +1 -0
  447. package/dist/module.d.ts +42 -36
  448. package/dist/module.d.ts.map +1 -1
  449. package/dist/module.js +41 -7
  450. package/dist/module.js.map +1 -1
  451. package/dist/public-api.d.ts +20 -19
  452. package/dist/public-api.d.ts.map +1 -1
  453. package/dist/public-api.js +22 -120
  454. package/dist/public-api.js.map +1 -1
  455. package/dist/shared/pipes/highlight-search.pipe.d.ts.map +1 -1
  456. package/dist/shared/pipes/highlight-search.pipe.js +2 -1
  457. package/dist/shared/pipes/highlight-search.pipe.js.map +1 -1
  458. package/package.json +64 -62
@@ -15,12 +15,11 @@ import { trigger, transition, style, animate } from '@angular/animations';
15
15
  import { GraphQLDataProvider, gql } from '@memberjunction/graphql-dataprovider';
16
16
  import { UserInfoEngine } from '@memberjunction/core-entities';
17
17
  import * as i0 from "@angular/core";
18
- import * as i1 from "@angular/common";
19
- import * as i2 from "@angular/forms";
20
- import * as i3 from "@progress/kendo-angular-buttons";
21
- import * as i4 from "@progress/kendo-angular-dropdowns";
22
- import * as i5 from "@progress/kendo-angular-inputs";
23
- import * as i6 from "@memberjunction/ng-code-editor";
18
+ import * as i1 from "@angular/forms";
19
+ import * as i2 from "@progress/kendo-angular-buttons";
20
+ import * as i3 from "@progress/kendo-angular-dropdowns";
21
+ import * as i4 from "@progress/kendo-angular-inputs";
22
+ import * as i5 from "@memberjunction/ng-code-editor";
24
23
  const _forTrack0 = ($index, $item) => $item.name;
25
24
  function MCPTestToolDialogComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
26
25
  const _r1 = i0.ɵɵgetCurrentView();
@@ -28,21 +27,21 @@ function MCPTestToolDialogComponent_Conditional_0_Template(rf, ctx) { if (rf & 1
28
27
  i0.ɵɵlistener("click", function MCPTestToolDialogComponent_Conditional_0_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeDialog()); });
29
28
  i0.ɵɵelementEnd();
30
29
  } }
31
- function MCPTestToolDialogComponent_div_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
30
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
32
31
  const _r4 = i0.ɵɵgetCurrentView();
33
32
  i0.ɵɵelementStart(0, "div", 19);
34
- i0.ɵɵlistener("mousedown", function MCPTestToolDialogComponent_div_1_Conditional_1_Template_div_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onResizeStart($event)); });
33
+ i0.ɵɵlistener("mousedown", function MCPTestToolDialogComponent_Conditional_1_Conditional_1_Template_div_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onResizeStart($event)); });
35
34
  i0.ɵɵelement(1, "div", 20);
36
35
  i0.ɵɵelementEnd();
37
36
  } if (rf & 2) {
38
37
  const ctx_r1 = i0.ɵɵnextContext(2);
39
38
  i0.ɵɵclassProp("active", ctx_r1.IsResizing);
40
39
  } }
41
- function MCPTestToolDialogComponent_div_1_div_27_ng_template_9_Template(rf, ctx) { if (rf & 1) {
42
- i0.ɵɵelementStart(0, "div", 37)(1, "span", 38);
40
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_27_ng_template_9_Template(rf, ctx) { if (rf & 1) {
41
+ i0.ɵɵelementStart(0, "div", 36)(1, "span", 37);
43
42
  i0.ɵɵtext(2);
44
43
  i0.ɵɵelementEnd();
45
- i0.ɵɵelementStart(3, "span", 39);
44
+ i0.ɵɵelementStart(3, "span", 38);
46
45
  i0.ɵɵtext(4);
47
46
  i0.ɵɵelementEnd()();
48
47
  } if (rf & 2) {
@@ -54,8 +53,8 @@ function MCPTestToolDialogComponent_div_1_div_27_ng_template_9_Template(rf, ctx)
54
53
  i0.ɵɵadvance();
55
54
  i0.ɵɵtextInterpolate1(" ", dataItem_r6.Status, " ");
56
55
  } }
57
- function MCPTestToolDialogComponent_div_1_div_27_ng_template_17_Conditional_3_Template(rf, ctx) { if (rf & 1) {
58
- i0.ɵɵelementStart(0, "span", 40);
56
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_27_ng_template_17_Conditional_3_Template(rf, ctx) { if (rf & 1) {
57
+ i0.ɵɵelementStart(0, "span", 39);
59
58
  i0.ɵɵtext(1);
60
59
  i0.ɵɵelementEnd();
61
60
  } if (rf & 2) {
@@ -63,11 +62,11 @@ function MCPTestToolDialogComponent_div_1_div_27_ng_template_17_Conditional_3_Te
63
62
  i0.ɵɵadvance();
64
63
  i0.ɵɵtextInterpolate(dataItem_r7.Description);
65
64
  } }
66
- function MCPTestToolDialogComponent_div_1_div_27_ng_template_17_Template(rf, ctx) { if (rf & 1) {
67
- i0.ɵɵelementStart(0, "div", 37)(1, "span", 38);
65
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_27_ng_template_17_Template(rf, ctx) { if (rf & 1) {
66
+ i0.ɵɵelementStart(0, "div", 36)(1, "span", 37);
68
67
  i0.ɵɵtext(2);
69
68
  i0.ɵɵelementEnd();
70
- i0.ɵɵtemplate(3, MCPTestToolDialogComponent_div_1_div_27_ng_template_17_Conditional_3_Template, 2, 1, "span", 40);
69
+ i0.ɵɵconditionalCreate(3, MCPTestToolDialogComponent_Conditional_1_Conditional_27_ng_template_17_Conditional_3_Template, 2, 1, "span", 39);
71
70
  i0.ɵɵelementEnd();
72
71
  } if (rf & 2) {
73
72
  const dataItem_r7 = ctx.$implicit;
@@ -76,14 +75,14 @@ function MCPTestToolDialogComponent_div_1_div_27_ng_template_17_Template(rf, ctx
76
75
  i0.ɵɵadvance();
77
76
  i0.ɵɵconditional(dataItem_r7.Description ? 3 : -1);
78
77
  } }
79
- function MCPTestToolDialogComponent_div_1_div_27_Conditional_18_Template(rf, ctx) { if (rf & 1) {
80
- i0.ɵɵelementStart(0, "span", 31);
78
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_27_Conditional_18_Template(rf, ctx) { if (rf & 1) {
79
+ i0.ɵɵelementStart(0, "span", 30);
81
80
  i0.ɵɵtext(1, "Select a server first");
82
81
  i0.ɵɵelementEnd();
83
82
  } }
84
- function MCPTestToolDialogComponent_div_1_div_27_Conditional_19_Template(rf, ctx) { if (rf & 1) {
85
- i0.ɵɵelementStart(0, "span", 32);
86
- i0.ɵɵelement(1, "i", 41);
83
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_27_Conditional_19_Template(rf, ctx) { if (rf & 1) {
84
+ i0.ɵɵelementStart(0, "span", 31);
85
+ i0.ɵɵelement(1, "i", 40);
87
86
  i0.ɵɵtext(2);
88
87
  i0.ɵɵelementEnd();
89
88
  } if (rf & 2) {
@@ -91,20 +90,20 @@ function MCPTestToolDialogComponent_div_1_div_27_Conditional_19_Template(rf, ctx
91
90
  i0.ɵɵadvance(2);
92
91
  i0.ɵɵtextInterpolate1(" ", ctx_r1.NoConnectionsWarning, " ");
93
92
  } }
94
- function MCPTestToolDialogComponent_div_1_div_27_Conditional_20_Template(rf, ctx) { if (rf & 1) {
95
- i0.ɵɵelementStart(0, "span", 33);
96
- i0.ɵɵelement(1, "i", 42);
93
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_27_Conditional_20_Template(rf, ctx) { if (rf & 1) {
94
+ i0.ɵɵelementStart(0, "span", 32);
95
+ i0.ɵɵelement(1, "i", 41);
97
96
  i0.ɵɵtext(2, " Auto-selected (only connection available) ");
98
97
  i0.ɵɵelementEnd();
99
98
  } }
100
- function MCPTestToolDialogComponent_div_1_div_27_ng_template_28_Template(rf, ctx) { if (rf & 1) {
99
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_27_ng_template_28_Template(rf, ctx) { if (rf & 1) {
101
100
  i0.ɵɵtext(0);
102
101
  } if (rf & 2) {
103
102
  const dataItem_r8 = ctx.$implicit;
104
103
  i0.ɵɵtextInterpolate1(" ", (dataItem_r8 == null ? null : dataItem_r8.ToolTitle) || (dataItem_r8 == null ? null : dataItem_r8.ToolName) || "Select a tool...", " ");
105
104
  } }
106
- function MCPTestToolDialogComponent_div_1_div_27_ng_template_29_Conditional_3_Template(rf, ctx) { if (rf & 1) {
107
- i0.ɵɵelementStart(0, "span", 40);
105
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_27_ng_template_29_Conditional_3_Template(rf, ctx) { if (rf & 1) {
106
+ i0.ɵɵelementStart(0, "span", 39);
108
107
  i0.ɵɵtext(1);
109
108
  i0.ɵɵelementEnd();
110
109
  } if (rf & 2) {
@@ -112,11 +111,11 @@ function MCPTestToolDialogComponent_div_1_div_27_ng_template_29_Conditional_3_Te
112
111
  i0.ɵɵadvance();
113
112
  i0.ɵɵtextInterpolate(dataItem_r9.ToolDescription);
114
113
  } }
115
- function MCPTestToolDialogComponent_div_1_div_27_ng_template_29_Template(rf, ctx) { if (rf & 1) {
116
- i0.ɵɵelementStart(0, "div", 43)(1, "span", 38);
114
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_27_ng_template_29_Template(rf, ctx) { if (rf & 1) {
115
+ i0.ɵɵelementStart(0, "div", 42)(1, "span", 37);
117
116
  i0.ɵɵtext(2);
118
117
  i0.ɵɵelementEnd();
119
- i0.ɵɵtemplate(3, MCPTestToolDialogComponent_div_1_div_27_ng_template_29_Conditional_3_Template, 2, 1, "span", 40);
118
+ i0.ɵɵconditionalCreate(3, MCPTestToolDialogComponent_Conditional_1_Conditional_27_ng_template_29_Conditional_3_Template, 2, 1, "span", 39);
120
119
  i0.ɵɵelementEnd();
121
120
  } if (rf & 2) {
122
121
  const dataItem_r9 = ctx.$implicit;
@@ -125,49 +124,51 @@ function MCPTestToolDialogComponent_div_1_div_27_ng_template_29_Template(rf, ctx
125
124
  i0.ɵɵadvance();
126
125
  i0.ɵɵconditional(dataItem_r9.ToolDescription ? 3 : -1);
127
126
  } }
128
- function MCPTestToolDialogComponent_div_1_div_27_Conditional_30_Template(rf, ctx) { if (rf & 1) {
129
- i0.ɵɵelementStart(0, "span", 31);
127
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_27_Conditional_30_Template(rf, ctx) { if (rf & 1) {
128
+ i0.ɵɵelementStart(0, "span", 30);
130
129
  i0.ɵɵtext(1, "Select a server first");
131
130
  i0.ɵɵelementEnd();
132
131
  } }
133
- function MCPTestToolDialogComponent_div_1_div_27_Template(rf, ctx) { if (rf & 1) {
132
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_27_Template(rf, ctx) { if (rf & 1) {
134
133
  const _r5 = i0.ɵɵgetCurrentView();
135
- i0.ɵɵelementStart(0, "div", 21)(1, "div", 22)(2, "div", 23)(3, "label", 24);
136
- i0.ɵɵelement(4, "i", 25);
134
+ i0.ɵɵelementStart(0, "div", 16)(1, "div", 21)(2, "div", 22)(3, "label", 23);
135
+ i0.ɵɵelement(4, "i", 24);
137
136
  i0.ɵɵtext(5, " Server ");
138
- i0.ɵɵelementStart(6, "span", 26);
137
+ i0.ɵɵelementStart(6, "span", 25);
139
138
  i0.ɵɵtext(7, "*");
140
139
  i0.ɵɵelementEnd()();
141
- i0.ɵɵelementStart(8, "kendo-dropdownlist", 27);
142
- i0.ɵɵtwoWayListener("ngModelChange", function MCPTestToolDialogComponent_div_1_div_27_Template_kendo_dropdownlist_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.ServerID, $event) || (ctx_r1.ServerID = $event); return i0.ɵɵresetView($event); });
143
- i0.ɵɵlistener("valueChange", function MCPTestToolDialogComponent_div_1_div_27_Template_kendo_dropdownlist_valueChange_8_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onServerChange()); })("filterChange", function MCPTestToolDialogComponent_div_1_div_27_Template_kendo_dropdownlist_filterChange_8_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onServerFilterChange($event)); });
144
- i0.ɵɵtemplate(9, MCPTestToolDialogComponent_div_1_div_27_ng_template_9_Template, 5, 4, "ng-template", 28);
140
+ i0.ɵɵelementStart(8, "kendo-dropdownlist", 26);
141
+ i0.ɵɵtwoWayListener("ngModelChange", function MCPTestToolDialogComponent_Conditional_1_Conditional_27_Template_kendo_dropdownlist_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.ServerID, $event) || (ctx_r1.ServerID = $event); return i0.ɵɵresetView($event); });
142
+ i0.ɵɵlistener("valueChange", function MCPTestToolDialogComponent_Conditional_1_Conditional_27_Template_kendo_dropdownlist_valueChange_8_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onServerChange()); })("filterChange", function MCPTestToolDialogComponent_Conditional_1_Conditional_27_Template_kendo_dropdownlist_filterChange_8_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onServerFilterChange($event)); });
143
+ i0.ɵɵtemplate(9, MCPTestToolDialogComponent_Conditional_1_Conditional_27_ng_template_9_Template, 5, 4, "ng-template", 27);
145
144
  i0.ɵɵelementEnd()();
146
- i0.ɵɵelementStart(10, "div", 23)(11, "label", 24);
147
- i0.ɵɵelement(12, "i", 29);
145
+ i0.ɵɵelementStart(10, "div", 22)(11, "label", 23);
146
+ i0.ɵɵelement(12, "i", 28);
148
147
  i0.ɵɵtext(13, " Connection ");
149
- i0.ɵɵelementStart(14, "span", 26);
148
+ i0.ɵɵelementStart(14, "span", 25);
150
149
  i0.ɵɵtext(15, "*");
151
150
  i0.ɵɵelementEnd()();
152
- i0.ɵɵelementStart(16, "kendo-dropdownlist", 30);
153
- i0.ɵɵtwoWayListener("ngModelChange", function MCPTestToolDialogComponent_div_1_div_27_Template_kendo_dropdownlist_ngModelChange_16_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.ConnectionID, $event) || (ctx_r1.ConnectionID = $event); return i0.ɵɵresetView($event); });
154
- i0.ɵɵlistener("valueChange", function MCPTestToolDialogComponent_div_1_div_27_Template_kendo_dropdownlist_valueChange_16_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onConnectionChange()); })("filterChange", function MCPTestToolDialogComponent_div_1_div_27_Template_kendo_dropdownlist_filterChange_16_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onConnectionFilterChange($event)); });
155
- i0.ɵɵtemplate(17, MCPTestToolDialogComponent_div_1_div_27_ng_template_17_Template, 4, 2, "ng-template", 28);
151
+ i0.ɵɵelementStart(16, "kendo-dropdownlist", 29);
152
+ i0.ɵɵtwoWayListener("ngModelChange", function MCPTestToolDialogComponent_Conditional_1_Conditional_27_Template_kendo_dropdownlist_ngModelChange_16_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.ConnectionID, $event) || (ctx_r1.ConnectionID = $event); return i0.ɵɵresetView($event); });
153
+ i0.ɵɵlistener("valueChange", function MCPTestToolDialogComponent_Conditional_1_Conditional_27_Template_kendo_dropdownlist_valueChange_16_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onConnectionChange()); })("filterChange", function MCPTestToolDialogComponent_Conditional_1_Conditional_27_Template_kendo_dropdownlist_filterChange_16_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onConnectionFilterChange($event)); });
154
+ i0.ɵɵtemplate(17, MCPTestToolDialogComponent_Conditional_1_Conditional_27_ng_template_17_Template, 4, 2, "ng-template", 27);
156
155
  i0.ɵɵelementEnd();
157
- i0.ɵɵtemplate(18, MCPTestToolDialogComponent_div_1_div_27_Conditional_18_Template, 2, 0, "span", 31)(19, MCPTestToolDialogComponent_div_1_div_27_Conditional_19_Template, 3, 1, "span", 32)(20, MCPTestToolDialogComponent_div_1_div_27_Conditional_20_Template, 3, 0, "span", 33);
156
+ i0.ɵɵconditionalCreate(18, MCPTestToolDialogComponent_Conditional_1_Conditional_27_Conditional_18_Template, 2, 0, "span", 30);
157
+ i0.ɵɵconditionalCreate(19, MCPTestToolDialogComponent_Conditional_1_Conditional_27_Conditional_19_Template, 3, 1, "span", 31);
158
+ i0.ɵɵconditionalCreate(20, MCPTestToolDialogComponent_Conditional_1_Conditional_27_Conditional_20_Template, 3, 0, "span", 32);
158
159
  i0.ɵɵelementEnd();
159
- i0.ɵɵelementStart(21, "div", 23)(22, "label", 24);
160
- i0.ɵɵelement(23, "i", 34);
160
+ i0.ɵɵelementStart(21, "div", 22)(22, "label", 23);
161
+ i0.ɵɵelement(23, "i", 33);
161
162
  i0.ɵɵtext(24, " Tool ");
162
- i0.ɵɵelementStart(25, "span", 26);
163
+ i0.ɵɵelementStart(25, "span", 25);
163
164
  i0.ɵɵtext(26, "*");
164
165
  i0.ɵɵelementEnd()();
165
- i0.ɵɵelementStart(27, "kendo-dropdownlist", 35);
166
- i0.ɵɵtwoWayListener("ngModelChange", function MCPTestToolDialogComponent_div_1_div_27_Template_kendo_dropdownlist_ngModelChange_27_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.ToolID, $event) || (ctx_r1.ToolID = $event); return i0.ɵɵresetView($event); });
167
- i0.ɵɵlistener("valueChange", function MCPTestToolDialogComponent_div_1_div_27_Template_kendo_dropdownlist_valueChange_27_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onToolChange()); })("filterChange", function MCPTestToolDialogComponent_div_1_div_27_Template_kendo_dropdownlist_filterChange_27_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onToolFilterChange($event)); });
168
- i0.ɵɵtemplate(28, MCPTestToolDialogComponent_div_1_div_27_ng_template_28_Template, 1, 1, "ng-template", 36)(29, MCPTestToolDialogComponent_div_1_div_27_ng_template_29_Template, 4, 2, "ng-template", 28);
166
+ i0.ɵɵelementStart(27, "kendo-dropdownlist", 34);
167
+ i0.ɵɵtwoWayListener("ngModelChange", function MCPTestToolDialogComponent_Conditional_1_Conditional_27_Template_kendo_dropdownlist_ngModelChange_27_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.ToolID, $event) || (ctx_r1.ToolID = $event); return i0.ɵɵresetView($event); });
168
+ i0.ɵɵlistener("valueChange", function MCPTestToolDialogComponent_Conditional_1_Conditional_27_Template_kendo_dropdownlist_valueChange_27_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onToolChange()); })("filterChange", function MCPTestToolDialogComponent_Conditional_1_Conditional_27_Template_kendo_dropdownlist_filterChange_27_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onToolFilterChange($event)); });
169
+ i0.ɵɵtemplate(28, MCPTestToolDialogComponent_Conditional_1_Conditional_27_ng_template_28_Template, 1, 1, "ng-template", 35)(29, MCPTestToolDialogComponent_Conditional_1_Conditional_27_ng_template_29_Template, 4, 2, "ng-template", 27);
169
170
  i0.ɵɵelementEnd();
170
- i0.ɵɵtemplate(30, MCPTestToolDialogComponent_div_1_div_27_Conditional_30_Template, 2, 0, "span", 31);
171
+ i0.ɵɵconditionalCreate(30, MCPTestToolDialogComponent_Conditional_1_Conditional_27_Conditional_30_Template, 2, 0, "span", 30);
171
172
  i0.ɵɵelementEnd()()();
172
173
  } if (rf & 2) {
173
174
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -192,8 +193,8 @@ function MCPTestToolDialogComponent_div_1_div_27_Template(rf, ctx) { if (rf & 1)
192
193
  i0.ɵɵadvance(3);
193
194
  i0.ɵɵconditional(!ctx_r1.ServerID ? 30 : -1);
194
195
  } }
195
- function MCPTestToolDialogComponent_div_1_div_28_Conditional_6_Template(rf, ctx) { if (rf & 1) {
196
- i0.ɵɵelementStart(0, "p", 47);
196
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_6_Template(rf, ctx) { if (rf & 1) {
197
+ i0.ɵɵelementStart(0, "p", 46);
197
198
  i0.ɵɵtext(1);
198
199
  i0.ɵɵelementEnd();
199
200
  } if (rf & 2) {
@@ -201,20 +202,20 @@ function MCPTestToolDialogComponent_div_1_div_28_Conditional_6_Template(rf, ctx)
201
202
  i0.ɵɵadvance();
202
203
  i0.ɵɵtextInterpolate(ctx_r1.SelectedTool == null ? null : ctx_r1.SelectedTool.ToolDescription);
203
204
  } }
204
- function MCPTestToolDialogComponent_div_1_div_28_Conditional_14_Template(rf, ctx) { if (rf & 1) {
205
- i0.ɵɵelementStart(0, "div", 50);
206
- i0.ɵɵelement(1, "i", 52);
205
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_14_Template(rf, ctx) { if (rf & 1) {
206
+ i0.ɵɵelementStart(0, "div", 49);
207
+ i0.ɵɵelement(1, "i", 51);
207
208
  i0.ɵɵelementStart(2, "p");
208
209
  i0.ɵɵtext(3, "This tool requires no parameters.");
209
210
  i0.ɵɵelementEnd()();
210
211
  } }
211
- function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
212
- i0.ɵɵelementStart(0, "span", 26);
212
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
213
+ i0.ɵɵelementStart(0, "span", 25);
213
214
  i0.ɵɵtext(1, "*");
214
215
  i0.ɵɵelementEnd();
215
216
  } }
216
- function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_4_Template(rf, ctx) { if (rf & 1) {
217
- i0.ɵɵelementStart(0, "p", 57);
217
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_4_Template(rf, ctx) { if (rf & 1) {
218
+ i0.ɵɵelementStart(0, "p", 56);
218
219
  i0.ɵɵtext(1);
219
220
  i0.ɵɵelementEnd();
220
221
  } if (rf & 2) {
@@ -222,11 +223,11 @@ function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditiona
222
223
  i0.ɵɵadvance();
223
224
  i0.ɵɵtextInterpolate(config_r10.description);
224
225
  } }
225
- function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_5_Template(rf, ctx) { if (rf & 1) {
226
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_5_Template(rf, ctx) { if (rf & 1) {
226
227
  const _r11 = i0.ɵɵgetCurrentView();
227
- i0.ɵɵelementStart(0, "kendo-dropdownlist", 61);
228
- i0.ɵɵtwoWayListener("ngModelChange", function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_5_Template_kendo_dropdownlist_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r11); const config_r10 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.ParameterValues[config_r10.name], $event) || (ctx_r1.ParameterValues[config_r10.name] = $event); return i0.ɵɵresetView($event); });
229
- i0.ɵɵlistener("valueChange", function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_5_Template_kendo_dropdownlist_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r11); const config_r10 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onParameterChange(config_r10.name, $event)); });
228
+ i0.ɵɵelementStart(0, "kendo-dropdownlist", 60);
229
+ i0.ɵɵtwoWayListener("ngModelChange", function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_5_Template_kendo_dropdownlist_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r11); const config_r10 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.ParameterValues[config_r10.name], $event) || (ctx_r1.ParameterValues[config_r10.name] = $event); return i0.ɵɵresetView($event); });
230
+ i0.ɵɵlistener("valueChange", function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_5_Template_kendo_dropdownlist_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r11); const config_r10 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onParameterChange(config_r10.name, $event)); });
230
231
  i0.ɵɵelementEnd();
231
232
  } if (rf & 2) {
232
233
  const config_r10 = i0.ɵɵnextContext().$implicit;
@@ -234,12 +235,12 @@ function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditiona
234
235
  i0.ɵɵproperty("data", config_r10.enumValues)("valuePrimitive", true);
235
236
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.ParameterValues[config_r10.name]);
236
237
  } }
237
- function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_6_Template(rf, ctx) { if (rf & 1) {
238
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_6_Template(rf, ctx) { if (rf & 1) {
238
239
  const _r12 = i0.ɵɵgetCurrentView();
239
- i0.ɵɵelementStart(0, "div", 59)(1, "input", 62);
240
- i0.ɵɵlistener("change", function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_6_Template_input_change_1_listener($event) { i0.ɵɵrestoreView(_r12); const config_r10 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onParameterChange(config_r10.name, $event.target.checked)); });
240
+ i0.ɵɵelementStart(0, "div", 58)(1, "input", 61);
241
+ i0.ɵɵlistener("change", function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_6_Template_input_change_1_listener($event) { i0.ɵɵrestoreView(_r12); const config_r10 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onParameterChange(config_r10.name, $event.target.checked)); });
241
242
  i0.ɵɵelementEnd();
242
- i0.ɵɵelementStart(2, "label", 63);
243
+ i0.ɵɵelementStart(2, "label", 62);
243
244
  i0.ɵɵtext(3, "Enabled");
244
245
  i0.ɵɵelementEnd()();
245
246
  } if (rf & 2) {
@@ -250,11 +251,11 @@ function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditiona
250
251
  i0.ɵɵadvance();
251
252
  i0.ɵɵproperty("for", "param-" + config_r10.name);
252
253
  } }
253
- function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_7_Template(rf, ctx) { if (rf & 1) {
254
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_7_Template(rf, ctx) { if (rf & 1) {
254
255
  const _r13 = i0.ɵɵgetCurrentView();
255
- i0.ɵɵelementStart(0, "kendo-numerictextbox", 64);
256
- i0.ɵɵtwoWayListener("ngModelChange", function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_7_Template_kendo_numerictextbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r13); const config_r10 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.ParameterValues[config_r10.name], $event) || (ctx_r1.ParameterValues[config_r10.name] = $event); return i0.ɵɵresetView($event); });
257
- i0.ɵɵlistener("valueChange", function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_7_Template_kendo_numerictextbox_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r13); const config_r10 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onParameterChange(config_r10.name, $event)); });
256
+ i0.ɵɵelementStart(0, "kendo-numerictextbox", 63);
257
+ i0.ɵɵtwoWayListener("ngModelChange", function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_7_Template_kendo_numerictextbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r13); const config_r10 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.ParameterValues[config_r10.name], $event) || (ctx_r1.ParameterValues[config_r10.name] = $event); return i0.ɵɵresetView($event); });
258
+ i0.ɵɵlistener("valueChange", function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_7_Template_kendo_numerictextbox_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r13); const config_r10 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onParameterChange(config_r10.name, $event)); });
258
259
  i0.ɵɵelementEnd();
259
260
  } if (rf & 2) {
260
261
  const config_r10 = i0.ɵɵnextContext().$implicit;
@@ -262,25 +263,24 @@ function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditiona
262
263
  i0.ɵɵproperty("format", config_r10.type === "integer" ? "n0" : "n")("step", config_r10.type === "integer" ? 1 : 0.1);
263
264
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.ParameterValues[config_r10.name]);
264
265
  } }
265
- function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_8_Template(rf, ctx) { if (rf & 1) {
266
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_8_Template(rf, ctx) { if (rf & 1) {
266
267
  const _r14 = i0.ɵɵgetCurrentView();
267
- i0.ɵɵelementStart(0, "textarea", 65);
268
- i0.ɵɵlistener("input", function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_8_Template_textarea_input_0_listener($event) { i0.ɵɵrestoreView(_r14); const config_r10 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onTextareaChange(config_r10.name, $event.target.value, config_r10)); });
268
+ i0.ɵɵelementStart(0, "textarea", 64);
269
+ i0.ɵɵlistener("input", function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_8_Template_textarea_input_0_listener($event) { i0.ɵɵrestoreView(_r14); const config_r10 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onTextareaChange(config_r10.name, $event.target.value, config_r10)); });
269
270
  i0.ɵɵelementEnd();
270
- i0.ɵɵelementStart(1, "span", 31);
271
+ i0.ɵɵelementStart(1, "span", 30);
271
272
  i0.ɵɵtext(2, "Enter valid JSON");
272
273
  i0.ɵɵelementEnd();
273
274
  } if (rf & 2) {
274
275
  const config_r10 = i0.ɵɵnextContext().$implicit;
275
276
  const ctx_r1 = i0.ɵɵnextContext(4);
276
- i0.ɵɵpropertyInterpolate1("placeholder", "Enter JSON ", config_r10.type, "...");
277
- i0.ɵɵproperty("value", ctx_r1.getTextareaValue(config_r10.name));
277
+ i0.ɵɵproperty("placeholder", i0.ɵɵinterpolate1("Enter JSON ", config_r10.type, "..."))("value", ctx_r1.getTextareaValue(config_r10.name));
278
278
  } }
279
- function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_9_Conditional_0_Template(rf, ctx) { if (rf & 1) {
279
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_9_Conditional_0_Template(rf, ctx) { if (rf & 1) {
280
280
  const _r15 = i0.ɵɵgetCurrentView();
281
- i0.ɵɵelementStart(0, "textarea", 68);
282
- i0.ɵɵtwoWayListener("ngModelChange", function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_9_Conditional_0_Template_textarea_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r15); const config_r10 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.ParameterValues[config_r10.name], $event) || (ctx_r1.ParameterValues[config_r10.name] = $event); return i0.ɵɵresetView($event); });
283
- i0.ɵɵlistener("input", function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_9_Conditional_0_Template_textarea_input_0_listener($event) { i0.ɵɵrestoreView(_r15); const config_r10 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onParameterChange(config_r10.name, $event.target.value)); });
281
+ i0.ɵɵelementStart(0, "textarea", 67);
282
+ i0.ɵɵtwoWayListener("ngModelChange", function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_9_Conditional_0_Template_textarea_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r15); const config_r10 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.ParameterValues[config_r10.name], $event) || (ctx_r1.ParameterValues[config_r10.name] = $event); return i0.ɵɵresetView($event); });
283
+ i0.ɵɵlistener("input", function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_9_Conditional_0_Template_textarea_input_0_listener($event) { i0.ɵɵrestoreView(_r15); const config_r10 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onParameterChange(config_r10.name, $event.target.value)); });
284
284
  i0.ɵɵelementEnd();
285
285
  } if (rf & 2) {
286
286
  const config_r10 = i0.ɵɵnextContext(2).$implicit;
@@ -288,11 +288,11 @@ function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditiona
288
288
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.ParameterValues[config_r10.name]);
289
289
  i0.ɵɵproperty("placeholder", config_r10.description || "Enter value...");
290
290
  } }
291
- function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_9_Conditional_1_Template(rf, ctx) { if (rf & 1) {
291
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_9_Conditional_1_Template(rf, ctx) { if (rf & 1) {
292
292
  const _r16 = i0.ɵɵgetCurrentView();
293
- i0.ɵɵelementStart(0, "kendo-textbox", 69);
294
- i0.ɵɵtwoWayListener("ngModelChange", function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_9_Conditional_1_Template_kendo_textbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r16); const config_r10 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.ParameterValues[config_r10.name], $event) || (ctx_r1.ParameterValues[config_r10.name] = $event); return i0.ɵɵresetView($event); });
295
- i0.ɵɵlistener("valueChange", function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_9_Conditional_1_Template_kendo_textbox_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r16); const config_r10 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onParameterChange(config_r10.name, $event)); });
293
+ i0.ɵɵelementStart(0, "kendo-textbox", 68);
294
+ i0.ɵɵtwoWayListener("ngModelChange", function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_9_Conditional_1_Template_kendo_textbox_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r16); const config_r10 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.ParameterValues[config_r10.name], $event) || (ctx_r1.ParameterValues[config_r10.name] = $event); return i0.ɵɵresetView($event); });
295
+ i0.ɵɵlistener("valueChange", function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_9_Conditional_1_Template_kendo_textbox_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r16); const config_r10 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onParameterChange(config_r10.name, $event)); });
296
296
  i0.ɵɵelementEnd();
297
297
  } if (rf & 2) {
298
298
  const config_r10 = i0.ɵɵnextContext(2).$implicit;
@@ -300,19 +300,20 @@ function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditiona
300
300
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.ParameterValues[config_r10.name]);
301
301
  i0.ɵɵproperty("placeholder", config_r10.description || "Enter value...");
302
302
  } }
303
- function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_9_Template(rf, ctx) { if (rf & 1) {
304
- i0.ɵɵtemplate(0, MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_9_Conditional_0_Template, 1, 2, "textarea", 66)(1, MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_9_Conditional_1_Template, 1, 2, "kendo-textbox", 67);
303
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_9_Template(rf, ctx) { if (rf & 1) {
304
+ i0.ɵɵconditionalCreate(0, MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_9_Conditional_0_Template, 1, 2, "textarea", 65)(1, MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_9_Conditional_1_Template, 1, 2, "kendo-textbox", 66);
305
305
  } if (rf & 2) {
306
306
  const config_r10 = i0.ɵɵnextContext().$implicit;
307
307
  const ctx_r1 = i0.ɵɵnextContext(4);
308
308
  i0.ɵɵconditional(ctx_r1.isTextarea(config_r10) ? 0 : 1);
309
309
  } }
310
- function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Template(rf, ctx) { if (rf & 1) {
311
- i0.ɵɵelementStart(0, "div", 55)(1, "label", 56);
310
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Template(rf, ctx) { if (rf & 1) {
311
+ i0.ɵɵelementStart(0, "div", 54)(1, "label", 55);
312
312
  i0.ɵɵtext(2);
313
- i0.ɵɵtemplate(3, MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_3_Template, 2, 0, "span", 26);
313
+ i0.ɵɵconditionalCreate(3, MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_3_Template, 2, 0, "span", 25);
314
314
  i0.ɵɵelementEnd();
315
- i0.ɵɵtemplate(4, MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_4_Template, 2, 1, "p", 57)(5, MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_5_Template, 1, 3, "kendo-dropdownlist", 58)(6, MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_6_Template, 4, 3, "div", 59)(7, MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_7_Template, 1, 3, "kendo-numerictextbox", 60)(8, MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_8_Template, 3, 3)(9, MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Conditional_9_Template, 2, 1);
315
+ i0.ɵɵconditionalCreate(4, MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_4_Template, 2, 1, "p", 56);
316
+ i0.ɵɵconditionalCreate(5, MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_5_Template, 1, 3, "kendo-dropdownlist", 57)(6, MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_6_Template, 4, 3, "div", 58)(7, MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_7_Template, 1, 3, "kendo-numerictextbox", 59)(8, MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_8_Template, 3, 3)(9, MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Conditional_9_Template, 2, 1);
316
317
  i0.ɵɵelementEnd();
317
318
  } if (rf & 2) {
318
319
  const config_r10 = ctx.$implicit;
@@ -326,33 +327,33 @@ function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Template(r
326
327
  i0.ɵɵadvance();
327
328
  i0.ɵɵconditional(config_r10.enumValues.length > 0 ? 5 : config_r10.type === "boolean" ? 6 : config_r10.type === "number" || config_r10.type === "integer" ? 7 : config_r10.type === "array" || config_r10.type === "object" ? 8 : 9);
328
329
  } }
329
- function MCPTestToolDialogComponent_div_1_div_28_Conditional_15_Template(rf, ctx) { if (rf & 1) {
330
- i0.ɵɵelementStart(0, "div", 51)(1, "h4", 53);
330
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_Template(rf, ctx) { if (rf & 1) {
331
+ i0.ɵɵelementStart(0, "div", 50)(1, "h4", 52);
331
332
  i0.ɵɵtext(2, "Parameters");
332
333
  i0.ɵɵelementEnd();
333
- i0.ɵɵrepeaterCreate(3, MCPTestToolDialogComponent_div_1_div_28_Conditional_15_For_4_Template, 10, 6, "div", 54, _forTrack0);
334
+ i0.ɵɵrepeaterCreate(3, MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_For_4_Template, 10, 6, "div", 53, _forTrack0);
334
335
  i0.ɵɵelementEnd();
335
336
  } if (rf & 2) {
336
337
  const ctx_r1 = i0.ɵɵnextContext(3);
337
338
  i0.ɵɵadvance(3);
338
339
  i0.ɵɵrepeater(ctx_r1.ParameterConfigs);
339
340
  } }
340
- function MCPTestToolDialogComponent_div_1_div_28_Template(rf, ctx) { if (rf & 1) {
341
- i0.ɵɵelementStart(0, "div", 21)(1, "div", 44)(2, "div", 45)(3, "h3", 46);
342
- i0.ɵɵelement(4, "i", 34);
341
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_28_Template(rf, ctx) { if (rf & 1) {
342
+ i0.ɵɵelementStart(0, "div", 16)(1, "div", 43)(2, "div", 44)(3, "h3", 45);
343
+ i0.ɵɵelement(4, "i", 33);
343
344
  i0.ɵɵtext(5);
344
345
  i0.ɵɵelementEnd();
345
- i0.ɵɵtemplate(6, MCPTestToolDialogComponent_div_1_div_28_Conditional_6_Template, 2, 1, "p", 47);
346
+ i0.ɵɵconditionalCreate(6, MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_6_Template, 2, 1, "p", 46);
346
347
  i0.ɵɵelementEnd();
347
- i0.ɵɵelementStart(7, "div", 48)(8, "span", 49);
348
- i0.ɵɵelement(9, "i", 25);
348
+ i0.ɵɵelementStart(7, "div", 47)(8, "span", 48);
349
+ i0.ɵɵelement(9, "i", 24);
349
350
  i0.ɵɵtext(10);
350
351
  i0.ɵɵelementEnd();
351
- i0.ɵɵelementStart(11, "span", 49);
352
- i0.ɵɵelement(12, "i", 29);
352
+ i0.ɵɵelementStart(11, "span", 48);
353
+ i0.ɵɵelement(12, "i", 28);
353
354
  i0.ɵɵtext(13);
354
355
  i0.ɵɵelementEnd()()();
355
- i0.ɵɵtemplate(14, MCPTestToolDialogComponent_div_1_div_28_Conditional_14_Template, 4, 0, "div", 50)(15, MCPTestToolDialogComponent_div_1_div_28_Conditional_15_Template, 5, 0, "div", 51);
356
+ i0.ɵɵconditionalCreate(14, MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_14_Template, 4, 0, "div", 49)(15, MCPTestToolDialogComponent_Conditional_1_Conditional_28_Conditional_15_Template, 5, 0, "div", 50);
356
357
  i0.ɵɵelementEnd();
357
358
  } if (rf & 2) {
358
359
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -367,20 +368,20 @@ function MCPTestToolDialogComponent_div_1_div_28_Template(rf, ctx) { if (rf & 1)
367
368
  i0.ɵɵadvance();
368
369
  i0.ɵɵconditional(ctx_r1.ParameterConfigs.length === 0 ? 14 : 15);
369
370
  } }
370
- function MCPTestToolDialogComponent_div_1_div_29_Conditional_3_Template(rf, ctx) { if (rf & 1) {
371
- i0.ɵɵelement(0, "i", 52);
372
- i0.ɵɵelementStart(1, "span", 80);
371
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_29_Conditional_3_Template(rf, ctx) { if (rf & 1) {
372
+ i0.ɵɵelement(0, "i", 51);
373
+ i0.ɵɵelementStart(1, "span", 78);
373
374
  i0.ɵɵtext(2, "Execution Successful");
374
375
  i0.ɵɵelementEnd();
375
376
  } }
376
- function MCPTestToolDialogComponent_div_1_div_29_Conditional_4_Template(rf, ctx) { if (rf & 1) {
377
- i0.ɵɵelement(0, "i", 81);
378
- i0.ɵɵelementStart(1, "span", 80);
377
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_29_Conditional_4_Template(rf, ctx) { if (rf & 1) {
378
+ i0.ɵɵelement(0, "i", 79);
379
+ i0.ɵɵelementStart(1, "span", 78);
379
380
  i0.ɵɵtext(2, "Execution Failed");
380
381
  i0.ɵɵelementEnd();
381
382
  } }
382
- function MCPTestToolDialogComponent_div_1_div_29_Conditional_5_Template(rf, ctx) { if (rf & 1) {
383
- i0.ɵɵelementStart(0, "span", 73);
383
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_29_Conditional_5_Template(rf, ctx) { if (rf & 1) {
384
+ i0.ɵɵelementStart(0, "span", 71);
384
385
  i0.ɵɵtext(1);
385
386
  i0.ɵɵelementEnd();
386
387
  } if (rf & 2) {
@@ -388,12 +389,12 @@ function MCPTestToolDialogComponent_div_1_div_29_Conditional_5_Template(rf, ctx)
388
389
  i0.ɵɵadvance();
389
390
  i0.ɵɵtextInterpolate1("", ctx_r1.ExecutionResult == null ? null : ctx_r1.ExecutionResult.DurationMs, "ms");
390
391
  } }
391
- function MCPTestToolDialogComponent_div_1_div_29_Conditional_22_Template(rf, ctx) { if (rf & 1) {
392
- i0.ɵɵelementStart(0, "div", 78)(1, "h4");
393
- i0.ɵɵelement(2, "i", 41);
392
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_29_Conditional_22_Template(rf, ctx) { if (rf & 1) {
393
+ i0.ɵɵelementStart(0, "div", 76)(1, "h4");
394
+ i0.ɵɵelement(2, "i", 40);
394
395
  i0.ɵɵtext(3, " Error");
395
396
  i0.ɵɵelementEnd();
396
- i0.ɵɵelementStart(4, "pre", 82);
397
+ i0.ɵɵelementStart(4, "pre", 80);
397
398
  i0.ɵɵtext(5);
398
399
  i0.ɵɵelementEnd()();
399
400
  } if (rf & 2) {
@@ -401,47 +402,49 @@ function MCPTestToolDialogComponent_div_1_div_29_Conditional_22_Template(rf, ctx
401
402
  i0.ɵɵadvance(5);
402
403
  i0.ɵɵtextInterpolate(ctx_r1.ExecutionResult == null ? null : ctx_r1.ExecutionResult.ErrorMessage);
403
404
  } }
404
- function MCPTestToolDialogComponent_div_1_div_29_Conditional_23_Template(rf, ctx) { if (rf & 1) {
405
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_29_Conditional_23_Template(rf, ctx) { if (rf & 1) {
405
406
  const _r17 = i0.ɵɵgetCurrentView();
406
- i0.ɵɵelementStart(0, "div", 79)(1, "div", 83)(2, "h4");
407
- i0.ɵɵelement(3, "i", 84);
407
+ i0.ɵɵelementStart(0, "div", 77)(1, "div", 81)(2, "h4");
408
+ i0.ɵɵelement(3, "i", 82);
408
409
  i0.ɵɵtext(4, " Result");
409
410
  i0.ɵɵelementEnd();
410
- i0.ɵɵelementStart(5, "button", 85);
411
- i0.ɵɵlistener("click", function MCPTestToolDialogComponent_div_1_div_29_Conditional_23_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.copyResult()); });
412
- i0.ɵɵelement(6, "i", 86);
411
+ i0.ɵɵelementStart(5, "button", 83);
412
+ i0.ɵɵlistener("click", function MCPTestToolDialogComponent_Conditional_1_Conditional_29_Conditional_23_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.copyResult()); });
413
+ i0.ɵɵelement(6, "i", 84);
413
414
  i0.ɵɵelementEnd()();
414
- i0.ɵɵelementStart(7, "div", 87);
415
- i0.ɵɵelement(8, "mj-code-editor", 88);
415
+ i0.ɵɵelementStart(7, "div", 85);
416
+ i0.ɵɵelement(8, "mj-code-editor", 86);
416
417
  i0.ɵɵelementEnd()();
417
418
  } if (rf & 2) {
418
419
  const ctx_r1 = i0.ɵɵnextContext(3);
419
420
  i0.ɵɵadvance(8);
420
421
  i0.ɵɵproperty("ngModel", ctx_r1.FormattedResult)("language", "json")("readonly", true);
421
422
  } }
422
- function MCPTestToolDialogComponent_div_1_div_29_Template(rf, ctx) { if (rf & 1) {
423
- i0.ɵɵelementStart(0, "div", 70)(1, "div", 71)(2, "div", 72);
424
- i0.ɵɵtemplate(3, MCPTestToolDialogComponent_div_1_div_29_Conditional_3_Template, 3, 0)(4, MCPTestToolDialogComponent_div_1_div_29_Conditional_4_Template, 3, 0)(5, MCPTestToolDialogComponent_div_1_div_29_Conditional_5_Template, 2, 1, "span", 73);
423
+ function MCPTestToolDialogComponent_Conditional_1_Conditional_29_Template(rf, ctx) { if (rf & 1) {
424
+ i0.ɵɵelementStart(0, "div", 17)(1, "div", 69)(2, "div", 70);
425
+ i0.ɵɵconditionalCreate(3, MCPTestToolDialogComponent_Conditional_1_Conditional_29_Conditional_3_Template, 3, 0)(4, MCPTestToolDialogComponent_Conditional_1_Conditional_29_Conditional_4_Template, 3, 0);
426
+ i0.ɵɵconditionalCreate(5, MCPTestToolDialogComponent_Conditional_1_Conditional_29_Conditional_5_Template, 2, 1, "span", 71);
425
427
  i0.ɵɵelementEnd();
426
- i0.ɵɵelementStart(6, "div", 74)(7, "div", 75)(8, "span", 76);
428
+ i0.ɵɵelementStart(6, "div", 72)(7, "div", 73)(8, "span", 74);
427
429
  i0.ɵɵtext(9, "Tool:");
428
430
  i0.ɵɵelementEnd();
429
- i0.ɵɵelementStart(10, "span", 77);
431
+ i0.ɵɵelementStart(10, "span", 75);
430
432
  i0.ɵɵtext(11);
431
433
  i0.ɵɵelementEnd()();
432
- i0.ɵɵelementStart(12, "div", 75)(13, "span", 76);
434
+ i0.ɵɵelementStart(12, "div", 73)(13, "span", 74);
433
435
  i0.ɵɵtext(14, "Server:");
434
436
  i0.ɵɵelementEnd();
435
- i0.ɵɵelementStart(15, "span", 77);
437
+ i0.ɵɵelementStart(15, "span", 75);
436
438
  i0.ɵɵtext(16);
437
439
  i0.ɵɵelementEnd()();
438
- i0.ɵɵelementStart(17, "div", 75)(18, "span", 76);
440
+ i0.ɵɵelementStart(17, "div", 73)(18, "span", 74);
439
441
  i0.ɵɵtext(19, "Connection:");
440
442
  i0.ɵɵelementEnd();
441
- i0.ɵɵelementStart(20, "span", 77);
443
+ i0.ɵɵelementStart(20, "span", 75);
442
444
  i0.ɵɵtext(21);
443
445
  i0.ɵɵelementEnd()()();
444
- i0.ɵɵtemplate(22, MCPTestToolDialogComponent_div_1_div_29_Conditional_22_Template, 6, 1, "div", 78)(23, MCPTestToolDialogComponent_div_1_div_29_Conditional_23_Template, 9, 3, "div", 79);
446
+ i0.ɵɵconditionalCreate(22, MCPTestToolDialogComponent_Conditional_1_Conditional_29_Conditional_22_Template, 6, 1, "div", 76);
447
+ i0.ɵɵconditionalCreate(23, MCPTestToolDialogComponent_Conditional_1_Conditional_29_Conditional_23_Template, 9, 3, "div", 77);
445
448
  i0.ɵɵelementEnd()();
446
449
  } if (rf & 2) {
447
450
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -462,38 +465,38 @@ function MCPTestToolDialogComponent_div_1_div_29_Template(rf, ctx) { if (rf & 1)
462
465
  i0.ɵɵadvance();
463
466
  i0.ɵɵconditional((ctx_r1.ExecutionResult == null ? null : ctx_r1.ExecutionResult.Result) ? 23 : -1);
464
467
  } }
465
- function MCPTestToolDialogComponent_div_1_Case_31_Template(rf, ctx) { if (rf & 1) {
468
+ function MCPTestToolDialogComponent_Conditional_1_Case_31_Template(rf, ctx) { if (rf & 1) {
466
469
  const _r18 = i0.ɵɵgetCurrentView();
467
- i0.ɵɵelementStart(0, "button", 89);
468
- i0.ɵɵlistener("click", function MCPTestToolDialogComponent_div_1_Case_31_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.proceedToConfig()); });
469
- i0.ɵɵelement(1, "i", 90);
470
+ i0.ɵɵelementStart(0, "button", 87);
471
+ i0.ɵɵlistener("click", function MCPTestToolDialogComponent_Conditional_1_Case_31_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.proceedToConfig()); });
472
+ i0.ɵɵelement(1, "i", 88);
470
473
  i0.ɵɵtext(2, " Next ");
471
474
  i0.ɵɵelementEnd();
472
- i0.ɵɵelementStart(3, "button", 91);
473
- i0.ɵɵlistener("click", function MCPTestToolDialogComponent_div_1_Case_31_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.closeDialog()); });
475
+ i0.ɵɵelementStart(3, "button", 89);
476
+ i0.ɵɵlistener("click", function MCPTestToolDialogComponent_Conditional_1_Case_31_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.closeDialog()); });
474
477
  i0.ɵɵtext(4, "Cancel");
475
478
  i0.ɵɵelementEnd();
476
479
  } if (rf & 2) {
477
480
  const ctx_r1 = i0.ɵɵnextContext(2);
478
481
  i0.ɵɵproperty("disabled", !ctx_r1.CanProceedToConfig);
479
482
  } }
480
- function MCPTestToolDialogComponent_div_1_Case_32_Conditional_1_Template(rf, ctx) { if (rf & 1) {
481
- i0.ɵɵelement(0, "i", 93);
483
+ function MCPTestToolDialogComponent_Conditional_1_Case_32_Conditional_1_Template(rf, ctx) { if (rf & 1) {
484
+ i0.ɵɵelement(0, "i", 91);
482
485
  i0.ɵɵtext(1, " Executing... ");
483
486
  } }
484
- function MCPTestToolDialogComponent_div_1_Case_32_Conditional_2_Template(rf, ctx) { if (rf & 1) {
485
- i0.ɵɵelement(0, "i", 94);
487
+ function MCPTestToolDialogComponent_Conditional_1_Case_32_Conditional_2_Template(rf, ctx) { if (rf & 1) {
488
+ i0.ɵɵelement(0, "i", 92);
486
489
  i0.ɵɵtext(1, " Execute Tool ");
487
490
  } }
488
- function MCPTestToolDialogComponent_div_1_Case_32_Template(rf, ctx) { if (rf & 1) {
491
+ function MCPTestToolDialogComponent_Conditional_1_Case_32_Template(rf, ctx) { if (rf & 1) {
489
492
  const _r19 = i0.ɵɵgetCurrentView();
490
- i0.ɵɵelementStart(0, "button", 89);
491
- i0.ɵɵlistener("click", function MCPTestToolDialogComponent_div_1_Case_32_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.executeTool()); });
492
- i0.ɵɵtemplate(1, MCPTestToolDialogComponent_div_1_Case_32_Conditional_1_Template, 2, 0)(2, MCPTestToolDialogComponent_div_1_Case_32_Conditional_2_Template, 2, 0);
493
+ i0.ɵɵelementStart(0, "button", 87);
494
+ i0.ɵɵlistener("click", function MCPTestToolDialogComponent_Conditional_1_Case_32_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.executeTool()); });
495
+ i0.ɵɵconditionalCreate(1, MCPTestToolDialogComponent_Conditional_1_Case_32_Conditional_1_Template, 2, 0)(2, MCPTestToolDialogComponent_Conditional_1_Case_32_Conditional_2_Template, 2, 0);
493
496
  i0.ɵɵelementEnd();
494
- i0.ɵɵelementStart(3, "button", 91);
495
- i0.ɵɵlistener("click", function MCPTestToolDialogComponent_div_1_Case_32_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.goBack()); });
496
- i0.ɵɵelement(4, "i", 92);
497
+ i0.ɵɵelementStart(3, "button", 89);
498
+ i0.ɵɵlistener("click", function MCPTestToolDialogComponent_Conditional_1_Case_32_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.goBack()); });
499
+ i0.ɵɵelement(4, "i", 90);
497
500
  i0.ɵɵtext(5, " Back ");
498
501
  i0.ɵɵelementEnd();
499
502
  } if (rf & 2) {
@@ -502,33 +505,33 @@ function MCPTestToolDialogComponent_div_1_Case_32_Template(rf, ctx) { if (rf & 1
502
505
  i0.ɵɵadvance();
503
506
  i0.ɵɵconditional(ctx_r1.IsExecuting ? 1 : 2);
504
507
  } }
505
- function MCPTestToolDialogComponent_div_1_Case_33_Template(rf, ctx) { if (rf & 1) {
508
+ function MCPTestToolDialogComponent_Conditional_1_Case_33_Template(rf, ctx) { if (rf & 1) {
506
509
  const _r20 = i0.ɵɵgetCurrentView();
507
- i0.ɵɵelementStart(0, "button", 95);
508
- i0.ɵɵlistener("click", function MCPTestToolDialogComponent_div_1_Case_33_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.runAgain()); });
509
- i0.ɵɵelement(1, "i", 96);
510
+ i0.ɵɵelementStart(0, "button", 93);
511
+ i0.ɵɵlistener("click", function MCPTestToolDialogComponent_Conditional_1_Case_33_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.runAgain()); });
512
+ i0.ɵɵelement(1, "i", 94);
510
513
  i0.ɵɵtext(2, " Run Again ");
511
514
  i0.ɵɵelementEnd();
512
- i0.ɵɵelementStart(3, "button", 91);
513
- i0.ɵɵlistener("click", function MCPTestToolDialogComponent_div_1_Case_33_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.goBack()); });
514
- i0.ɵɵelement(4, "i", 92);
515
+ i0.ɵɵelementStart(3, "button", 89);
516
+ i0.ɵɵlistener("click", function MCPTestToolDialogComponent_Conditional_1_Case_33_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.goBack()); });
517
+ i0.ɵɵelement(4, "i", 90);
515
518
  i0.ɵɵtext(5, " Edit Parameters ");
516
519
  i0.ɵɵelementEnd();
517
- i0.ɵɵelementStart(6, "button", 91);
518
- i0.ɵɵlistener("click", function MCPTestToolDialogComponent_div_1_Case_33_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.closeDialog()); });
520
+ i0.ɵɵelementStart(6, "button", 89);
521
+ i0.ɵɵlistener("click", function MCPTestToolDialogComponent_Conditional_1_Case_33_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.closeDialog()); });
519
522
  i0.ɵɵtext(7, "Close");
520
523
  i0.ɵɵelementEnd();
521
524
  } }
522
- function MCPTestToolDialogComponent_div_1_Template(rf, ctx) { if (rf & 1) {
525
+ function MCPTestToolDialogComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
523
526
  const _r3 = i0.ɵɵgetCurrentView();
524
527
  i0.ɵɵelementStart(0, "div", 3);
525
- i0.ɵɵtemplate(1, MCPTestToolDialogComponent_div_1_Conditional_1_Template, 2, 2, "div", 4);
528
+ i0.ɵɵconditionalCreate(1, MCPTestToolDialogComponent_Conditional_1_Conditional_1_Template, 2, 2, "div", 4);
526
529
  i0.ɵɵelementStart(2, "div", 5)(3, "h2", 6);
527
530
  i0.ɵɵelement(4, "i", 7);
528
531
  i0.ɵɵtext(5, " Test MCP Tool ");
529
532
  i0.ɵɵelementEnd();
530
533
  i0.ɵɵelementStart(6, "button", 8);
531
- i0.ɵɵlistener("click", function MCPTestToolDialogComponent_div_1_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeDialog()); });
534
+ i0.ɵɵlistener("click", function MCPTestToolDialogComponent_Conditional_1_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeDialog()); });
532
535
  i0.ɵɵelement(7, "i", 9);
533
536
  i0.ɵɵelementEnd()();
534
537
  i0.ɵɵelementStart(8, "div", 10)(9, "div", 11)(10, "span", 12);
@@ -552,10 +555,12 @@ function MCPTestToolDialogComponent_div_1_Template(rf, ctx) { if (rf & 1) {
552
555
  i0.ɵɵtext(25, "Results");
553
556
  i0.ɵɵelementEnd()()();
554
557
  i0.ɵɵelementStart(26, "div", 15);
555
- i0.ɵɵtemplate(27, MCPTestToolDialogComponent_div_1_div_27_Template, 31, 24, "div", 16)(28, MCPTestToolDialogComponent_div_1_div_28_Template, 16, 5, "div", 16)(29, MCPTestToolDialogComponent_div_1_div_29_Template, 24, 11, "div", 17);
558
+ i0.ɵɵconditionalCreate(27, MCPTestToolDialogComponent_Conditional_1_Conditional_27_Template, 31, 24, "div", 16);
559
+ i0.ɵɵconditionalCreate(28, MCPTestToolDialogComponent_Conditional_1_Conditional_28_Template, 16, 5, "div", 16);
560
+ i0.ɵɵconditionalCreate(29, MCPTestToolDialogComponent_Conditional_1_Conditional_29_Template, 24, 11, "div", 17);
556
561
  i0.ɵɵelementEnd();
557
562
  i0.ɵɵelementStart(30, "div", 18);
558
- i0.ɵɵtemplate(31, MCPTestToolDialogComponent_div_1_Case_31_Template, 5, 1)(32, MCPTestToolDialogComponent_div_1_Case_32_Template, 6, 2)(33, MCPTestToolDialogComponent_div_1_Case_33_Template, 8, 0);
563
+ i0.ɵɵconditionalCreate(31, MCPTestToolDialogComponent_Conditional_1_Case_31_Template, 5, 1)(32, MCPTestToolDialogComponent_Conditional_1_Case_32_Template, 6, 2)(33, MCPTestToolDialogComponent_Conditional_1_Case_33_Template, 8, 0);
559
564
  i0.ɵɵelementEnd()();
560
565
  } if (rf & 2) {
561
566
  let tmp_16_0;
@@ -576,11 +581,11 @@ function MCPTestToolDialogComponent_div_1_Template(rf, ctx) { if (rf & 1) {
576
581
  i0.ɵɵadvance();
577
582
  i0.ɵɵclassProp("active", ctx_r1.CurrentStep === "results");
578
583
  i0.ɵɵadvance(6);
579
- i0.ɵɵproperty("ngIf", ctx_r1.CurrentStep === "select");
584
+ i0.ɵɵconditional(ctx_r1.CurrentStep === "select" ? 27 : -1);
580
585
  i0.ɵɵadvance();
581
- i0.ɵɵproperty("ngIf", ctx_r1.CurrentStep === "configure");
586
+ i0.ɵɵconditional(ctx_r1.CurrentStep === "configure" ? 28 : -1);
582
587
  i0.ɵɵadvance();
583
- i0.ɵɵproperty("ngIf", ctx_r1.CurrentStep === "results");
588
+ i0.ɵɵconditional(ctx_r1.CurrentStep === "results" ? 29 : -1);
584
589
  i0.ɵɵadvance(2);
585
590
  i0.ɵɵconditional((tmp_16_0 = ctx_r1.CurrentStep) === "select" ? 31 : tmp_16_0 === "configure" ? 32 : tmp_16_0 === "results" ? 33 : -1);
586
591
  } }
@@ -1232,14 +1237,15 @@ export class MCPTestToolDialogComponent {
1232
1237
  }
1233
1238
  static ɵfac = function MCPTestToolDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MCPTestToolDialogComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef)); };
1234
1239
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MCPTestToolDialogComponent, selectors: [["mj-mcp-test-tool-dialog"]], hostBindings: function MCPTestToolDialogComponent_HostBindings(rf, ctx) { if (rf & 1) {
1235
- i0.ɵɵlistener("mousemove", function MCPTestToolDialogComponent_mousemove_HostBindingHandler($event) { return ctx.onMouseMove($event); }, false, i0.ɵɵresolveDocument)("mouseup", function MCPTestToolDialogComponent_mouseup_HostBindingHandler() { return ctx.onMouseUp(); }, false, i0.ɵɵresolveDocument)("resize", function MCPTestToolDialogComponent_resize_HostBindingHandler() { return ctx.onWindowResize(); }, false, i0.ɵɵresolveWindow);
1236
- } }, inputs: { Visible: "Visible", Servers: "Servers", Connections: "Connections", Tools: "Tools", SelectedServerID: "SelectedServerID", SelectedConnectionID: "SelectedConnectionID", SelectedToolID: "SelectedToolID" }, outputs: { Close: "Close" }, decls: 2, vars: 2, consts: [[1, "panel-backdrop"], ["class", "slide-out-panel", 3, "width", "mobile", "resizing", 4, "ngIf"], [1, "panel-backdrop", 3, "click"], [1, "slide-out-panel"], ["title", "Drag to resize", 1, "resize-handle", 3, "active"], [1, "panel-header"], [1, "panel-title"], [1, "fa-solid", "fa-flask"], ["title", "Close", 1, "close-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "step-indicator"], [1, "step"], [1, "step-number"], [1, "step-label"], [1, "step-connector"], [1, "panel-content"], ["class", "step-content", 4, "ngIf"], ["class", "step-content results-step", 4, "ngIf"], [1, "panel-actions"], ["title", "Drag to resize", 1, "resize-handle", 3, "mousedown"], [1, "resize-grip"], [1, "step-content"], [1, "selection-form"], [1, "form-group"], [1, "form-label"], [1, "fa-solid", "fa-server"], [1, "required"], ["placeholder", "Select a server...", 3, "ngModelChange", "valueChange", "filterChange", "data", "textField", "valueField", "valuePrimitive", "ngModel", "filterable"], ["kendoDropDownListItemTemplate", ""], [1, "fa-solid", "fa-link"], ["placeholder", "Select a connection...", 3, "ngModelChange", "valueChange", "filterChange", "data", "textField", "valueField", "valuePrimitive", "ngModel", "disabled", "filterable"], [1, "field-hint"], [1, "field-error"], [1, "field-hint", "auto-selected"], [1, "fa-solid", "fa-wrench"], ["placeholder", "Select a tool...", 3, "ngModelChange", "valueChange", "filterChange", "data", "textField", "valueField", "valuePrimitive", "ngModel", "disabled", "filterable"], ["kendoDropDownListValueTemplate", ""], [1, "dropdown-item"], [1, "item-name"], [1, "item-status"], [1, "item-description"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "fa-solid", "fa-check"], [1, "dropdown-item", "tool-item"], [1, "tool-header"], [1, "tool-info"], [1, "tool-name"], [1, "tool-description"], [1, "tool-context"], [1, "context-item"], [1, "no-params"], [1, "parameters-form"], [1, "fa-solid", "fa-check-circle"], [1, "params-title"], [1, "param-group", 3, "required"], [1, "param-group"], [1, "param-label"], [1, "param-description"], [3, "data", "valuePrimitive", "ngModel"], [1, "checkbox-wrapper"], [3, "format", "step", "ngModel"], [3, "ngModelChange", "valueChange", "data", "valuePrimitive", "ngModel"], ["type", "checkbox", 3, "change", "id", "checked"], [3, "for"], [3, "ngModelChange", "valueChange", "format", "step", "ngModel"], ["rows", "4", 1, "json-input", 3, "input", "value", "placeholder"], ["rows", "3", 1, "text-input", 3, "ngModel", "placeholder"], [3, "ngModel", "placeholder"], ["rows", "3", 1, "text-input", 3, "ngModelChange", "input", "ngModel", "placeholder"], [3, "ngModelChange", "valueChange", "ngModel", "placeholder"], [1, "step-content", "results-step"], [1, "results-container"], [1, "result-header"], [1, "duration"], [1, "execution-info"], [1, "info-row"], [1, "info-label"], [1, "info-value"], [1, "error-panel"], [1, "result-panel", "fill-space"], [1, "result-status"], [1, "fa-solid", "fa-times-circle"], [1, "error-message"], [1, "result-panel-header"], [1, "fa-solid", "fa-code"], ["kendoButton", "", "fillMode", "flat", "title", "Copy to clipboard", 3, "click"], [1, "fa-solid", "fa-copy"], [1, "code-editor-container"], [3, "ngModel", "language", "readonly"], ["kendoButton", "", "themeColor", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-arrow-right"], ["kendoButton", "", "fillMode", "flat", 3, "click"], [1, "fa-solid", "fa-arrow-left"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-play"], ["kendoButton", "", "themeColor", "primary", 3, "click"], [1, "fa-solid", "fa-redo"]], template: function MCPTestToolDialogComponent_Template(rf, ctx) { if (rf & 1) {
1237
- i0.ɵɵtemplate(0, MCPTestToolDialogComponent_Conditional_0_Template, 1, 0, "div", 0)(1, MCPTestToolDialogComponent_div_1_Template, 34, 26, "div", 1);
1240
+ i0.ɵɵlistener("mousemove", function MCPTestToolDialogComponent_mousemove_HostBindingHandler($event) { return ctx.onMouseMove($event); }, i0.ɵɵresolveDocument)("mouseup", function MCPTestToolDialogComponent_mouseup_HostBindingHandler() { return ctx.onMouseUp(); }, i0.ɵɵresolveDocument)("resize", function MCPTestToolDialogComponent_resize_HostBindingHandler() { return ctx.onWindowResize(); }, i0.ɵɵresolveWindow);
1241
+ } }, inputs: { Visible: "Visible", Servers: "Servers", Connections: "Connections", Tools: "Tools", SelectedServerID: "SelectedServerID", SelectedConnectionID: "SelectedConnectionID", SelectedToolID: "SelectedToolID" }, outputs: { Close: "Close" }, standalone: false, decls: 2, vars: 2, consts: [[1, "panel-backdrop"], [1, "slide-out-panel", 3, "width", "mobile", "resizing"], [1, "panel-backdrop", 3, "click"], [1, "slide-out-panel"], ["title", "Drag to resize", 1, "resize-handle", 3, "active"], [1, "panel-header"], [1, "panel-title"], [1, "fa-solid", "fa-flask"], ["title", "Close", 1, "close-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "step-indicator"], [1, "step"], [1, "step-number"], [1, "step-label"], [1, "step-connector"], [1, "panel-content"], [1, "step-content"], [1, "step-content", "results-step"], [1, "panel-actions"], ["title", "Drag to resize", 1, "resize-handle", 3, "mousedown"], [1, "resize-grip"], [1, "selection-form"], [1, "form-group"], [1, "form-label"], [1, "fa-solid", "fa-server"], [1, "required"], ["placeholder", "Select a server...", 3, "ngModelChange", "valueChange", "filterChange", "data", "textField", "valueField", "valuePrimitive", "ngModel", "filterable"], ["kendoDropDownListItemTemplate", ""], [1, "fa-solid", "fa-link"], ["placeholder", "Select a connection...", 3, "ngModelChange", "valueChange", "filterChange", "data", "textField", "valueField", "valuePrimitive", "ngModel", "disabled", "filterable"], [1, "field-hint"], [1, "field-error"], [1, "field-hint", "auto-selected"], [1, "fa-solid", "fa-wrench"], ["placeholder", "Select a tool...", 3, "ngModelChange", "valueChange", "filterChange", "data", "textField", "valueField", "valuePrimitive", "ngModel", "disabled", "filterable"], ["kendoDropDownListValueTemplate", ""], [1, "dropdown-item"], [1, "item-name"], [1, "item-status"], [1, "item-description"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "fa-solid", "fa-check"], [1, "dropdown-item", "tool-item"], [1, "tool-header"], [1, "tool-info"], [1, "tool-name"], [1, "tool-description"], [1, "tool-context"], [1, "context-item"], [1, "no-params"], [1, "parameters-form"], [1, "fa-solid", "fa-check-circle"], [1, "params-title"], [1, "param-group", 3, "required"], [1, "param-group"], [1, "param-label"], [1, "param-description"], [3, "data", "valuePrimitive", "ngModel"], [1, "checkbox-wrapper"], [3, "format", "step", "ngModel"], [3, "ngModelChange", "valueChange", "data", "valuePrimitive", "ngModel"], ["type", "checkbox", 3, "change", "id", "checked"], [3, "for"], [3, "ngModelChange", "valueChange", "format", "step", "ngModel"], ["rows", "4", 1, "json-input", 3, "input", "value", "placeholder"], ["rows", "3", 1, "text-input", 3, "ngModel", "placeholder"], [3, "ngModel", "placeholder"], ["rows", "3", 1, "text-input", 3, "ngModelChange", "input", "ngModel", "placeholder"], [3, "ngModelChange", "valueChange", "ngModel", "placeholder"], [1, "results-container"], [1, "result-header"], [1, "duration"], [1, "execution-info"], [1, "info-row"], [1, "info-label"], [1, "info-value"], [1, "error-panel"], [1, "result-panel", "fill-space"], [1, "result-status"], [1, "fa-solid", "fa-times-circle"], [1, "error-message"], [1, "result-panel-header"], [1, "fa-solid", "fa-code"], ["kendoButton", "", "fillMode", "flat", "title", "Copy to clipboard", 3, "click"], [1, "fa-solid", "fa-copy"], [1, "code-editor-container"], [3, "ngModel", "language", "readonly"], ["kendoButton", "", "themeColor", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-arrow-right"], ["kendoButton", "", "fillMode", "flat", 3, "click"], [1, "fa-solid", "fa-arrow-left"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-play"], ["kendoButton", "", "themeColor", "primary", 3, "click"], [1, "fa-solid", "fa-redo"]], template: function MCPTestToolDialogComponent_Template(rf, ctx) { if (rf & 1) {
1242
+ i0.ɵɵconditionalCreate(0, MCPTestToolDialogComponent_Conditional_0_Template, 1, 0, "div", 0);
1243
+ i0.ɵɵconditionalCreate(1, MCPTestToolDialogComponent_Conditional_1_Template, 34, 26, "div", 1);
1238
1244
  } if (rf & 2) {
1239
1245
  i0.ɵɵconditional(ctx.Visible ? 0 : -1);
1240
1246
  i0.ɵɵadvance();
1241
- i0.ɵɵproperty("ngIf", ctx.Visible);
1242
- } }, dependencies: [i1.NgIf, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, i3.ButtonComponent, i4.ItemTemplateDirective, i4.ValueTemplateDirective, i4.DropDownListComponent, i5.TextBoxComponent, i5.NumericTextBoxComponent, i6.CodeEditorComponent], styles: ["\n\n\n\n\n\n\n.panel-backdrop[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.4);\n z-index: 1000;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease-out;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n\n\n\n\n.slide-out-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n background: white;\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.slide-out-panel.mobile[_ngcontent-%COMP%] {\n width: 100% !important;\n left: 0;\n}\n\n.slide-out-panel.resizing[_ngcontent-%COMP%] {\n user-select: none;\n transition: none;\n}\n\n\n\n\n\n.resize-handle[_ngcontent-%COMP%] {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 6px;\n cursor: ew-resize;\n background: transparent;\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.15s ease;\n}\n\n.resize-handle[_ngcontent-%COMP%]:hover, \n.resize-handle.active[_ngcontent-%COMP%] {\n background: rgba(33, 150, 243, 0.1);\n}\n\n.resize-grip[_ngcontent-%COMP%] {\n width: 3px;\n height: 40px;\n background: #ccc;\n border-radius: 2px;\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n\n.resize-handle[_ngcontent-%COMP%]:hover .resize-grip[_ngcontent-%COMP%], \n.resize-handle.active[_ngcontent-%COMP%] .resize-grip[_ngcontent-%COMP%] {\n opacity: 1;\n background: var(--mj-primary-color, #2196f3);\n}\n\n\n\n\n\n.panel-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n background: white;\n border-bottom: 1px solid #e0e0e0;\n flex-shrink: 0;\n}\n\n.panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-color, #333);\n}\n\n.panel-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-primary-color, #2196f3);\n}\n\n.close-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n border: none;\n background: transparent;\n border-radius: 50%;\n cursor: pointer;\n color: #666;\n transition: all 0.15s ease;\n}\n\n.close-btn[_ngcontent-%COMP%]:hover {\n background: #f5f5f5;\n color: #333;\n}\n\n.close-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 18px;\n}\n\n\n\n\n\n.step-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px 20px;\n background: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n flex-shrink: 0;\n}\n\n.step[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n opacity: 0.5;\n transition: opacity 0.2s ease;\n}\n\n.step.active[_ngcontent-%COMP%], \n.step.completed[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.step-number[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: #e0e0e0;\n color: #666;\n font-weight: 600;\n font-size: 13px;\n transition: all 0.2s ease;\n}\n\n.step.active[_ngcontent-%COMP%] .step-number[_ngcontent-%COMP%] {\n background: var(--mj-primary-color, #2196f3);\n color: white;\n}\n\n.step.completed[_ngcontent-%COMP%] .step-number[_ngcontent-%COMP%] {\n background: #4caf50;\n color: white;\n}\n\n.step-label[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-color, #333);\n}\n\n.step-connector[_ngcontent-%COMP%] {\n width: 40px;\n height: 2px;\n background: #e0e0e0;\n margin: 0 10px;\n transition: background 0.2s ease;\n}\n\n.step-connector.completed[_ngcontent-%COMP%] {\n background: #4caf50;\n}\n\n\n\n\n\n.panel-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n\n.step-content[_ngcontent-%COMP%] {\n min-height: 100%;\n}\n\n.step-content.results-step[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n\n\n\n\n.selection-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.form-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.form-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-color, #333);\n}\n\n.form-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-primary-color, #2196f3);\n font-size: 14px;\n}\n\n.required[_ngcontent-%COMP%] {\n color: #f44336;\n font-weight: 600;\n}\n\n.field-hint[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-secondary-color, #666);\n font-style: italic;\n margin-top: 4px;\n}\n\n.field-hint.auto-selected[_ngcontent-%COMP%] {\n color: #4caf50;\n font-style: normal;\n}\n\n.field-hint.auto-selected[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.field-error[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #f44336;\n margin-top: 4px;\n padding: 8px 10px;\n background: rgba(244, 67, 54, 0.08);\n border-radius: 4px;\n border: 1px solid rgba(244, 67, 54, 0.2);\n}\n\n.field-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 13px;\n}\n\n\n\n.dropdown-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding: 4px 0;\n}\n\n.dropdown-item.tool-item[_ngcontent-%COMP%] {\n max-width: 100%;\n}\n\n.item-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-color, #333);\n}\n\n.item-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary-color, #666);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n}\n\n.item-status[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.item-status.status-active[_ngcontent-%COMP%] {\n color: #4caf50;\n}\n\n.item-status.status-inactive[_ngcontent-%COMP%] {\n color: #9e9e9e;\n}\n\n\n\n\n\n.tool-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding: 16px;\n background: linear-gradient(135deg, rgba(33, 150, 243, 0.08), rgba(33, 150, 243, 0.02));\n border-radius: 8px;\n margin-bottom: 20px;\n border: 1px solid rgba(33, 150, 243, 0.15);\n}\n\n.tool-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.tool-name[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-color, #333);\n}\n\n.tool-name[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-primary-color, #2196f3);\n}\n\n.tool-description[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 13px;\n color: var(--mj-text-secondary-color, #666);\n line-height: 1.5;\n}\n\n.tool-context[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n align-items: flex-end;\n flex-shrink: 0;\n}\n\n.context-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-secondary-color, #666);\n}\n\n.context-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #999;\n}\n\n\n\n\n\n.no-params[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n text-align: center;\n color: var(--mj-text-secondary-color, #666);\n}\n\n.no-params[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: #4caf50;\n margin-bottom: 16px;\n}\n\n.no-params[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 15px;\n}\n\n.params-title[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary-color, #666);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.parameters-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.param-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 12px;\n background: #fafafa;\n border-radius: 6px;\n border: 1px solid #e8e8e8;\n}\n\n.param-group.required[_ngcontent-%COMP%] {\n border-left: 3px solid var(--mj-primary-color, #2196f3);\n}\n\n.param-label[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-color, #333);\n}\n\n.param-description[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-secondary-color, #666);\n line-height: 1.4;\n}\n\n.checkbox-wrapper[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n}\n\n.checkbox-wrapper[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n}\n\n.checkbox-wrapper[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-color, #333);\n cursor: pointer;\n}\n\n.json-input[_ngcontent-%COMP%], \n.text-input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 12px;\n font-family: 'Consolas', 'Monaco', monospace;\n font-size: 13px;\n line-height: 1.5;\n border: 1px solid #ddd;\n border-radius: 4px;\n background: white;\n resize: vertical;\n box-sizing: border-box;\n}\n\n.json-input[_ngcontent-%COMP%]:focus, \n.text-input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-primary-color, #2196f3);\n box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.1);\n}\n\n\n\n\n\n.results-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n flex: 1;\n min-height: 0;\n}\n\n.result-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n border-radius: 8px;\n font-weight: 600;\n}\n\n.result-header.success[_ngcontent-%COMP%] {\n background: rgba(76, 175, 80, 0.1);\n color: #388e3c;\n}\n\n.result-header.success[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n color: #4caf50;\n}\n\n.result-header.error[_ngcontent-%COMP%] {\n background: rgba(244, 67, 54, 0.1);\n color: #c62828;\n}\n\n.result-header.error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n color: #f44336;\n}\n\n.result-status[_ngcontent-%COMP%] {\n flex: 1;\n font-size: 16px;\n}\n\n.duration[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: normal;\n color: var(--mj-text-secondary-color, #666);\n background: rgba(0, 0, 0, 0.05);\n padding: 4px 8px;\n border-radius: 4px;\n}\n\n.error-panel[_ngcontent-%COMP%] {\n background: #fff5f5;\n border: 1px solid rgba(244, 67, 54, 0.2);\n border-radius: 8px;\n padding: 16px;\n}\n\n.error-panel[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 12px 0;\n font-size: 14px;\n color: #c62828;\n}\n\n.error-message[_ngcontent-%COMP%] {\n margin: 0;\n padding: 12px;\n background: white;\n border-radius: 4px;\n font-family: monospace;\n font-size: 13px;\n line-height: 1.5;\n color: #c62828;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.result-panel[_ngcontent-%COMP%] {\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.result-panel.fill-space[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-height: 200px;\n}\n\n.result-panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n background: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.result-panel-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-color, #333);\n}\n\n.code-editor-container[_ngcontent-%COMP%] {\n height: 300px;\n min-height: 200px;\n max-height: 400px;\n overflow: hidden;\n}\n\n.result-panel.fill-space[_ngcontent-%COMP%] .code-editor-container[_ngcontent-%COMP%] {\n flex: 1;\n height: auto;\n max-height: none;\n}\n\n.code-editor-container[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n}\n\n.execution-info[_ngcontent-%COMP%] {\n padding: 16px;\n background: #fafafa;\n border-radius: 8px;\n border: 1px solid #e8e8e8;\n}\n\n.info-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n padding: 6px 0;\n font-size: 13px;\n}\n\n.info-row[_ngcontent-%COMP%]:not(:last-child) {\n border-bottom: 1px solid #e8e8e8;\n}\n\n.info-label[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary-color, #666);\n}\n\n.info-value[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-color, #333);\n}\n\n\n\n\n\n.panel-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n padding: 16px 20px;\n background: white;\n border-top: 1px solid #e0e0e0;\n flex-shrink: 0;\n}\n\n.panel-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n min-width: 100px;\n}\n\n.panel-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 6px;\n}\n\n\n\n\n\n@media (max-width: 768px) {\n .slide-out-panel[_ngcontent-%COMP%] {\n width: 100% !important;\n left: 0;\n }\n\n .resize-handle[_ngcontent-%COMP%] {\n display: none;\n }\n\n .step-indicator[_ngcontent-%COMP%] {\n padding: 12px 16px;\n }\n\n .step-connector[_ngcontent-%COMP%] {\n width: 20px;\n margin: 0 6px;\n }\n\n .step-label[_ngcontent-%COMP%] {\n display: none;\n }\n\n .panel-content[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .tool-header[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 12px;\n }\n\n .tool-context[_ngcontent-%COMP%] {\n align-items: flex-start;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 12px;\n }\n\n .panel-actions[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n }\n\n .panel-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 80px;\n }\n}\n\n@media (max-width: 480px) {\n .panel-header[_ngcontent-%COMP%] {\n padding: 12px 16px;\n }\n\n .panel-title[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .step-number[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n font-size: 12px;\n }\n\n .tool-name[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n}"], data: { animation: [
1247
+ i0.ɵɵconditional(ctx.Visible ? 1 : -1);
1248
+ } }, dependencies: [i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgModel, i2.ButtonComponent, i3.ItemTemplateDirective, i3.DropDownListComponent, i3.ValueTemplateDirective, i4.TextBoxComponent, i4.NumericTextBoxComponent, i5.CodeEditorComponent], styles: ["\n\n\n\n\n\n\n.panel-backdrop[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.4);\n z-index: 1000;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease-out;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n\n\n\n\n.slide-out-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n background: white;\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.slide-out-panel.mobile[_ngcontent-%COMP%] {\n width: 100% !important;\n left: 0;\n}\n\n.slide-out-panel.resizing[_ngcontent-%COMP%] {\n user-select: none;\n transition: none;\n}\n\n\n\n\n\n.resize-handle[_ngcontent-%COMP%] {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 6px;\n cursor: ew-resize;\n background: transparent;\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.15s ease;\n}\n\n.resize-handle[_ngcontent-%COMP%]:hover, \n.resize-handle.active[_ngcontent-%COMP%] {\n background: rgba(33, 150, 243, 0.1);\n}\n\n.resize-grip[_ngcontent-%COMP%] {\n width: 3px;\n height: 40px;\n background: #ccc;\n border-radius: 2px;\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n\n.resize-handle[_ngcontent-%COMP%]:hover .resize-grip[_ngcontent-%COMP%], \n.resize-handle.active[_ngcontent-%COMP%] .resize-grip[_ngcontent-%COMP%] {\n opacity: 1;\n background: var(--mj-primary-color, #2196f3);\n}\n\n\n\n\n\n.panel-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n background: white;\n border-bottom: 1px solid #e0e0e0;\n flex-shrink: 0;\n}\n\n.panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-color, #333);\n}\n\n.panel-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-primary-color, #2196f3);\n}\n\n.close-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n border: none;\n background: transparent;\n border-radius: 50%;\n cursor: pointer;\n color: #666;\n transition: all 0.15s ease;\n}\n\n.close-btn[_ngcontent-%COMP%]:hover {\n background: #f5f5f5;\n color: #333;\n}\n\n.close-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 18px;\n}\n\n\n\n\n\n.step-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px 20px;\n background: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n flex-shrink: 0;\n}\n\n.step[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n opacity: 0.5;\n transition: opacity 0.2s ease;\n}\n\n.step.active[_ngcontent-%COMP%], \n.step.completed[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.step-number[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: #e0e0e0;\n color: #666;\n font-weight: 600;\n font-size: 13px;\n transition: all 0.2s ease;\n}\n\n.step.active[_ngcontent-%COMP%] .step-number[_ngcontent-%COMP%] {\n background: var(--mj-primary-color, #2196f3);\n color: white;\n}\n\n.step.completed[_ngcontent-%COMP%] .step-number[_ngcontent-%COMP%] {\n background: #4caf50;\n color: white;\n}\n\n.step-label[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-color, #333);\n}\n\n.step-connector[_ngcontent-%COMP%] {\n width: 40px;\n height: 2px;\n background: #e0e0e0;\n margin: 0 10px;\n transition: background 0.2s ease;\n}\n\n.step-connector.completed[_ngcontent-%COMP%] {\n background: #4caf50;\n}\n\n\n\n\n\n.panel-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n\n.step-content[_ngcontent-%COMP%] {\n min-height: 100%;\n}\n\n.step-content.results-step[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n\n\n\n\n.selection-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.form-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.form-label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-color, #333);\n}\n\n.form-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-primary-color, #2196f3);\n font-size: 14px;\n}\n\n.required[_ngcontent-%COMP%] {\n color: #f44336;\n font-weight: 600;\n}\n\n.field-hint[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-secondary-color, #666);\n font-style: italic;\n margin-top: 4px;\n}\n\n.field-hint.auto-selected[_ngcontent-%COMP%] {\n color: #4caf50;\n font-style: normal;\n}\n\n.field-hint.auto-selected[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.field-error[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #f44336;\n margin-top: 4px;\n padding: 8px 10px;\n background: rgba(244, 67, 54, 0.08);\n border-radius: 4px;\n border: 1px solid rgba(244, 67, 54, 0.2);\n}\n\n.field-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 13px;\n}\n\n\n\n.dropdown-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding: 4px 0;\n}\n\n.dropdown-item.tool-item[_ngcontent-%COMP%] {\n max-width: 100%;\n}\n\n.item-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-color, #333);\n}\n\n.item-description[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary-color, #666);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n}\n\n.item-status[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.item-status.status-active[_ngcontent-%COMP%] {\n color: #4caf50;\n}\n\n.item-status.status-inactive[_ngcontent-%COMP%] {\n color: #9e9e9e;\n}\n\n\n\n\n\n.tool-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding: 16px;\n background: linear-gradient(135deg, rgba(33, 150, 243, 0.08), rgba(33, 150, 243, 0.02));\n border-radius: 8px;\n margin-bottom: 20px;\n border: 1px solid rgba(33, 150, 243, 0.15);\n}\n\n.tool-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.tool-name[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-color, #333);\n}\n\n.tool-name[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-primary-color, #2196f3);\n}\n\n.tool-description[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 13px;\n color: var(--mj-text-secondary-color, #666);\n line-height: 1.5;\n}\n\n.tool-context[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n align-items: flex-end;\n flex-shrink: 0;\n}\n\n.context-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-secondary-color, #666);\n}\n\n.context-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #999;\n}\n\n\n\n\n\n.no-params[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n text-align: center;\n color: var(--mj-text-secondary-color, #666);\n}\n\n.no-params[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: #4caf50;\n margin-bottom: 16px;\n}\n\n.no-params[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 15px;\n}\n\n.params-title[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary-color, #666);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.parameters-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.param-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 12px;\n background: #fafafa;\n border-radius: 6px;\n border: 1px solid #e8e8e8;\n}\n\n.param-group.required[_ngcontent-%COMP%] {\n border-left: 3px solid var(--mj-primary-color, #2196f3);\n}\n\n.param-label[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-color, #333);\n}\n\n.param-description[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-secondary-color, #666);\n line-height: 1.4;\n}\n\n.checkbox-wrapper[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n}\n\n.checkbox-wrapper[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n}\n\n.checkbox-wrapper[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-color, #333);\n cursor: pointer;\n}\n\n.json-input[_ngcontent-%COMP%], \n.text-input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 12px;\n font-family: 'Consolas', 'Monaco', monospace;\n font-size: 13px;\n line-height: 1.5;\n border: 1px solid #ddd;\n border-radius: 4px;\n background: white;\n resize: vertical;\n box-sizing: border-box;\n}\n\n.json-input[_ngcontent-%COMP%]:focus, \n.text-input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-primary-color, #2196f3);\n box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.1);\n}\n\n\n\n\n\n.results-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n flex: 1;\n min-height: 0;\n}\n\n.result-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n border-radius: 8px;\n font-weight: 600;\n}\n\n.result-header.success[_ngcontent-%COMP%] {\n background: rgba(76, 175, 80, 0.1);\n color: #388e3c;\n}\n\n.result-header.success[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n color: #4caf50;\n}\n\n.result-header.error[_ngcontent-%COMP%] {\n background: rgba(244, 67, 54, 0.1);\n color: #c62828;\n}\n\n.result-header.error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n color: #f44336;\n}\n\n.result-status[_ngcontent-%COMP%] {\n flex: 1;\n font-size: 16px;\n}\n\n.duration[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: normal;\n color: var(--mj-text-secondary-color, #666);\n background: rgba(0, 0, 0, 0.05);\n padding: 4px 8px;\n border-radius: 4px;\n}\n\n.error-panel[_ngcontent-%COMP%] {\n background: #fff5f5;\n border: 1px solid rgba(244, 67, 54, 0.2);\n border-radius: 8px;\n padding: 16px;\n}\n\n.error-panel[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 12px 0;\n font-size: 14px;\n color: #c62828;\n}\n\n.error-message[_ngcontent-%COMP%] {\n margin: 0;\n padding: 12px;\n background: white;\n border-radius: 4px;\n font-family: monospace;\n font-size: 13px;\n line-height: 1.5;\n color: #c62828;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.result-panel[_ngcontent-%COMP%] {\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.result-panel.fill-space[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-height: 200px;\n}\n\n.result-panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n background: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.result-panel-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-color, #333);\n}\n\n.code-editor-container[_ngcontent-%COMP%] {\n height: 300px;\n min-height: 200px;\n max-height: 400px;\n overflow: hidden;\n}\n\n.result-panel.fill-space[_ngcontent-%COMP%] .code-editor-container[_ngcontent-%COMP%] {\n flex: 1;\n height: auto;\n max-height: none;\n}\n\n.code-editor-container[_ngcontent-%COMP%] mj-code-editor[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n}\n\n.execution-info[_ngcontent-%COMP%] {\n padding: 16px;\n background: #fafafa;\n border-radius: 8px;\n border: 1px solid #e8e8e8;\n}\n\n.info-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n padding: 6px 0;\n font-size: 13px;\n}\n\n.info-row[_ngcontent-%COMP%]:not(:last-child) {\n border-bottom: 1px solid #e8e8e8;\n}\n\n.info-label[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary-color, #666);\n}\n\n.info-value[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-color, #333);\n}\n\n\n\n\n\n.panel-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n padding: 16px 20px;\n background: white;\n border-top: 1px solid #e0e0e0;\n flex-shrink: 0;\n}\n\n.panel-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n min-width: 100px;\n}\n\n.panel-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 6px;\n}\n\n\n\n\n\n@media (max-width: 768px) {\n .slide-out-panel[_ngcontent-%COMP%] {\n width: 100% !important;\n left: 0;\n }\n\n .resize-handle[_ngcontent-%COMP%] {\n display: none;\n }\n\n .step-indicator[_ngcontent-%COMP%] {\n padding: 12px 16px;\n }\n\n .step-connector[_ngcontent-%COMP%] {\n width: 20px;\n margin: 0 6px;\n }\n\n .step-label[_ngcontent-%COMP%] {\n display: none;\n }\n\n .panel-content[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .tool-header[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 12px;\n }\n\n .tool-context[_ngcontent-%COMP%] {\n align-items: flex-start;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 12px;\n }\n\n .panel-actions[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n }\n\n .panel-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 80px;\n }\n}\n\n@media (max-width: 480px) {\n .panel-header[_ngcontent-%COMP%] {\n padding: 12px 16px;\n }\n\n .panel-title[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .step-number[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n font-size: 12px;\n }\n\n .tool-name[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n}"], data: { animation: [
1243
1249
  trigger('slideIn', [
1244
1250
  transition(':enter', [
1245
1251
  style({ transform: 'translateX(100%)', opacity: 0 }),
@@ -1253,7 +1259,7 @@ export class MCPTestToolDialogComponent {
1253
1259
  }
1254
1260
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MCPTestToolDialogComponent, [{
1255
1261
  type: Component,
1256
- args: [{ selector: 'mj-mcp-test-tool-dialog', animations: [
1262
+ args: [{ standalone: false, selector: 'mj-mcp-test-tool-dialog', animations: [
1257
1263
  trigger('slideIn', [
1258
1264
  transition(':enter', [
1259
1265
  style({ transform: 'translateX(100%)', opacity: 0 }),
@@ -1263,7 +1269,7 @@ export class MCPTestToolDialogComponent {
1263
1269
  animate('200ms ease-in', style({ transform: 'translateX(100%)', opacity: 0 }))
1264
1270
  ])
1265
1271
  ])
1266
- ], template: "<!-- Backdrop -->\n@if (Visible) {\n <div class=\"panel-backdrop\" (click)=\"closeDialog()\"></div>\n}\n\n<!-- Slide-out Panel -->\n<div class=\"slide-out-panel\"\n *ngIf=\"Visible\"\n @slideIn\n [style.width.px]=\"IsMobileMode ? null : PanelWidth\"\n [class.mobile]=\"IsMobileMode\"\n [class.resizing]=\"IsResizing\">\n\n <!-- Resize Handle (left edge) -->\n @if (!IsMobileMode) {\n <div class=\"resize-handle\"\n (mousedown)=\"onResizeStart($event)\"\n [class.active]=\"IsResizing\"\n title=\"Drag to resize\">\n <div class=\"resize-grip\"></div>\n </div>\n }\n\n <!-- Panel Header -->\n <div class=\"panel-header\">\n <h2 class=\"panel-title\">\n <i class=\"fa-solid fa-flask\"></i>\n Test MCP Tool\n </h2>\n <button class=\"close-btn\" (click)=\"closeDialog()\" title=\"Close\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <!-- Step Indicator -->\n <div class=\"step-indicator\">\n <div class=\"step\" [class.active]=\"CurrentStep === 'select'\" [class.completed]=\"CurrentStep !== 'select'\">\n <span class=\"step-number\">1</span>\n <span class=\"step-label\">Select Tool</span>\n </div>\n <div class=\"step-connector\" [class.completed]=\"CurrentStep !== 'select'\"></div>\n <div class=\"step\" [class.active]=\"CurrentStep === 'configure'\" [class.completed]=\"CurrentStep === 'results'\">\n <span class=\"step-number\">2</span>\n <span class=\"step-label\">Configure</span>\n </div>\n <div class=\"step-connector\" [class.completed]=\"CurrentStep === 'results'\"></div>\n <div class=\"step\" [class.active]=\"CurrentStep === 'results'\">\n <span class=\"step-number\">3</span>\n <span class=\"step-label\">Results</span>\n </div>\n </div>\n\n <!-- Panel Content -->\n <div class=\"panel-content\">\n <!-- Step 1: Select Server, Connection, Tool -->\n <div class=\"step-content\" *ngIf=\"CurrentStep === 'select'\">\n <div class=\"selection-form\">\n <!-- Server Selection -->\n <div class=\"form-group\">\n <label class=\"form-label\">\n <i class=\"fa-solid fa-server\"></i>\n Server\n <span class=\"required\">*</span>\n </label>\n <kendo-dropdownlist\n [data]=\"DisplayServers\"\n [textField]=\"'Name'\"\n [valueField]=\"'ID'\"\n [valuePrimitive]=\"true\"\n [(ngModel)]=\"ServerID\"\n (valueChange)=\"onServerChange()\"\n [filterable]=\"true\"\n (filterChange)=\"onServerFilterChange($event)\"\n placeholder=\"Select a server...\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div class=\"dropdown-item\">\n <span class=\"item-name\">{{ dataItem.Name }}</span>\n <span class=\"item-status\" [class]=\"'status-' + dataItem.Status.toLowerCase()\">\n {{ dataItem.Status }}\n </span>\n </div>\n </ng-template>\n </kendo-dropdownlist>\n </div>\n\n <!-- Connection Selection -->\n <div class=\"form-group\">\n <label class=\"form-label\">\n <i class=\"fa-solid fa-link\"></i>\n Connection\n <span class=\"required\">*</span>\n </label>\n <kendo-dropdownlist\n [data]=\"DisplayConnections\"\n [textField]=\"'Name'\"\n [valueField]=\"'ID'\"\n [valuePrimitive]=\"true\"\n [(ngModel)]=\"ConnectionID\"\n (valueChange)=\"onConnectionChange()\"\n [disabled]=\"!ServerID || NoConnectionsWarning !== null\"\n [filterable]=\"true\"\n (filterChange)=\"onConnectionFilterChange($event)\"\n placeholder=\"Select a connection...\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div class=\"dropdown-item\">\n <span class=\"item-name\">{{ dataItem.Name }}</span>\n @if (dataItem.Description) {\n <span class=\"item-description\">{{ dataItem.Description }}</span>\n }\n </div>\n </ng-template>\n </kendo-dropdownlist>\n @if (!ServerID) {\n <span class=\"field-hint\">Select a server first</span>\n }\n @if (NoConnectionsWarning) {\n <span class=\"field-error\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n {{ NoConnectionsWarning }}\n </span>\n }\n @if (FilteredConnections.length === 1 && ConnectionID) {\n <span class=\"field-hint auto-selected\">\n <i class=\"fa-solid fa-check\"></i>\n Auto-selected (only connection available)\n </span>\n }\n </div>\n\n <!-- Tool Selection -->\n <div class=\"form-group\">\n <label class=\"form-label\">\n <i class=\"fa-solid fa-wrench\"></i>\n Tool\n <span class=\"required\">*</span>\n </label>\n <kendo-dropdownlist\n [data]=\"DisplayTools\"\n [textField]=\"'ToolTitle'\"\n [valueField]=\"'ID'\"\n [valuePrimitive]=\"true\"\n [(ngModel)]=\"ToolID\"\n (valueChange)=\"onToolChange()\"\n [disabled]=\"!ServerID\"\n [filterable]=\"true\"\n (filterChange)=\"onToolFilterChange($event)\"\n placeholder=\"Select a tool...\">\n <ng-template kendoDropDownListValueTemplate let-dataItem>\n {{ dataItem?.ToolTitle || dataItem?.ToolName || 'Select a tool...' }}\n </ng-template>\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div class=\"dropdown-item tool-item\">\n <span class=\"item-name\">{{ dataItem.ToolTitle || dataItem.ToolName }}</span>\n @if (dataItem.ToolDescription) {\n <span class=\"item-description\">{{ dataItem.ToolDescription }}</span>\n }\n </div>\n </ng-template>\n </kendo-dropdownlist>\n @if (!ServerID) {\n <span class=\"field-hint\">Select a server first</span>\n }\n </div>\n </div>\n </div>\n\n <!-- Step 2: Configure Parameters -->\n <div class=\"step-content\" *ngIf=\"CurrentStep === 'configure'\">\n <div class=\"tool-header\">\n <div class=\"tool-info\">\n <h3 class=\"tool-name\">\n <i class=\"fa-solid fa-wrench\"></i>\n {{ SelectedTool?.ToolTitle || SelectedTool?.ToolName }}\n </h3>\n @if (SelectedTool?.ToolDescription) {\n <p class=\"tool-description\">{{ SelectedTool?.ToolDescription }}</p>\n }\n </div>\n <div class=\"tool-context\">\n <span class=\"context-item\">\n <i class=\"fa-solid fa-server\"></i>\n {{ SelectedServerName }}\n </span>\n <span class=\"context-item\">\n <i class=\"fa-solid fa-link\"></i>\n {{ SelectedConnectionName }}\n </span>\n </div>\n </div>\n\n @if (ParameterConfigs.length === 0) {\n <div class=\"no-params\">\n <i class=\"fa-solid fa-check-circle\"></i>\n <p>This tool requires no parameters.</p>\n </div>\n } @else {\n <div class=\"parameters-form\">\n <h4 class=\"params-title\">Parameters</h4>\n @for (config of ParameterConfigs; track config.name) {\n <div class=\"param-group\" [class.required]=\"config.required\">\n <label class=\"param-label\">\n {{ config.name }}\n @if (config.required) {\n <span class=\"required\">*</span>\n }\n </label>\n @if (config.description) {\n <p class=\"param-description\">{{ config.description }}</p>\n }\n\n <!-- Enum/Select -->\n @if (config.enumValues.length > 0) {\n <kendo-dropdownlist\n [data]=\"config.enumValues\"\n [valuePrimitive]=\"true\"\n [(ngModel)]=\"ParameterValues[config.name]\"\n (valueChange)=\"onParameterChange(config.name, $event)\">\n </kendo-dropdownlist>\n }\n <!-- Boolean -->\n @else if (config.type === 'boolean') {\n <div class=\"checkbox-wrapper\">\n <input type=\"checkbox\"\n [id]=\"'param-' + config.name\"\n [checked]=\"ParameterValues[config.name]\"\n (change)=\"onParameterChange(config.name, $any($event.target).checked)\">\n <label [for]=\"'param-' + config.name\">Enabled</label>\n </div>\n }\n <!-- Number/Integer -->\n @else if (config.type === 'number' || config.type === 'integer') {\n <kendo-numerictextbox\n [format]=\"config.type === 'integer' ? 'n0' : 'n'\"\n [step]=\"config.type === 'integer' ? 1 : 0.1\"\n [(ngModel)]=\"ParameterValues[config.name]\"\n (valueChange)=\"onParameterChange(config.name, $event)\">\n </kendo-numerictextbox>\n }\n <!-- Array/Object (Textarea with JSON) -->\n @else if (config.type === 'array' || config.type === 'object') {\n <textarea class=\"json-input\"\n rows=\"4\"\n [value]=\"getTextareaValue(config.name)\"\n (input)=\"onTextareaChange(config.name, $any($event.target).value, config)\"\n placeholder=\"Enter JSON {{ config.type }}...\"></textarea>\n <span class=\"field-hint\">Enter valid JSON</span>\n }\n <!-- String (default) -->\n @else {\n @if (isTextarea(config)) {\n <textarea class=\"text-input\"\n rows=\"3\"\n [(ngModel)]=\"ParameterValues[config.name]\"\n (input)=\"onParameterChange(config.name, $any($event.target).value)\"\n [placeholder]=\"config.description || 'Enter value...'\"></textarea>\n } @else {\n <kendo-textbox\n [(ngModel)]=\"ParameterValues[config.name]\"\n (valueChange)=\"onParameterChange(config.name, $event)\"\n [placeholder]=\"config.description || 'Enter value...'\">\n </kendo-textbox>\n }\n }\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Step 3: Results -->\n <div class=\"step-content results-step\" *ngIf=\"CurrentStep === 'results'\">\n <div class=\"results-container\">\n <!-- Success/Error Header -->\n <div class=\"result-header\" [class.success]=\"ExecutionResult?.Success\" [class.error]=\"!ExecutionResult?.Success\">\n @if (ExecutionResult?.Success) {\n <i class=\"fa-solid fa-check-circle\"></i>\n <span class=\"result-status\">Execution Successful</span>\n } @else {\n <i class=\"fa-solid fa-times-circle\"></i>\n <span class=\"result-status\">Execution Failed</span>\n }\n @if (ExecutionResult?.DurationMs) {\n <span class=\"duration\">{{ ExecutionResult?.DurationMs }}ms</span>\n }\n </div>\n\n <!-- Executed Tool Info (moved to top) -->\n <div class=\"execution-info\">\n <div class=\"info-row\">\n <span class=\"info-label\">Tool:</span>\n <span class=\"info-value\">{{ SelectedToolName }}</span>\n </div>\n <div class=\"info-row\">\n <span class=\"info-label\">Server:</span>\n <span class=\"info-value\">{{ SelectedServerName }}</span>\n </div>\n <div class=\"info-row\">\n <span class=\"info-label\">Connection:</span>\n <span class=\"info-value\">{{ SelectedConnectionName }}</span>\n </div>\n </div>\n\n <!-- Error Message -->\n @if (ExecutionResult?.ErrorMessage) {\n <div class=\"error-panel\">\n <h4><i class=\"fa-solid fa-exclamation-triangle\"></i> Error</h4>\n <pre class=\"error-message\">{{ ExecutionResult?.ErrorMessage }}</pre>\n </div>\n }\n\n <!-- Result Data (fills remaining space) -->\n @if (ExecutionResult?.Result) {\n <div class=\"result-panel fill-space\">\n <div class=\"result-panel-header\">\n <h4><i class=\"fa-solid fa-code\"></i> Result</h4>\n <button kendoButton fillMode=\"flat\" (click)=\"copyResult()\" title=\"Copy to clipboard\">\n <i class=\"fa-solid fa-copy\"></i>\n </button>\n </div>\n <div class=\"code-editor-container\">\n <mj-code-editor\n [ngModel]=\"FormattedResult\"\n [language]=\"'json'\"\n [readonly]=\"true\">\n </mj-code-editor>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n\n <!-- Panel Actions -->\n <div class=\"panel-actions\">\n @switch (CurrentStep) {\n @case ('select') {\n <button kendoButton themeColor=\"primary\" (click)=\"proceedToConfig()\" [disabled]=\"!CanProceedToConfig\">\n <i class=\"fa-solid fa-arrow-right\"></i>\n Next\n </button>\n <button kendoButton fillMode=\"flat\" (click)=\"closeDialog()\">Cancel</button>\n }\n @case ('configure') {\n <button kendoButton themeColor=\"primary\" (click)=\"executeTool()\" [disabled]=\"!IsValid || IsExecuting\">\n @if (IsExecuting) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Executing...\n } @else {\n <i class=\"fa-solid fa-play\"></i>\n Execute Tool\n }\n </button>\n <button kendoButton fillMode=\"flat\" (click)=\"goBack()\">\n <i class=\"fa-solid fa-arrow-left\"></i>\n Back\n </button>\n }\n @case ('results') {\n <button kendoButton themeColor=\"primary\" (click)=\"runAgain()\">\n <i class=\"fa-solid fa-redo\"></i>\n Run Again\n </button>\n <button kendoButton fillMode=\"flat\" (click)=\"goBack()\">\n <i class=\"fa-solid fa-arrow-left\"></i>\n Edit Parameters\n </button>\n <button kendoButton fillMode=\"flat\" (click)=\"closeDialog()\">Close</button>\n }\n }\n </div>\n</div>\n", styles: ["/* MCP Test Tool Slide-Out Panel Styles */\n\n/* ========================================\n Backdrop\n ======================================== */\n.panel-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.4);\n z-index: 1000;\n animation: fadeIn 0.2s ease-out;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n/* ========================================\n Slide-Out Panel\n ======================================== */\n.slide-out-panel {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n background: white;\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.slide-out-panel.mobile {\n width: 100% !important;\n left: 0;\n}\n\n.slide-out-panel.resizing {\n user-select: none;\n transition: none;\n}\n\n/* ========================================\n Resize Handle\n ======================================== */\n.resize-handle {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 6px;\n cursor: ew-resize;\n background: transparent;\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.15s ease;\n}\n\n.resize-handle:hover,\n.resize-handle.active {\n background: rgba(33, 150, 243, 0.1);\n}\n\n.resize-grip {\n width: 3px;\n height: 40px;\n background: #ccc;\n border-radius: 2px;\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n\n.resize-handle:hover .resize-grip,\n.resize-handle.active .resize-grip {\n opacity: 1;\n background: var(--mj-primary-color, #2196f3);\n}\n\n/* ========================================\n Panel Header\n ======================================== */\n.panel-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n background: white;\n border-bottom: 1px solid #e0e0e0;\n flex-shrink: 0;\n}\n\n.panel-title {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-color, #333);\n}\n\n.panel-title i {\n color: var(--mj-primary-color, #2196f3);\n}\n\n.close-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n border: none;\n background: transparent;\n border-radius: 50%;\n cursor: pointer;\n color: #666;\n transition: all 0.15s ease;\n}\n\n.close-btn:hover {\n background: #f5f5f5;\n color: #333;\n}\n\n.close-btn i {\n font-size: 18px;\n}\n\n/* ========================================\n Step Indicator\n ======================================== */\n.step-indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px 20px;\n background: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n flex-shrink: 0;\n}\n\n.step {\n display: flex;\n align-items: center;\n gap: 8px;\n opacity: 0.5;\n transition: opacity 0.2s ease;\n}\n\n.step.active,\n.step.completed {\n opacity: 1;\n}\n\n.step-number {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: #e0e0e0;\n color: #666;\n font-weight: 600;\n font-size: 13px;\n transition: all 0.2s ease;\n}\n\n.step.active .step-number {\n background: var(--mj-primary-color, #2196f3);\n color: white;\n}\n\n.step.completed .step-number {\n background: #4caf50;\n color: white;\n}\n\n.step-label {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-color, #333);\n}\n\n.step-connector {\n width: 40px;\n height: 2px;\n background: #e0e0e0;\n margin: 0 10px;\n transition: background 0.2s ease;\n}\n\n.step-connector.completed {\n background: #4caf50;\n}\n\n/* ========================================\n Panel Content\n ======================================== */\n.panel-content {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n\n.step-content {\n min-height: 100%;\n}\n\n.step-content.results-step {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n/* ========================================\n Selection Form (Step 1)\n ======================================== */\n.selection-form {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.form-group {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.form-label {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-color, #333);\n}\n\n.form-label i {\n color: var(--mj-primary-color, #2196f3);\n font-size: 14px;\n}\n\n.required {\n color: #f44336;\n font-weight: 600;\n}\n\n.field-hint {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-secondary-color, #666);\n font-style: italic;\n margin-top: 4px;\n}\n\n.field-hint.auto-selected {\n color: #4caf50;\n font-style: normal;\n}\n\n.field-hint.auto-selected i {\n font-size: 11px;\n}\n\n.field-error {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #f44336;\n margin-top: 4px;\n padding: 8px 10px;\n background: rgba(244, 67, 54, 0.08);\n border-radius: 4px;\n border: 1px solid rgba(244, 67, 54, 0.2);\n}\n\n.field-error i {\n font-size: 13px;\n}\n\n/* Dropdown Item Styling */\n.dropdown-item {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding: 4px 0;\n}\n\n.dropdown-item.tool-item {\n max-width: 100%;\n}\n\n.item-name {\n font-weight: 500;\n color: var(--mj-text-color, #333);\n}\n\n.item-description {\n font-size: 12px;\n color: var(--mj-text-secondary-color, #666);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n}\n\n.item-status {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.item-status.status-active {\n color: #4caf50;\n}\n\n.item-status.status-inactive {\n color: #9e9e9e;\n}\n\n/* ========================================\n Tool Header (Step 2)\n ======================================== */\n.tool-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding: 16px;\n background: linear-gradient(135deg, rgba(33, 150, 243, 0.08), rgba(33, 150, 243, 0.02));\n border-radius: 8px;\n margin-bottom: 20px;\n border: 1px solid rgba(33, 150, 243, 0.15);\n}\n\n.tool-info {\n flex: 1;\n min-width: 0;\n}\n\n.tool-name {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-color, #333);\n}\n\n.tool-name i {\n color: var(--mj-primary-color, #2196f3);\n}\n\n.tool-description {\n margin: 0;\n font-size: 13px;\n color: var(--mj-text-secondary-color, #666);\n line-height: 1.5;\n}\n\n.tool-context {\n display: flex;\n flex-direction: column;\n gap: 6px;\n align-items: flex-end;\n flex-shrink: 0;\n}\n\n.context-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-secondary-color, #666);\n}\n\n.context-item i {\n font-size: 11px;\n color: #999;\n}\n\n/* ========================================\n Parameters Form (Step 2)\n ======================================== */\n.no-params {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n text-align: center;\n color: var(--mj-text-secondary-color, #666);\n}\n\n.no-params i {\n font-size: 48px;\n color: #4caf50;\n margin-bottom: 16px;\n}\n\n.no-params p {\n margin: 0;\n font-size: 15px;\n}\n\n.params-title {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary-color, #666);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.parameters-form {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.param-group {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 12px;\n background: #fafafa;\n border-radius: 6px;\n border: 1px solid #e8e8e8;\n}\n\n.param-group.required {\n border-left: 3px solid var(--mj-primary-color, #2196f3);\n}\n\n.param-label {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-color, #333);\n}\n\n.param-description {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-secondary-color, #666);\n line-height: 1.4;\n}\n\n.checkbox-wrapper {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n}\n\n.checkbox-wrapper input[type=\"checkbox\"] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n}\n\n.checkbox-wrapper label {\n font-size: 14px;\n color: var(--mj-text-color, #333);\n cursor: pointer;\n}\n\n.json-input,\n.text-input {\n width: 100%;\n padding: 10px 12px;\n font-family: 'Consolas', 'Monaco', monospace;\n font-size: 13px;\n line-height: 1.5;\n border: 1px solid #ddd;\n border-radius: 4px;\n background: white;\n resize: vertical;\n box-sizing: border-box;\n}\n\n.json-input:focus,\n.text-input:focus {\n outline: none;\n border-color: var(--mj-primary-color, #2196f3);\n box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.1);\n}\n\n/* ========================================\n Results (Step 3)\n ======================================== */\n.results-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n flex: 1;\n min-height: 0;\n}\n\n.result-header {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n border-radius: 8px;\n font-weight: 600;\n}\n\n.result-header.success {\n background: rgba(76, 175, 80, 0.1);\n color: #388e3c;\n}\n\n.result-header.success i {\n font-size: 24px;\n color: #4caf50;\n}\n\n.result-header.error {\n background: rgba(244, 67, 54, 0.1);\n color: #c62828;\n}\n\n.result-header.error i {\n font-size: 24px;\n color: #f44336;\n}\n\n.result-status {\n flex: 1;\n font-size: 16px;\n}\n\n.duration {\n font-size: 13px;\n font-weight: normal;\n color: var(--mj-text-secondary-color, #666);\n background: rgba(0, 0, 0, 0.05);\n padding: 4px 8px;\n border-radius: 4px;\n}\n\n.error-panel {\n background: #fff5f5;\n border: 1px solid rgba(244, 67, 54, 0.2);\n border-radius: 8px;\n padding: 16px;\n}\n\n.error-panel h4 {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 12px 0;\n font-size: 14px;\n color: #c62828;\n}\n\n.error-message {\n margin: 0;\n padding: 12px;\n background: white;\n border-radius: 4px;\n font-family: monospace;\n font-size: 13px;\n line-height: 1.5;\n color: #c62828;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.result-panel {\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.result-panel.fill-space {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-height: 200px;\n}\n\n.result-panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n background: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.result-panel-header h4 {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-color, #333);\n}\n\n.code-editor-container {\n height: 300px;\n min-height: 200px;\n max-height: 400px;\n overflow: hidden;\n}\n\n.result-panel.fill-space .code-editor-container {\n flex: 1;\n height: auto;\n max-height: none;\n}\n\n.code-editor-container mj-code-editor {\n width: 100%;\n height: 100%;\n}\n\n.execution-info {\n padding: 16px;\n background: #fafafa;\n border-radius: 8px;\n border: 1px solid #e8e8e8;\n}\n\n.info-row {\n display: flex;\n justify-content: space-between;\n padding: 6px 0;\n font-size: 13px;\n}\n\n.info-row:not(:last-child) {\n border-bottom: 1px solid #e8e8e8;\n}\n\n.info-label {\n color: var(--mj-text-secondary-color, #666);\n}\n\n.info-value {\n font-weight: 500;\n color: var(--mj-text-color, #333);\n}\n\n/* ========================================\n Panel Actions\n ======================================== */\n.panel-actions {\n display: flex;\n gap: 8px;\n padding: 16px 20px;\n background: white;\n border-top: 1px solid #e0e0e0;\n flex-shrink: 0;\n}\n\n.panel-actions button {\n min-width: 100px;\n}\n\n.panel-actions button i {\n margin-right: 6px;\n}\n\n/* ========================================\n Responsive / Mobile\n ======================================== */\n@media (max-width: 768px) {\n .slide-out-panel {\n width: 100% !important;\n left: 0;\n }\n\n .resize-handle {\n display: none;\n }\n\n .step-indicator {\n padding: 12px 16px;\n }\n\n .step-connector {\n width: 20px;\n margin: 0 6px;\n }\n\n .step-label {\n display: none;\n }\n\n .panel-content {\n padding: 16px;\n }\n\n .tool-header {\n flex-direction: column;\n gap: 12px;\n }\n\n .tool-context {\n align-items: flex-start;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 12px;\n }\n\n .panel-actions {\n flex-wrap: wrap;\n }\n\n .panel-actions button {\n flex: 1;\n min-width: 80px;\n }\n}\n\n@media (max-width: 480px) {\n .panel-header {\n padding: 12px 16px;\n }\n\n .panel-title {\n font-size: 16px;\n }\n\n .step-number {\n width: 24px;\n height: 24px;\n font-size: 12px;\n }\n\n .tool-name {\n font-size: 16px;\n }\n}\n"] }]
1272
+ ], template: "<!-- Backdrop -->\n@if (Visible) {\n <div class=\"panel-backdrop\" (click)=\"closeDialog()\"></div>\n}\n\n<!-- Slide-out Panel -->\n@if (Visible) {\n <div class=\"slide-out-panel\"\n @slideIn\n [style.width.px]=\"IsMobileMode ? null : PanelWidth\"\n [class.mobile]=\"IsMobileMode\"\n [class.resizing]=\"IsResizing\">\n <!-- Resize Handle (left edge) -->\n @if (!IsMobileMode) {\n <div class=\"resize-handle\"\n (mousedown)=\"onResizeStart($event)\"\n [class.active]=\"IsResizing\"\n title=\"Drag to resize\">\n <div class=\"resize-grip\"></div>\n </div>\n }\n <!-- Panel Header -->\n <div class=\"panel-header\">\n <h2 class=\"panel-title\">\n <i class=\"fa-solid fa-flask\"></i>\n Test MCP Tool\n </h2>\n <button class=\"close-btn\" (click)=\"closeDialog()\" title=\"Close\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <!-- Step Indicator -->\n <div class=\"step-indicator\">\n <div class=\"step\" [class.active]=\"CurrentStep === 'select'\" [class.completed]=\"CurrentStep !== 'select'\">\n <span class=\"step-number\">1</span>\n <span class=\"step-label\">Select Tool</span>\n </div>\n <div class=\"step-connector\" [class.completed]=\"CurrentStep !== 'select'\"></div>\n <div class=\"step\" [class.active]=\"CurrentStep === 'configure'\" [class.completed]=\"CurrentStep === 'results'\">\n <span class=\"step-number\">2</span>\n <span class=\"step-label\">Configure</span>\n </div>\n <div class=\"step-connector\" [class.completed]=\"CurrentStep === 'results'\"></div>\n <div class=\"step\" [class.active]=\"CurrentStep === 'results'\">\n <span class=\"step-number\">3</span>\n <span class=\"step-label\">Results</span>\n </div>\n </div>\n <!-- Panel Content -->\n <div class=\"panel-content\">\n <!-- Step 1: Select Server, Connection, Tool -->\n @if (CurrentStep === 'select') {\n <div class=\"step-content\">\n <div class=\"selection-form\">\n <!-- Server Selection -->\n <div class=\"form-group\">\n <label class=\"form-label\">\n <i class=\"fa-solid fa-server\"></i>\n Server\n <span class=\"required\">*</span>\n </label>\n <kendo-dropdownlist\n [data]=\"DisplayServers\"\n [textField]=\"'Name'\"\n [valueField]=\"'ID'\"\n [valuePrimitive]=\"true\"\n [(ngModel)]=\"ServerID\"\n (valueChange)=\"onServerChange()\"\n [filterable]=\"true\"\n (filterChange)=\"onServerFilterChange($event)\"\n placeholder=\"Select a server...\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div class=\"dropdown-item\">\n <span class=\"item-name\">{{ dataItem.Name }}</span>\n <span class=\"item-status\" [class]=\"'status-' + dataItem.Status.toLowerCase()\">\n {{ dataItem.Status }}\n </span>\n </div>\n </ng-template>\n </kendo-dropdownlist>\n </div>\n <!-- Connection Selection -->\n <div class=\"form-group\">\n <label class=\"form-label\">\n <i class=\"fa-solid fa-link\"></i>\n Connection\n <span class=\"required\">*</span>\n </label>\n <kendo-dropdownlist\n [data]=\"DisplayConnections\"\n [textField]=\"'Name'\"\n [valueField]=\"'ID'\"\n [valuePrimitive]=\"true\"\n [(ngModel)]=\"ConnectionID\"\n (valueChange)=\"onConnectionChange()\"\n [disabled]=\"!ServerID || NoConnectionsWarning !== null\"\n [filterable]=\"true\"\n (filterChange)=\"onConnectionFilterChange($event)\"\n placeholder=\"Select a connection...\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div class=\"dropdown-item\">\n <span class=\"item-name\">{{ dataItem.Name }}</span>\n @if (dataItem.Description) {\n <span class=\"item-description\">{{ dataItem.Description }}</span>\n }\n </div>\n </ng-template>\n </kendo-dropdownlist>\n @if (!ServerID) {\n <span class=\"field-hint\">Select a server first</span>\n }\n @if (NoConnectionsWarning) {\n <span class=\"field-error\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n {{ NoConnectionsWarning }}\n </span>\n }\n @if (FilteredConnections.length === 1 && ConnectionID) {\n <span class=\"field-hint auto-selected\">\n <i class=\"fa-solid fa-check\"></i>\n Auto-selected (only connection available)\n </span>\n }\n </div>\n <!-- Tool Selection -->\n <div class=\"form-group\">\n <label class=\"form-label\">\n <i class=\"fa-solid fa-wrench\"></i>\n Tool\n <span class=\"required\">*</span>\n </label>\n <kendo-dropdownlist\n [data]=\"DisplayTools\"\n [textField]=\"'ToolTitle'\"\n [valueField]=\"'ID'\"\n [valuePrimitive]=\"true\"\n [(ngModel)]=\"ToolID\"\n (valueChange)=\"onToolChange()\"\n [disabled]=\"!ServerID\"\n [filterable]=\"true\"\n (filterChange)=\"onToolFilterChange($event)\"\n placeholder=\"Select a tool...\">\n <ng-template kendoDropDownListValueTemplate let-dataItem>\n {{ dataItem?.ToolTitle || dataItem?.ToolName || 'Select a tool...' }}\n </ng-template>\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div class=\"dropdown-item tool-item\">\n <span class=\"item-name\">{{ dataItem.ToolTitle || dataItem.ToolName }}</span>\n @if (dataItem.ToolDescription) {\n <span class=\"item-description\">{{ dataItem.ToolDescription }}</span>\n }\n </div>\n </ng-template>\n </kendo-dropdownlist>\n @if (!ServerID) {\n <span class=\"field-hint\">Select a server first</span>\n }\n </div>\n </div>\n </div>\n }\n <!-- Step 2: Configure Parameters -->\n @if (CurrentStep === 'configure') {\n <div class=\"step-content\">\n <div class=\"tool-header\">\n <div class=\"tool-info\">\n <h3 class=\"tool-name\">\n <i class=\"fa-solid fa-wrench\"></i>\n {{ SelectedTool?.ToolTitle || SelectedTool?.ToolName }}\n </h3>\n @if (SelectedTool?.ToolDescription) {\n <p class=\"tool-description\">{{ SelectedTool?.ToolDescription }}</p>\n }\n </div>\n <div class=\"tool-context\">\n <span class=\"context-item\">\n <i class=\"fa-solid fa-server\"></i>\n {{ SelectedServerName }}\n </span>\n <span class=\"context-item\">\n <i class=\"fa-solid fa-link\"></i>\n {{ SelectedConnectionName }}\n </span>\n </div>\n </div>\n @if (ParameterConfigs.length === 0) {\n <div class=\"no-params\">\n <i class=\"fa-solid fa-check-circle\"></i>\n <p>This tool requires no parameters.</p>\n </div>\n } @else {\n <div class=\"parameters-form\">\n <h4 class=\"params-title\">Parameters</h4>\n @for (config of ParameterConfigs; track config.name) {\n <div class=\"param-group\" [class.required]=\"config.required\">\n <label class=\"param-label\">\n {{ config.name }}\n @if (config.required) {\n <span class=\"required\">*</span>\n }\n </label>\n @if (config.description) {\n <p class=\"param-description\">{{ config.description }}</p>\n }\n <!-- Enum/Select -->\n @if (config.enumValues.length > 0) {\n <kendo-dropdownlist\n [data]=\"config.enumValues\"\n [valuePrimitive]=\"true\"\n [(ngModel)]=\"ParameterValues[config.name]\"\n (valueChange)=\"onParameterChange(config.name, $event)\">\n </kendo-dropdownlist>\n }\n <!-- Boolean -->\n @else if (config.type === 'boolean') {\n <div class=\"checkbox-wrapper\">\n <input type=\"checkbox\"\n [id]=\"'param-' + config.name\"\n [checked]=\"ParameterValues[config.name]\"\n (change)=\"onParameterChange(config.name, $any($event.target).checked)\">\n <label [for]=\"'param-' + config.name\">Enabled</label>\n </div>\n }\n <!-- Number/Integer -->\n @else if (config.type === 'number' || config.type === 'integer') {\n <kendo-numerictextbox\n [format]=\"config.type === 'integer' ? 'n0' : 'n'\"\n [step]=\"config.type === 'integer' ? 1 : 0.1\"\n [(ngModel)]=\"ParameterValues[config.name]\"\n (valueChange)=\"onParameterChange(config.name, $event)\">\n </kendo-numerictextbox>\n }\n <!-- Array/Object (Textarea with JSON) -->\n @else if (config.type === 'array' || config.type === 'object') {\n <textarea class=\"json-input\"\n rows=\"4\"\n [value]=\"getTextareaValue(config.name)\"\n (input)=\"onTextareaChange(config.name, $any($event.target).value, config)\"\n placeholder=\"Enter JSON {{ config.type }}...\"></textarea>\n <span class=\"field-hint\">Enter valid JSON</span>\n }\n <!-- String (default) -->\n @else {\n @if (isTextarea(config)) {\n <textarea class=\"text-input\"\n rows=\"3\"\n [(ngModel)]=\"ParameterValues[config.name]\"\n (input)=\"onParameterChange(config.name, $any($event.target).value)\"\n [placeholder]=\"config.description || 'Enter value...'\"></textarea>\n } @else {\n <kendo-textbox\n [(ngModel)]=\"ParameterValues[config.name]\"\n (valueChange)=\"onParameterChange(config.name, $event)\"\n [placeholder]=\"config.description || 'Enter value...'\">\n </kendo-textbox>\n }\n }\n </div>\n }\n </div>\n }\n</div>\n}\n<!-- Step 3: Results -->\n@if (CurrentStep === 'results') {\n <div class=\"step-content results-step\">\n <div class=\"results-container\">\n <!-- Success/Error Header -->\n <div class=\"result-header\" [class.success]=\"ExecutionResult?.Success\" [class.error]=\"!ExecutionResult?.Success\">\n @if (ExecutionResult?.Success) {\n <i class=\"fa-solid fa-check-circle\"></i>\n <span class=\"result-status\">Execution Successful</span>\n } @else {\n <i class=\"fa-solid fa-times-circle\"></i>\n <span class=\"result-status\">Execution Failed</span>\n }\n @if (ExecutionResult?.DurationMs) {\n <span class=\"duration\">{{ ExecutionResult?.DurationMs }}ms</span>\n }\n </div>\n <!-- Executed Tool Info (moved to top) -->\n <div class=\"execution-info\">\n <div class=\"info-row\">\n <span class=\"info-label\">Tool:</span>\n <span class=\"info-value\">{{ SelectedToolName }}</span>\n </div>\n <div class=\"info-row\">\n <span class=\"info-label\">Server:</span>\n <span class=\"info-value\">{{ SelectedServerName }}</span>\n </div>\n <div class=\"info-row\">\n <span class=\"info-label\">Connection:</span>\n <span class=\"info-value\">{{ SelectedConnectionName }}</span>\n </div>\n </div>\n <!-- Error Message -->\n @if (ExecutionResult?.ErrorMessage) {\n <div class=\"error-panel\">\n <h4><i class=\"fa-solid fa-exclamation-triangle\"></i> Error</h4>\n <pre class=\"error-message\">{{ ExecutionResult?.ErrorMessage }}</pre>\n </div>\n }\n <!-- Result Data (fills remaining space) -->\n @if (ExecutionResult?.Result) {\n <div class=\"result-panel fill-space\">\n <div class=\"result-panel-header\">\n <h4><i class=\"fa-solid fa-code\"></i> Result</h4>\n <button kendoButton fillMode=\"flat\" (click)=\"copyResult()\" title=\"Copy to clipboard\">\n <i class=\"fa-solid fa-copy\"></i>\n </button>\n </div>\n <div class=\"code-editor-container\">\n <mj-code-editor\n [ngModel]=\"FormattedResult\"\n [language]=\"'json'\"\n [readonly]=\"true\">\n </mj-code-editor>\n </div>\n </div>\n }\n </div>\n </div>\n}\n</div>\n<!-- Panel Actions -->\n<div class=\"panel-actions\">\n @switch (CurrentStep) {\n @case ('select') {\n <button kendoButton themeColor=\"primary\" (click)=\"proceedToConfig()\" [disabled]=\"!CanProceedToConfig\">\n <i class=\"fa-solid fa-arrow-right\"></i>\n Next\n </button>\n <button kendoButton fillMode=\"flat\" (click)=\"closeDialog()\">Cancel</button>\n }\n @case ('configure') {\n <button kendoButton themeColor=\"primary\" (click)=\"executeTool()\" [disabled]=\"!IsValid || IsExecuting\">\n @if (IsExecuting) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Executing...\n } @else {\n <i class=\"fa-solid fa-play\"></i>\n Execute Tool\n }\n </button>\n <button kendoButton fillMode=\"flat\" (click)=\"goBack()\">\n <i class=\"fa-solid fa-arrow-left\"></i>\n Back\n </button>\n }\n @case ('results') {\n <button kendoButton themeColor=\"primary\" (click)=\"runAgain()\">\n <i class=\"fa-solid fa-redo\"></i>\n Run Again\n </button>\n <button kendoButton fillMode=\"flat\" (click)=\"goBack()\">\n <i class=\"fa-solid fa-arrow-left\"></i>\n Edit Parameters\n </button>\n <button kendoButton fillMode=\"flat\" (click)=\"closeDialog()\">Close</button>\n }\n }\n</div>\n</div>\n}\n", styles: ["/* MCP Test Tool Slide-Out Panel Styles */\n\n/* ========================================\n Backdrop\n ======================================== */\n.panel-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.4);\n z-index: 1000;\n animation: fadeIn 0.2s ease-out;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n/* ========================================\n Slide-Out Panel\n ======================================== */\n.slide-out-panel {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n background: white;\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.slide-out-panel.mobile {\n width: 100% !important;\n left: 0;\n}\n\n.slide-out-panel.resizing {\n user-select: none;\n transition: none;\n}\n\n/* ========================================\n Resize Handle\n ======================================== */\n.resize-handle {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 6px;\n cursor: ew-resize;\n background: transparent;\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.15s ease;\n}\n\n.resize-handle:hover,\n.resize-handle.active {\n background: rgba(33, 150, 243, 0.1);\n}\n\n.resize-grip {\n width: 3px;\n height: 40px;\n background: #ccc;\n border-radius: 2px;\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n\n.resize-handle:hover .resize-grip,\n.resize-handle.active .resize-grip {\n opacity: 1;\n background: var(--mj-primary-color, #2196f3);\n}\n\n/* ========================================\n Panel Header\n ======================================== */\n.panel-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px;\n background: white;\n border-bottom: 1px solid #e0e0e0;\n flex-shrink: 0;\n}\n\n.panel-title {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-color, #333);\n}\n\n.panel-title i {\n color: var(--mj-primary-color, #2196f3);\n}\n\n.close-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n border: none;\n background: transparent;\n border-radius: 50%;\n cursor: pointer;\n color: #666;\n transition: all 0.15s ease;\n}\n\n.close-btn:hover {\n background: #f5f5f5;\n color: #333;\n}\n\n.close-btn i {\n font-size: 18px;\n}\n\n/* ========================================\n Step Indicator\n ======================================== */\n.step-indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px 20px;\n background: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n flex-shrink: 0;\n}\n\n.step {\n display: flex;\n align-items: center;\n gap: 8px;\n opacity: 0.5;\n transition: opacity 0.2s ease;\n}\n\n.step.active,\n.step.completed {\n opacity: 1;\n}\n\n.step-number {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: #e0e0e0;\n color: #666;\n font-weight: 600;\n font-size: 13px;\n transition: all 0.2s ease;\n}\n\n.step.active .step-number {\n background: var(--mj-primary-color, #2196f3);\n color: white;\n}\n\n.step.completed .step-number {\n background: #4caf50;\n color: white;\n}\n\n.step-label {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-color, #333);\n}\n\n.step-connector {\n width: 40px;\n height: 2px;\n background: #e0e0e0;\n margin: 0 10px;\n transition: background 0.2s ease;\n}\n\n.step-connector.completed {\n background: #4caf50;\n}\n\n/* ========================================\n Panel Content\n ======================================== */\n.panel-content {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n\n.step-content {\n min-height: 100%;\n}\n\n.step-content.results-step {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n/* ========================================\n Selection Form (Step 1)\n ======================================== */\n.selection-form {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.form-group {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.form-label {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-color, #333);\n}\n\n.form-label i {\n color: var(--mj-primary-color, #2196f3);\n font-size: 14px;\n}\n\n.required {\n color: #f44336;\n font-weight: 600;\n}\n\n.field-hint {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-secondary-color, #666);\n font-style: italic;\n margin-top: 4px;\n}\n\n.field-hint.auto-selected {\n color: #4caf50;\n font-style: normal;\n}\n\n.field-hint.auto-selected i {\n font-size: 11px;\n}\n\n.field-error {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #f44336;\n margin-top: 4px;\n padding: 8px 10px;\n background: rgba(244, 67, 54, 0.08);\n border-radius: 4px;\n border: 1px solid rgba(244, 67, 54, 0.2);\n}\n\n.field-error i {\n font-size: 13px;\n}\n\n/* Dropdown Item Styling */\n.dropdown-item {\n display: flex;\n flex-direction: column;\n gap: 2px;\n padding: 4px 0;\n}\n\n.dropdown-item.tool-item {\n max-width: 100%;\n}\n\n.item-name {\n font-weight: 500;\n color: var(--mj-text-color, #333);\n}\n\n.item-description {\n font-size: 12px;\n color: var(--mj-text-secondary-color, #666);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n}\n\n.item-status {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.item-status.status-active {\n color: #4caf50;\n}\n\n.item-status.status-inactive {\n color: #9e9e9e;\n}\n\n/* ========================================\n Tool Header (Step 2)\n ======================================== */\n.tool-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding: 16px;\n background: linear-gradient(135deg, rgba(33, 150, 243, 0.08), rgba(33, 150, 243, 0.02));\n border-radius: 8px;\n margin-bottom: 20px;\n border: 1px solid rgba(33, 150, 243, 0.15);\n}\n\n.tool-info {\n flex: 1;\n min-width: 0;\n}\n\n.tool-name {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-color, #333);\n}\n\n.tool-name i {\n color: var(--mj-primary-color, #2196f3);\n}\n\n.tool-description {\n margin: 0;\n font-size: 13px;\n color: var(--mj-text-secondary-color, #666);\n line-height: 1.5;\n}\n\n.tool-context {\n display: flex;\n flex-direction: column;\n gap: 6px;\n align-items: flex-end;\n flex-shrink: 0;\n}\n\n.context-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: var(--mj-text-secondary-color, #666);\n}\n\n.context-item i {\n font-size: 11px;\n color: #999;\n}\n\n/* ========================================\n Parameters Form (Step 2)\n ======================================== */\n.no-params {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n text-align: center;\n color: var(--mj-text-secondary-color, #666);\n}\n\n.no-params i {\n font-size: 48px;\n color: #4caf50;\n margin-bottom: 16px;\n}\n\n.no-params p {\n margin: 0;\n font-size: 15px;\n}\n\n.params-title {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary-color, #666);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.parameters-form {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.param-group {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 12px;\n background: #fafafa;\n border-radius: 6px;\n border: 1px solid #e8e8e8;\n}\n\n.param-group.required {\n border-left: 3px solid var(--mj-primary-color, #2196f3);\n}\n\n.param-label {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-color, #333);\n}\n\n.param-description {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-secondary-color, #666);\n line-height: 1.4;\n}\n\n.checkbox-wrapper {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n}\n\n.checkbox-wrapper input[type=\"checkbox\"] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n}\n\n.checkbox-wrapper label {\n font-size: 14px;\n color: var(--mj-text-color, #333);\n cursor: pointer;\n}\n\n.json-input,\n.text-input {\n width: 100%;\n padding: 10px 12px;\n font-family: 'Consolas', 'Monaco', monospace;\n font-size: 13px;\n line-height: 1.5;\n border: 1px solid #ddd;\n border-radius: 4px;\n background: white;\n resize: vertical;\n box-sizing: border-box;\n}\n\n.json-input:focus,\n.text-input:focus {\n outline: none;\n border-color: var(--mj-primary-color, #2196f3);\n box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.1);\n}\n\n/* ========================================\n Results (Step 3)\n ======================================== */\n.results-container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n flex: 1;\n min-height: 0;\n}\n\n.result-header {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n border-radius: 8px;\n font-weight: 600;\n}\n\n.result-header.success {\n background: rgba(76, 175, 80, 0.1);\n color: #388e3c;\n}\n\n.result-header.success i {\n font-size: 24px;\n color: #4caf50;\n}\n\n.result-header.error {\n background: rgba(244, 67, 54, 0.1);\n color: #c62828;\n}\n\n.result-header.error i {\n font-size: 24px;\n color: #f44336;\n}\n\n.result-status {\n flex: 1;\n font-size: 16px;\n}\n\n.duration {\n font-size: 13px;\n font-weight: normal;\n color: var(--mj-text-secondary-color, #666);\n background: rgba(0, 0, 0, 0.05);\n padding: 4px 8px;\n border-radius: 4px;\n}\n\n.error-panel {\n background: #fff5f5;\n border: 1px solid rgba(244, 67, 54, 0.2);\n border-radius: 8px;\n padding: 16px;\n}\n\n.error-panel h4 {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 12px 0;\n font-size: 14px;\n color: #c62828;\n}\n\n.error-message {\n margin: 0;\n padding: 12px;\n background: white;\n border-radius: 4px;\n font-family: monospace;\n font-size: 13px;\n line-height: 1.5;\n color: #c62828;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n.result-panel {\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.result-panel.fill-space {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-height: 200px;\n}\n\n.result-panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n background: #fafafa;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.result-panel-header h4 {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-color, #333);\n}\n\n.code-editor-container {\n height: 300px;\n min-height: 200px;\n max-height: 400px;\n overflow: hidden;\n}\n\n.result-panel.fill-space .code-editor-container {\n flex: 1;\n height: auto;\n max-height: none;\n}\n\n.code-editor-container mj-code-editor {\n width: 100%;\n height: 100%;\n}\n\n.execution-info {\n padding: 16px;\n background: #fafafa;\n border-radius: 8px;\n border: 1px solid #e8e8e8;\n}\n\n.info-row {\n display: flex;\n justify-content: space-between;\n padding: 6px 0;\n font-size: 13px;\n}\n\n.info-row:not(:last-child) {\n border-bottom: 1px solid #e8e8e8;\n}\n\n.info-label {\n color: var(--mj-text-secondary-color, #666);\n}\n\n.info-value {\n font-weight: 500;\n color: var(--mj-text-color, #333);\n}\n\n/* ========================================\n Panel Actions\n ======================================== */\n.panel-actions {\n display: flex;\n gap: 8px;\n padding: 16px 20px;\n background: white;\n border-top: 1px solid #e0e0e0;\n flex-shrink: 0;\n}\n\n.panel-actions button {\n min-width: 100px;\n}\n\n.panel-actions button i {\n margin-right: 6px;\n}\n\n/* ========================================\n Responsive / Mobile\n ======================================== */\n@media (max-width: 768px) {\n .slide-out-panel {\n width: 100% !important;\n left: 0;\n }\n\n .resize-handle {\n display: none;\n }\n\n .step-indicator {\n padding: 12px 16px;\n }\n\n .step-connector {\n width: 20px;\n margin: 0 6px;\n }\n\n .step-label {\n display: none;\n }\n\n .panel-content {\n padding: 16px;\n }\n\n .tool-header {\n flex-direction: column;\n gap: 12px;\n }\n\n .tool-context {\n align-items: flex-start;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 12px;\n }\n\n .panel-actions {\n flex-wrap: wrap;\n }\n\n .panel-actions button {\n flex: 1;\n min-width: 80px;\n }\n}\n\n@media (max-width: 480px) {\n .panel-header {\n padding: 12px 16px;\n }\n\n .panel-title {\n font-size: 16px;\n }\n\n .step-number {\n width: 24px;\n height: 24px;\n font-size: 12px;\n }\n\n .tool-name {\n font-size: 16px;\n }\n}\n"] }]
1267
1273
  }], () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], { Visible: [{
1268
1274
  type: Input
1269
1275
  }], Servers: [{
@@ -1290,11 +1296,5 @@ export class MCPTestToolDialogComponent {
1290
1296
  type: HostListener,
1291
1297
  args: ['window:resize']
1292
1298
  }] }); })();
1293
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MCPTestToolDialogComponent, { className: "MCPTestToolDialogComponent", filePath: "src/MCP/components/mcp-test-tool-dialog.component.ts", lineNumber: 138 }); })();
1294
- /**
1295
- * Tree-shaking prevention function
1296
- */
1297
- export function LoadMCPTestToolDialog() {
1298
- // Ensures the component is not tree-shaken
1299
- }
1299
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MCPTestToolDialogComponent, { className: "MCPTestToolDialogComponent", filePath: "src/MCP/components/mcp-test-tool-dialog.component.ts", lineNumber: 139 }); })();
1300
1300
  //# sourceMappingURL=mcp-test-tool-dialog.component.js.map