@memberjunction/ng-dashboards 5.34.1 → 5.36.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 (407) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.d.ts +51 -0
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  3. package/dist/AI/components/agents/agent-configuration.component.js +399 -292
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts +8 -2
  6. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts.map +1 -1
  7. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +87 -85
  8. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
  9. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts +96 -0
  10. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
  11. package/dist/AI/components/analytics/ai-analytics-resource.component.js +453 -122
  12. package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
  13. package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts +5 -0
  14. package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts.map +1 -1
  15. package/dist/AI/components/analytics/analytics-filter-bar.component.js +184 -135
  16. package/dist/AI/components/analytics/analytics-filter-bar.component.js.map +1 -1
  17. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +8 -2
  18. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
  19. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +104 -103
  20. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
  21. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts +8 -2
  22. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts.map +1 -1
  23. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js +76 -74
  24. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js.map +1 -1
  25. package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
  26. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +67 -87
  27. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
  28. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +12 -19
  29. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
  30. package/dist/AI/components/analytics/model-performance/model-performance.component.js +96 -203
  31. package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
  32. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
  33. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +110 -126
  34. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
  35. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
  36. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +61 -77
  37. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
  38. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +28 -0
  39. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  40. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +2084 -2079
  41. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  42. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +6 -3
  43. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  44. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +493 -490
  45. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  46. package/dist/AI/components/models/model-management.component.d.ts +17 -0
  47. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  48. package/dist/AI/components/models/model-management.component.js +370 -425
  49. package/dist/AI/components/models/model-management.component.js.map +1 -1
  50. package/dist/AI/components/prompts/prompt-management.component.d.ts +17 -0
  51. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  52. package/dist/AI/components/prompts/prompt-management.component.js +317 -357
  53. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  54. package/dist/AI/components/requests/agent-requests-resource.component.d.ts +11 -0
  55. package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
  56. package/dist/AI/components/requests/agent-requests-resource.component.js +170 -175
  57. package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
  58. package/dist/AI/components/system/system-configuration.component.d.ts +19 -0
  59. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  60. package/dist/AI/components/system/system-configuration.component.js +403 -362
  61. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  62. package/dist/AI/components/tags/tags-resource.component.d.ts +15 -0
  63. package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
  64. package/dist/AI/components/tags/tags-resource.component.js +1423 -1438
  65. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  66. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +8 -3
  67. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  68. package/dist/AI/components/vectors/vector-management-resource.component.js +547 -521
  69. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  70. package/dist/APIKeys/api-keys-resource.component.d.ts +12 -8
  71. package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
  72. package/dist/APIKeys/api-keys-resource.component.js +329 -371
  73. package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
  74. package/dist/Actions/components/actions-overview.component.d.ts +6 -0
  75. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  76. package/dist/Actions/components/actions-overview.component.js +202 -158
  77. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  78. package/dist/Actions/components/execution-monitoring.component.d.ts +9 -3
  79. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  80. package/dist/Actions/components/execution-monitoring.component.js +191 -142
  81. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  82. package/dist/Actions/components/explorer/action-explorer.component.d.ts +41 -1
  83. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  84. package/dist/Actions/components/explorer/action-explorer.component.js +388 -94
  85. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  86. package/dist/Actions/components/explorer/index.d.ts +0 -1
  87. package/dist/Actions/components/explorer/index.d.ts.map +1 -1
  88. package/dist/Actions/components/explorer/index.js +0 -1
  89. package/dist/Actions/components/explorer/index.js.map +1 -1
  90. package/dist/Admin/admin-data-schema.component.js +19 -79
  91. package/dist/Admin/admin-data-schema.component.js.map +1 -1
  92. package/dist/Admin/admin-dev-tools-resource.component.js +19 -79
  93. package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
  94. package/dist/Admin/admin-identity-access.component.js +19 -79
  95. package/dist/Admin/admin-identity-access.component.js.map +1 -1
  96. package/dist/Admin/admin-monitoring.component.js +19 -79
  97. package/dist/Admin/admin-monitoring.component.js.map +1 -1
  98. package/dist/Admin/base-admin-container.component.d.ts +9 -7
  99. package/dist/Admin/base-admin-container.component.d.ts.map +1 -1
  100. package/dist/Admin/base-admin-container.component.js +26 -17
  101. package/dist/Admin/base-admin-container.component.js.map +1 -1
  102. package/dist/ApplicationRoles/application-roles-resource.component.js +92 -91
  103. package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
  104. package/dist/Archiving/components/archive-config-resource.component.d.ts.map +1 -1
  105. package/dist/Archiving/components/archive-config-resource.component.js +24 -5
  106. package/dist/Archiving/components/archive-config-resource.component.js.map +1 -1
  107. package/dist/Archiving/components/archive-runs-resource.component.d.ts.map +1 -1
  108. package/dist/Archiving/components/archive-runs-resource.component.js +24 -5
  109. package/dist/Archiving/components/archive-runs-resource.component.js.map +1 -1
  110. package/dist/Communication/communication-logs-resource.component.d.ts +1 -1
  111. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  112. package/dist/Communication/communication-logs-resource.component.js +80 -99
  113. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  114. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  115. package/dist/Communication/communication-monitor-resource.component.js +127 -106
  116. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  117. package/dist/Communication/communication-new-message-resource.component.d.ts +93 -0
  118. package/dist/Communication/communication-new-message-resource.component.d.ts.map +1 -0
  119. package/dist/Communication/communication-new-message-resource.component.js +661 -0
  120. package/dist/Communication/communication-new-message-resource.component.js.map +1 -0
  121. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  122. package/dist/Communication/communication-providers-resource.component.js +44 -45
  123. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  124. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  125. package/dist/Communication/communication-runs-resource.component.js +60 -58
  126. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  127. package/dist/Communication/communication-templates-resource.component.d.ts +1 -1
  128. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  129. package/dist/Communication/communication-templates-resource.component.js +139 -162
  130. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  131. package/dist/Credentials/components/credentials-audit-resource.component.d.ts +7 -0
  132. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  133. package/dist/Credentials/components/credentials-audit-resource.component.js +310 -297
  134. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  135. package/dist/Credentials/components/credentials-categories-resource.component.js +238 -266
  136. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  137. package/dist/Credentials/components/credentials-list-resource.component.d.ts +7 -0
  138. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  139. package/dist/Credentials/components/credentials-list-resource.component.js +381 -399
  140. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  141. package/dist/Credentials/components/credentials-overview-resource.component.js +222 -228
  142. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  143. package/dist/Credentials/components/credentials-types-resource.component.d.ts +6 -0
  144. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  145. package/dist/Credentials/components/credentials-types-resource.component.js +290 -305
  146. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  147. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +8 -0
  148. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -1
  149. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +41 -21
  150. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
  151. package/dist/DatabaseDesigner/components/entity-list.component.d.ts +2 -0
  152. package/dist/DatabaseDesigner/components/entity-list.component.d.ts.map +1 -1
  153. package/dist/DatabaseDesigner/components/entity-list.component.js +148 -155
  154. package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
  155. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +1 -1
  156. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
  157. package/dist/DatabaseDesigner/database-designer-dashboards.module.js +25 -1
  158. package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
  159. package/dist/DevTools/app-state-inspector.component.d.ts +5 -0
  160. package/dist/DevTools/app-state-inspector.component.d.ts.map +1 -1
  161. package/dist/DevTools/app-state-inspector.component.js +46 -72
  162. package/dist/DevTools/app-state-inspector.component.js.map +1 -1
  163. package/dist/DevTools/class-registry.component.js +88 -100
  164. package/dist/DevTools/class-registry.component.js.map +1 -1
  165. package/dist/DevTools/event-monitor.component.js +158 -168
  166. package/dist/DevTools/event-monitor.component.js.map +1 -1
  167. package/dist/DevTools/graphql-console.component.js +257 -264
  168. package/dist/DevTools/graphql-console.component.js.map +1 -1
  169. package/dist/DevTools/layout-inspector.component.d.ts +5 -0
  170. package/dist/DevTools/layout-inspector.component.d.ts.map +1 -1
  171. package/dist/DevTools/layout-inspector.component.js +46 -64
  172. package/dist/DevTools/layout-inspector.component.js.map +1 -1
  173. package/dist/DevTools/lazy-module-status.component.js +75 -84
  174. package/dist/DevTools/lazy-module-status.component.js.map +1 -1
  175. package/dist/DevTools/settings-explorer.component.js +76 -85
  176. package/dist/DevTools/settings-explorer.component.js.map +1 -1
  177. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +2 -0
  178. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
  179. package/dist/EntityAdmin/entity-admin-dashboard.component.js +24 -16
  180. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  181. package/dist/Home/home-dashboard.component.d.ts +6 -0
  182. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  183. package/dist/Home/home-dashboard.component.js +521 -485
  184. package/dist/Home/home-dashboard.component.js.map +1 -1
  185. package/dist/Integration/components/activity/activity.component.d.ts +8 -0
  186. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  187. package/dist/Integration/components/activity/activity.component.js +307 -318
  188. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  189. package/dist/Integration/components/connections/connections.component.js +654 -648
  190. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  191. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +234 -233
  192. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  193. package/dist/Integration/components/overview/overview.component.js +182 -163
  194. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  195. package/dist/Integration/components/pipelines/pipelines.component.d.ts +2 -0
  196. package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
  197. package/dist/Integration/components/pipelines/pipelines.component.js +595 -606
  198. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  199. package/dist/Integration/components/schedules/schedules.component.js +230 -241
  200. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  201. package/dist/Integration/integration.module.d.ts +1 -1
  202. package/dist/Integration/integration.module.d.ts.map +1 -1
  203. package/dist/Integration/integration.module.js +28 -1
  204. package/dist/Integration/integration.module.js.map +1 -1
  205. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts +5 -0
  206. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -1
  207. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +1138 -1147
  208. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
  209. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +54 -51
  210. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  211. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +11 -0
  212. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
  213. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +684 -697
  214. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  215. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +12 -1
  216. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -1
  217. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +191 -120
  218. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
  219. package/dist/Lists/components/lists-browse-resource.component.d.ts +120 -1
  220. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  221. package/dist/Lists/components/lists-browse-resource.component.js +1239 -610
  222. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  223. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  224. package/dist/Lists/components/lists-categories-resource.component.js +152 -160
  225. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  226. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  227. package/dist/Lists/components/lists-my-lists-resource.component.js +302 -319
  228. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  229. package/dist/Lists/components/lists-operations-resource.component.d.ts +133 -3
  230. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  231. package/dist/Lists/components/lists-operations-resource.component.js +1460 -272
  232. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  233. package/dist/Lists/components/lists-shared-with-me-resource.component.d.ts +29 -0
  234. package/dist/Lists/components/lists-shared-with-me-resource.component.d.ts.map +1 -0
  235. package/dist/Lists/components/lists-shared-with-me-resource.component.js +77 -0
  236. package/dist/Lists/components/lists-shared-with-me-resource.component.js.map +1 -0
  237. package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts +6 -0
  238. package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts.map +1 -1
  239. package/dist/Lists/components/venn-diagram/venn-diagram.component.js +35 -7
  240. package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
  241. package/dist/Lists/index.d.ts +1 -0
  242. package/dist/Lists/index.d.ts.map +1 -1
  243. package/dist/Lists/index.js +1 -0
  244. package/dist/Lists/index.js.map +1 -1
  245. package/dist/Lists/services/list-set-operations.service.d.ts +93 -2
  246. package/dist/Lists/services/list-set-operations.service.d.ts.map +1 -1
  247. package/dist/Lists/services/list-set-operations.service.js +236 -10
  248. package/dist/Lists/services/list-set-operations.service.js.map +1 -1
  249. package/dist/MCP/mcp-dashboard.component.d.ts +20 -0
  250. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  251. package/dist/MCP/mcp-dashboard.component.js +1248 -1338
  252. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  253. package/dist/MCP/mcp.module.d.ts +1 -1
  254. package/dist/MCP/mcp.module.d.ts.map +1 -1
  255. package/dist/MCP/mcp.module.js +34 -1
  256. package/dist/MCP/mcp.module.js.map +1 -1
  257. package/dist/Permissions/audit-log-resource.component.js +76 -85
  258. package/dist/Permissions/audit-log-resource.component.js.map +1 -1
  259. package/dist/Permissions/resource-access-resource.component.js +64 -69
  260. package/dist/Permissions/resource-access-resource.component.js.map +1 -1
  261. package/dist/Permissions/user-access-resource.component.js +63 -74
  262. package/dist/Permissions/user-access-resource.component.js.map +1 -1
  263. package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
  264. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  265. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +2 -1
  266. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
  267. package/dist/Scheduling/components/scheduling-activity-resource.component.js +11 -12
  268. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
  269. package/dist/Scheduling/components/scheduling-activity.component.d.ts +9 -1
  270. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
  271. package/dist/Scheduling/components/scheduling-activity.component.js +250 -197
  272. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  273. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +2 -1
  274. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  275. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +11 -12
  276. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  277. package/dist/Scheduling/components/scheduling-jobs.component.d.ts +9 -1
  278. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  279. package/dist/Scheduling/components/scheduling-jobs.component.js +203 -147
  280. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  281. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +2 -1
  282. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
  283. package/dist/Scheduling/components/scheduling-overview-resource.component.js +11 -12
  284. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
  285. package/dist/Scheduling/components/scheduling-overview.component.d.ts +3 -1
  286. package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
  287. package/dist/Scheduling/components/scheduling-overview.component.js +224 -190
  288. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  289. package/dist/Scheduling/scheduling-dashboard.component.d.ts +19 -6
  290. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  291. package/dist/Scheduling/scheduling-dashboard.component.js +259 -103
  292. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  293. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +13 -3
  294. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  295. package/dist/SystemDiagnostics/system-diagnostics.component.js +1009 -1264
  296. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  297. package/dist/Testing/components/testing-analytics-resource.component.d.ts +2 -1
  298. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  299. package/dist/Testing/components/testing-analytics-resource.component.js +7 -14
  300. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  301. package/dist/Testing/components/testing-analytics.component.d.ts +3 -1
  302. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  303. package/dist/Testing/components/testing-analytics.component.js +420 -393
  304. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  305. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -1
  306. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  307. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +16 -19
  308. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  309. package/dist/Testing/components/testing-dashboard-tab.component.d.ts +3 -1
  310. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
  311. package/dist/Testing/components/testing-dashboard-tab.component.js +157 -122
  312. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  313. package/dist/Testing/components/testing-explorer-resource.component.d.ts +2 -1
  314. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
  315. package/dist/Testing/components/testing-explorer-resource.component.js +7 -12
  316. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
  317. package/dist/Testing/components/testing-explorer.component.d.ts +38 -6
  318. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  319. package/dist/Testing/components/testing-explorer.component.js +679 -786
  320. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  321. package/dist/Testing/components/testing-review-resource.component.d.ts +4 -1
  322. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
  323. package/dist/Testing/components/testing-review-resource.component.js +9 -12
  324. package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
  325. package/dist/Testing/components/testing-review.component.d.ts +3 -1
  326. package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
  327. package/dist/Testing/components/testing-review.component.js +310 -274
  328. package/dist/Testing/components/testing-review.component.js.map +1 -1
  329. package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
  330. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  331. package/dist/Testing/components/testing-runs-resource.component.js +16 -19
  332. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  333. package/dist/Testing/components/testing-runs.component.d.ts +3 -1
  334. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
  335. package/dist/Testing/components/testing-runs.component.js +307 -273
  336. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  337. package/dist/Testing/testing-dashboard.component.d.ts +2 -0
  338. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  339. package/dist/Testing/testing-dashboard.component.js +114 -99
  340. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  341. package/dist/VersionHistory/components/diff-resource.component.js +185 -188
  342. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  343. package/dist/VersionHistory/components/graph-resource.component.js +154 -184
  344. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
  345. package/dist/VersionHistory/components/labels-resource.component.d.ts +7 -0
  346. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
  347. package/dist/VersionHistory/components/labels-resource.component.js +350 -354
  348. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  349. package/dist/VersionHistory/components/restore-resource.component.js +163 -169
  350. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  351. package/dist/actions-dashboards.module.d.ts +15 -16
  352. package/dist/actions-dashboards.module.d.ts.map +1 -1
  353. package/dist/actions-dashboards.module.js +34 -11
  354. package/dist/actions-dashboards.module.js.map +1 -1
  355. package/dist/ai-dashboards.module.d.ts +45 -48
  356. package/dist/ai-dashboards.module.d.ts.map +1 -1
  357. package/dist/ai-dashboards.module.js +51 -10
  358. package/dist/ai-dashboards.module.js.map +1 -1
  359. package/dist/archiving-dashboards.module.d.ts +2 -1
  360. package/dist/archiving-dashboards.module.d.ts.map +1 -1
  361. package/dist/archiving-dashboards.module.js +12 -2
  362. package/dist/archiving-dashboards.module.js.map +1 -1
  363. package/dist/communication-dashboards.module.d.ts +9 -6
  364. package/dist/communication-dashboards.module.d.ts.map +1 -1
  365. package/dist/communication-dashboards.module.js +37 -7
  366. package/dist/communication-dashboards.module.js.map +1 -1
  367. package/dist/core-dashboards.module.d.ts +1 -1
  368. package/dist/core-dashboards.module.d.ts.map +1 -1
  369. package/dist/core-dashboards.module.js +46 -1
  370. package/dist/core-dashboards.module.js.map +1 -1
  371. package/dist/credentials-dashboards.module.d.ts +1 -1
  372. package/dist/credentials-dashboards.module.d.ts.map +1 -1
  373. package/dist/credentials-dashboards.module.js +28 -1
  374. package/dist/credentials-dashboards.module.js.map +1 -1
  375. package/dist/lists-dashboards.module.d.ts +10 -9
  376. package/dist/lists-dashboards.module.d.ts.map +1 -1
  377. package/dist/lists-dashboards.module.js +40 -2
  378. package/dist/lists-dashboards.module.js.map +1 -1
  379. package/dist/public-api.d.ts +3 -2
  380. package/dist/public-api.d.ts.map +1 -1
  381. package/dist/public-api.js +4 -3
  382. package/dist/public-api.js.map +1 -1
  383. package/dist/scheduling-dashboards.module.d.ts +1 -1
  384. package/dist/scheduling-dashboards.module.d.ts.map +1 -1
  385. package/dist/scheduling-dashboards.module.js +31 -1
  386. package/dist/scheduling-dashboards.module.js.map +1 -1
  387. package/dist/testing-dashboards.module.d.ts +8 -7
  388. package/dist/testing-dashboards.module.d.ts.map +1 -1
  389. package/dist/testing-dashboards.module.js +42 -0
  390. package/dist/testing-dashboards.module.js.map +1 -1
  391. package/package.json +53 -52
  392. package/dist/AI/components/agents/agent-filter-panel.component.d.ts +0 -56
  393. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +0 -1
  394. package/dist/AI/components/agents/agent-filter-panel.component.js +0 -285
  395. package/dist/AI/components/agents/agent-filter-panel.component.js.map +0 -1
  396. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts +0 -49
  397. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +0 -1
  398. package/dist/AI/components/prompts/prompt-filter-panel.component.js +0 -184
  399. package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +0 -1
  400. package/dist/AI/components/system/system-config-filter-panel.component.d.ts +0 -33
  401. package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +0 -1
  402. package/dist/AI/components/system/system-config-filter-panel.component.js +0 -144
  403. package/dist/AI/components/system/system-config-filter-panel.component.js.map +0 -1
  404. package/dist/Actions/components/explorer/action-toolbar.component.d.ts +0 -63
  405. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +0 -1
  406. package/dist/Actions/components/explorer/action-toolbar.component.js +0 -463
  407. package/dist/Actions/components/explorer/action-toolbar.component.js.map +0 -1
@@ -17,7 +17,8 @@ import * as d3 from 'd3';
17
17
  import * as i0 from "@angular/core";
18
18
  import * as i1 from "@angular/router";
19
19
  import * as i2 from "@angular/forms";
20
- import * as i3 from "@angular/common";
20
+ import * as i3 from "@memberjunction/ng-ui-components";
21
+ import * as i4 from "@angular/common";
21
22
  const _c0 = ["perfChart"];
22
23
  const _forTrack0 = ($index, $item) => $item.className;
23
24
  const _forTrack1 = ($index, $item) => $item.entityName;
@@ -27,187 +28,68 @@ const _forTrack4 = ($index, $item) => $item.label;
27
28
  const _forTrack5 = ($index, $item) => $item.fingerprint;
28
29
  const _forTrack6 = ($index, $item) => $item.key;
29
30
  const _forTrack7 = ($index, $item) => $item.propertyName;
30
- function SystemDiagnosticsComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
31
- i0.ɵɵelementStart(0, "span", 8);
32
- i0.ɵɵelement(1, "i", 36);
33
- i0.ɵɵtext(2, " Every 5s ");
34
- i0.ɵɵelementEnd();
35
- } }
36
- function SystemDiagnosticsComponent_Conditional_18_Conditional_30_Template(rf, ctx) { if (rf & 1) {
37
- i0.ɵɵtext(0, " No redundant loading detected ");
38
- } }
39
- function SystemDiagnosticsComponent_Conditional_18_Conditional_31_Template(rf, ctx) { if (rf & 1) {
40
- i0.ɵɵtext(0);
41
- } if (rf & 2) {
42
- const ctx_r0 = i0.ɵɵnextContext(2);
43
- i0.ɵɵtextInterpolate1(" ", ctx_r0.redundantLoads.length, " entities loaded by multiple engines ");
44
- } }
45
- function SystemDiagnosticsComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
46
- i0.ɵɵelementStart(0, "div", 14)(1, "div", 37)(2, "div", 38);
47
- i0.ɵɵelement(3, "i", 21);
48
- i0.ɵɵelementEnd();
49
- i0.ɵɵelementStart(4, "div", 39)(5, "div", 40);
50
- i0.ɵɵtext(6);
51
- i0.ɵɵelementEnd();
52
- i0.ɵɵelementStart(7, "div", 41);
53
- i0.ɵɵtext(8, "Registered Engines");
54
- i0.ɵɵelementEnd();
55
- i0.ɵɵelementStart(9, "div", 42);
56
- i0.ɵɵtext(10);
57
- i0.ɵɵelementEnd()()();
58
- i0.ɵɵelementStart(11, "div", 37)(12, "div", 43);
59
- i0.ɵɵelement(13, "i", 44);
60
- i0.ɵɵelementEnd();
61
- i0.ɵɵelementStart(14, "div", 39)(15, "div", 40);
62
- i0.ɵɵtext(16);
63
- i0.ɵɵelementEnd();
64
- i0.ɵɵelementStart(17, "div", 41);
65
- i0.ɵɵtext(18, "Engine Memory");
66
- i0.ɵɵelementEnd();
67
- i0.ɵɵelementStart(19, "div", 42);
68
- i0.ɵɵtext(20, "Estimated total");
69
- i0.ɵɵelementEnd()()();
70
- i0.ɵɵelementStart(21, "div", 37)(22, "div", 45);
71
- i0.ɵɵelement(23, "i", 23);
72
- i0.ɵɵelementEnd();
73
- i0.ɵɵelementStart(24, "div", 39)(25, "div", 40);
74
- i0.ɵɵtext(26);
75
- i0.ɵɵelementEnd();
76
- i0.ɵɵelementStart(27, "div", 41);
77
- i0.ɵɵtext(28, "Redundant Loads");
78
- i0.ɵɵelementEnd();
79
- i0.ɵɵelementStart(29, "div", 42);
80
- i0.ɵɵconditionalCreate(30, SystemDiagnosticsComponent_Conditional_18_Conditional_30_Template, 1, 0)(31, SystemDiagnosticsComponent_Conditional_18_Conditional_31_Template, 1, 1);
81
- i0.ɵɵelementEnd()()()();
82
- } if (rf & 2) {
83
- const ctx_r0 = i0.ɵɵnextContext();
84
- i0.ɵɵadvance(6);
85
- i0.ɵɵtextInterpolate((ctx_r0.engineStats == null ? null : ctx_r0.engineStats.totalEngines) || 0);
86
- i0.ɵɵadvance(4);
87
- i0.ɵɵtextInterpolate1("", (ctx_r0.engineStats == null ? null : ctx_r0.engineStats.loadedEngines) || 0, " loaded");
88
- i0.ɵɵadvance(6);
89
- i0.ɵɵtextInterpolate(ctx_r0.formatBytes((ctx_r0.engineStats == null ? null : ctx_r0.engineStats.totalEstimatedMemoryBytes) || 0));
90
- i0.ɵɵadvance(6);
91
- i0.ɵɵclassProp("card-icon--warning", ctx_r0.redundantLoads.length > 0)("card-icon--success", ctx_r0.redundantLoads.length === 0);
92
- i0.ɵɵadvance(4);
93
- i0.ɵɵtextInterpolate(ctx_r0.redundantLoads.length);
94
- i0.ɵɵadvance(4);
95
- i0.ɵɵconditional(ctx_r0.redundantLoads.length === 0 ? 30 : 31);
96
- } }
97
- function SystemDiagnosticsComponent_Conditional_19_Template(rf, ctx) { if (rf & 1) {
98
- i0.ɵɵelementStart(0, "div", 15)(1, "div", 46);
99
- i0.ɵɵelement(2, "i", 21);
100
- i0.ɵɵelementStart(3, "span", 47);
101
- i0.ɵɵtext(4);
102
- i0.ɵɵelementEnd();
103
- i0.ɵɵelementStart(5, "span", 48);
104
- i0.ɵɵtext(6, "Engines");
105
- i0.ɵɵelementEnd()();
106
- i0.ɵɵelement(7, "div", 49);
107
- i0.ɵɵelementStart(8, "div", 50);
108
- i0.ɵɵelement(9, "i", 44);
109
- i0.ɵɵelementStart(10, "span", 47);
110
- i0.ɵɵtext(11);
111
- i0.ɵɵelementEnd();
112
- i0.ɵɵelementStart(12, "span", 48);
113
- i0.ɵɵtext(13, "Memory");
114
- i0.ɵɵelementEnd()();
115
- i0.ɵɵelement(14, "div", 49);
116
- i0.ɵɵelementStart(15, "div", 51);
117
- i0.ɵɵelement(16, "i", 23);
118
- i0.ɵɵelementStart(17, "span", 47);
119
- i0.ɵɵtext(18);
120
- i0.ɵɵelementEnd();
121
- i0.ɵɵelementStart(19, "span", 48);
122
- i0.ɵɵtext(20, "Redundant");
123
- i0.ɵɵelementEnd()()();
124
- } if (rf & 2) {
125
- const ctx_r0 = i0.ɵɵnextContext();
126
- i0.ɵɵadvance(4);
127
- i0.ɵɵtextInterpolate((ctx_r0.engineStats == null ? null : ctx_r0.engineStats.totalEngines) || 0);
128
- i0.ɵɵadvance(7);
129
- i0.ɵɵtextInterpolate(ctx_r0.formatBytes((ctx_r0.engineStats == null ? null : ctx_r0.engineStats.totalEstimatedMemoryBytes) || 0));
130
- i0.ɵɵadvance(4);
131
- i0.ɵɵclassProp("warning", ctx_r0.redundantLoads.length > 0);
132
- i0.ɵɵadvance(3);
133
- i0.ɵɵtextInterpolate(ctx_r0.redundantLoads.length);
134
- } }
135
- function SystemDiagnosticsComponent_Conditional_35_Template(rf, ctx) { if (rf & 1) {
136
- i0.ɵɵelementStart(0, "span", 24);
137
- i0.ɵɵtext(1);
138
- i0.ɵɵelementEnd();
139
- } if (rf & 2) {
140
- const ctx_r0 = i0.ɵɵnextContext();
141
- i0.ɵɵadvance();
142
- i0.ɵɵtextInterpolate(ctx_r0.redundantLoads.length);
143
- } }
144
- function SystemDiagnosticsComponent_Conditional_36_Template(rf, ctx) { if (rf & 1) {
145
- i0.ɵɵelementStart(0, "span", 25);
146
- i0.ɵɵtext(1, "0");
147
- i0.ɵɵelementEnd();
148
- } }
149
- function SystemDiagnosticsComponent_Conditional_50_Conditional_10_Template(rf, ctx) { if (rf & 1) {
150
- i0.ɵɵelementStart(0, "div", 57);
151
- i0.ɵɵelement(1, "i", 59);
31
+ function SystemDiagnosticsComponent_Conditional_15_Conditional_10_Template(rf, ctx) { if (rf & 1) {
32
+ i0.ɵɵelementStart(0, "div", 28);
33
+ i0.ɵɵelement(1, "i", 30);
152
34
  i0.ɵɵelementStart(2, "p");
153
35
  i0.ɵɵtext(3, "No engines registered yet");
154
36
  i0.ɵɵelementEnd();
155
- i0.ɵɵelementStart(4, "span", 60);
37
+ i0.ɵɵelementStart(4, "span", 31);
156
38
  i0.ɵɵtext(5, "Engines register themselves when they are first configured");
157
39
  i0.ɵɵelementEnd()();
158
40
  } }
159
- function SystemDiagnosticsComponent_Conditional_50_Conditional_11_For_2_Conditional_19_Template(rf, ctx) { if (rf & 1) {
160
- i0.ɵɵelementStart(0, "div", 67);
161
- i0.ɵɵelement(1, "i", 33);
162
- i0.ɵɵelementStart(2, "span", 68);
41
+ function SystemDiagnosticsComponent_Conditional_15_Conditional_11_For_2_Conditional_19_Template(rf, ctx) { if (rf & 1) {
42
+ i0.ɵɵelementStart(0, "div", 38);
43
+ i0.ɵɵelement(1, "i", 19);
44
+ i0.ɵɵelementStart(2, "span", 40);
163
45
  i0.ɵɵtext(3, "Loaded:");
164
46
  i0.ɵɵelementEnd();
165
- i0.ɵɵelementStart(4, "span", 69);
47
+ i0.ɵɵelementStart(4, "span", 41);
166
48
  i0.ɵɵtext(5);
167
49
  i0.ɵɵelementEnd()();
168
50
  } if (rf & 2) {
169
51
  const engine_r4 = i0.ɵɵnextContext().$implicit;
170
- const ctx_r0 = i0.ɵɵnextContext(3);
52
+ const ctx_r1 = i0.ɵɵnextContext(3);
171
53
  i0.ɵɵadvance(5);
172
- i0.ɵɵtextInterpolate(ctx_r0.formatTime(engine_r4.lastLoadedAt));
54
+ i0.ɵɵtextInterpolate(ctx_r1.formatTime(engine_r4.lastLoadedAt));
173
55
  } }
174
- function SystemDiagnosticsComponent_Conditional_50_Conditional_11_For_2_Template(rf, ctx) { if (rf & 1) {
56
+ function SystemDiagnosticsComponent_Conditional_15_Conditional_11_For_2_Template(rf, ctx) { if (rf & 1) {
175
57
  const _r3 = i0.ɵɵgetCurrentView();
176
- i0.ɵɵelementStart(0, "div", 62)(1, "div", 63)(2, "div", 64);
58
+ i0.ɵɵelementStart(0, "div", 33)(1, "div", 34)(2, "div", 35);
177
59
  i0.ɵɵtext(3);
178
60
  i0.ɵɵelementEnd();
179
- i0.ɵɵelementStart(4, "div", 65);
61
+ i0.ɵɵelementStart(4, "div", 36);
180
62
  i0.ɵɵtext(5);
181
63
  i0.ɵɵelementEnd()();
182
- i0.ɵɵelementStart(6, "div", 66)(7, "div", 67);
183
- i0.ɵɵelement(8, "i", 44);
184
- i0.ɵɵelementStart(9, "span", 68);
64
+ i0.ɵɵelementStart(6, "div", 37)(7, "div", 38);
65
+ i0.ɵɵelement(8, "i", 39);
66
+ i0.ɵɵelementStart(9, "span", 40);
185
67
  i0.ɵɵtext(10, "Memory:");
186
68
  i0.ɵɵelementEnd();
187
- i0.ɵɵelementStart(11, "span", 69);
69
+ i0.ɵɵelementStart(11, "span", 41);
188
70
  i0.ɵɵtext(12);
189
71
  i0.ɵɵelementEnd()();
190
- i0.ɵɵelementStart(13, "div", 67);
191
- i0.ɵɵelement(14, "i", 70);
192
- i0.ɵɵelementStart(15, "span", 68);
72
+ i0.ɵɵelementStart(13, "div", 38);
73
+ i0.ɵɵelement(14, "i", 42);
74
+ i0.ɵɵelementStart(15, "span", 40);
193
75
  i0.ɵɵtext(16, "Items:");
194
76
  i0.ɵɵelementEnd();
195
- i0.ɵɵelementStart(17, "span", 69);
77
+ i0.ɵɵelementStart(17, "span", 41);
196
78
  i0.ɵɵtext(18);
197
79
  i0.ɵɵelementEnd()();
198
- i0.ɵɵconditionalCreate(19, SystemDiagnosticsComponent_Conditional_50_Conditional_11_For_2_Conditional_19_Template, 6, 1, "div", 67);
80
+ i0.ɵɵconditionalCreate(19, SystemDiagnosticsComponent_Conditional_15_Conditional_11_For_2_Conditional_19_Template, 6, 1, "div", 38);
199
81
  i0.ɵɵelementEnd();
200
- i0.ɵɵelementStart(20, "div", 71)(21, "button", 72);
201
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_50_Conditional_11_For_2_Template_button_click_21_listener($event) { const engine_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.refreshSingleEngine(engine_r4, $event)); });
202
- i0.ɵɵelement(22, "i", 55);
82
+ i0.ɵɵelementStart(20, "div", 43)(21, "button", 44);
83
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_15_Conditional_11_For_2_Template_button_click_21_listener($event) { const engine_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.refreshSingleEngine(engine_r4, $event)); });
84
+ i0.ɵɵelement(22, "i", 26);
203
85
  i0.ɵɵelementEnd();
204
- i0.ɵɵelementStart(23, "button", 73);
205
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_50_Conditional_11_For_2_Template_button_click_23_listener() { const engine_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openEngineDetailPanel(engine_r4)); });
206
- i0.ɵɵelement(24, "i", 74);
86
+ i0.ɵɵelementStart(23, "button", 45);
87
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_15_Conditional_11_For_2_Template_button_click_23_listener() { const engine_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openEngineDetailPanel(engine_r4)); });
88
+ i0.ɵɵelement(24, "i", 46);
207
89
  i0.ɵɵelementEnd()()();
208
90
  } if (rf & 2) {
209
91
  const engine_r4 = ctx.$implicit;
210
- const ctx_r0 = i0.ɵɵnextContext(3);
92
+ const ctx_r1 = i0.ɵɵnextContext(3);
211
93
  i0.ɵɵclassProp("loaded", engine_r4.isLoaded);
212
94
  i0.ɵɵadvance(2);
213
95
  i0.ɵɵproperty("title", engine_r4.className);
@@ -224,56 +106,56 @@ function SystemDiagnosticsComponent_Conditional_50_Conditional_11_For_2_Template
224
106
  i0.ɵɵadvance();
225
107
  i0.ɵɵconditional(engine_r4.lastLoadedAt ? 19 : -1);
226
108
  i0.ɵɵadvance(2);
227
- i0.ɵɵproperty("disabled", !engine_r4.isLoaded || ctx_r0.isRefreshingSingleEngine === engine_r4.className);
109
+ i0.ɵɵproperty("disabled", !engine_r4.isLoaded || ctx_r1.isRefreshingSingleEngine === engine_r4.className);
228
110
  i0.ɵɵadvance();
229
- i0.ɵɵclassProp("spinning", ctx_r0.isRefreshingSingleEngine === engine_r4.className);
111
+ i0.ɵɵclassProp("spinning", ctx_r1.isRefreshingSingleEngine === engine_r4.className);
230
112
  i0.ɵɵadvance();
231
113
  i0.ɵɵproperty("disabled", !engine_r4.isLoaded);
232
114
  } }
233
- function SystemDiagnosticsComponent_Conditional_50_Conditional_11_Template(rf, ctx) { if (rf & 1) {
234
- i0.ɵɵelementStart(0, "div", 58);
235
- i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_50_Conditional_11_For_2_Template, 25, 16, "div", 61, _forTrack0);
115
+ function SystemDiagnosticsComponent_Conditional_15_Conditional_11_Template(rf, ctx) { if (rf & 1) {
116
+ i0.ɵɵelementStart(0, "div", 29);
117
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_15_Conditional_11_For_2_Template, 25, 16, "div", 32, _forTrack0);
236
118
  i0.ɵɵelementEnd();
237
119
  } if (rf & 2) {
238
- const ctx_r0 = i0.ɵɵnextContext(2);
120
+ const ctx_r1 = i0.ɵɵnextContext(2);
239
121
  i0.ɵɵadvance();
240
- i0.ɵɵrepeater(ctx_r0.engines);
122
+ i0.ɵɵrepeater(ctx_r1.engines);
241
123
  } }
242
- function SystemDiagnosticsComponent_Conditional_50_Template(rf, ctx) { if (rf & 1) {
243
- const _r2 = i0.ɵɵgetCurrentView();
244
- i0.ɵɵelementStart(0, "div", 29)(1, "div", 52)(2, "h3");
245
- i0.ɵɵelement(3, "i", 21);
124
+ function SystemDiagnosticsComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
125
+ const _r1 = i0.ɵɵgetCurrentView();
126
+ i0.ɵɵelementStart(0, "div", 15)(1, "div", 22)(2, "h3");
127
+ i0.ɵɵelement(3, "i", 23);
246
128
  i0.ɵɵtext(4, " Registered Engines ");
247
129
  i0.ɵɵelementEnd();
248
- i0.ɵɵelementStart(5, "div", 53)(6, "button", 54);
249
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_50_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.refreshAllEngines()); });
250
- i0.ɵɵelement(7, "i", 55);
130
+ i0.ɵɵelementStart(5, "div", 24)(6, "button", 25);
131
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_15_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.refreshAllEngines()); });
132
+ i0.ɵɵelement(7, "i", 26);
251
133
  i0.ɵɵtext(8, " Refresh All Engines ");
252
134
  i0.ɵɵelementEnd()()();
253
- i0.ɵɵelementStart(9, "div", 56);
254
- i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_50_Conditional_10_Template, 6, 0, "div", 57)(11, SystemDiagnosticsComponent_Conditional_50_Conditional_11_Template, 3, 0, "div", 58);
135
+ i0.ɵɵelementStart(9, "div", 27);
136
+ i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_15_Conditional_10_Template, 6, 0, "div", 28)(11, SystemDiagnosticsComponent_Conditional_15_Conditional_11_Template, 3, 0, "div", 29);
255
137
  i0.ɵɵelementEnd()();
256
138
  } if (rf & 2) {
257
- const ctx_r0 = i0.ɵɵnextContext();
139
+ const ctx_r1 = i0.ɵɵnextContext();
258
140
  i0.ɵɵadvance(6);
259
- i0.ɵɵproperty("disabled", ctx_r0.isRefreshingEngines);
141
+ i0.ɵɵproperty("disabled", ctx_r1.isRefreshingEngines);
260
142
  i0.ɵɵadvance();
261
- i0.ɵɵclassProp("spinning", ctx_r0.isRefreshingEngines);
143
+ i0.ɵɵclassProp("spinning", ctx_r1.isRefreshingEngines);
262
144
  i0.ɵɵadvance(3);
263
- i0.ɵɵconditional(ctx_r0.engines.length === 0 ? 10 : 11);
145
+ i0.ɵɵconditional(ctx_r1.engines.length === 0 ? 10 : 11);
264
146
  } }
265
- function SystemDiagnosticsComponent_Conditional_51_Conditional_12_Template(rf, ctx) { if (rf & 1) {
266
- i0.ɵɵelementStart(0, "div", 77);
267
- i0.ɵɵelement(1, "i", 78);
147
+ function SystemDiagnosticsComponent_Conditional_16_Conditional_12_Template(rf, ctx) { if (rf & 1) {
148
+ i0.ɵɵelementStart(0, "div", 50);
149
+ i0.ɵɵelement(1, "i", 51);
268
150
  i0.ɵɵelementStart(2, "p");
269
151
  i0.ɵɵtext(3, "No redundant entity loading detected");
270
152
  i0.ɵɵelementEnd();
271
- i0.ɵɵelementStart(4, "span", 60);
153
+ i0.ɵɵelementStart(4, "span", 31);
272
154
  i0.ɵɵtext(5, "Each entity is being loaded by only one engine");
273
155
  i0.ɵɵelementEnd()();
274
156
  } }
275
- function SystemDiagnosticsComponent_Conditional_51_Conditional_13_For_12_For_6_Template(rf, ctx) { if (rf & 1) {
276
- i0.ɵɵelementStart(0, "span", 87);
157
+ function SystemDiagnosticsComponent_Conditional_16_Conditional_13_For_12_For_6_Template(rf, ctx) { if (rf & 1) {
158
+ i0.ɵɵelementStart(0, "span", 60);
277
159
  i0.ɵɵtext(1);
278
160
  i0.ɵɵelementEnd();
279
161
  } if (rf & 2) {
@@ -281,14 +163,14 @@ function SystemDiagnosticsComponent_Conditional_51_Conditional_13_For_12_For_6_T
281
163
  i0.ɵɵadvance();
282
164
  i0.ɵɵtextInterpolate(engine_r5);
283
165
  } }
284
- function SystemDiagnosticsComponent_Conditional_51_Conditional_13_For_12_Template(rf, ctx) { if (rf & 1) {
285
- i0.ɵɵelementStart(0, "tr")(1, "td", 84);
166
+ function SystemDiagnosticsComponent_Conditional_16_Conditional_13_For_12_Template(rf, ctx) { if (rf & 1) {
167
+ i0.ɵɵelementStart(0, "tr")(1, "td", 57);
286
168
  i0.ɵɵtext(2);
287
169
  i0.ɵɵelementEnd();
288
- i0.ɵɵelementStart(3, "td", 85)(4, "div", 86);
289
- i0.ɵɵrepeaterCreate(5, SystemDiagnosticsComponent_Conditional_51_Conditional_13_For_12_For_6_Template, 2, 1, "span", 87, i0.ɵɵrepeaterTrackByIdentity);
170
+ i0.ɵɵelementStart(3, "td", 58)(4, "div", 59);
171
+ i0.ɵɵrepeaterCreate(5, SystemDiagnosticsComponent_Conditional_16_Conditional_13_For_12_For_6_Template, 2, 1, "span", 60, i0.ɵɵrepeaterTrackByIdentity);
290
172
  i0.ɵɵelementEnd()();
291
- i0.ɵɵelementStart(7, "td", 88)(8, "span", 89);
173
+ i0.ɵɵelementStart(7, "td", 61)(8, "span", 62);
292
174
  i0.ɵɵtext(9);
293
175
  i0.ɵɵelementEnd()()();
294
176
  } if (rf & 2) {
@@ -300,252 +182,252 @@ function SystemDiagnosticsComponent_Conditional_51_Conditional_13_For_12_Templat
300
182
  i0.ɵɵadvance(4);
301
183
  i0.ɵɵtextInterpolate(load_r6.engines.length);
302
184
  } }
303
- function SystemDiagnosticsComponent_Conditional_51_Conditional_13_Template(rf, ctx) { if (rf & 1) {
304
- i0.ɵɵelementStart(0, "div", 79)(1, "table", 80)(2, "thead")(3, "tr")(4, "th");
185
+ function SystemDiagnosticsComponent_Conditional_16_Conditional_13_Template(rf, ctx) { if (rf & 1) {
186
+ i0.ɵɵelementStart(0, "div", 52)(1, "table", 53)(2, "thead")(3, "tr")(4, "th");
305
187
  i0.ɵɵtext(5, "Entity Name");
306
188
  i0.ɵɵelementEnd();
307
189
  i0.ɵɵelementStart(6, "th");
308
190
  i0.ɵɵtext(7, "Loaded By Engines");
309
191
  i0.ɵɵelementEnd();
310
- i0.ɵɵelementStart(8, "th", 81);
192
+ i0.ɵɵelementStart(8, "th", 54);
311
193
  i0.ɵɵtext(9, "Engine Count");
312
194
  i0.ɵɵelementEnd()()();
313
195
  i0.ɵɵelementStart(10, "tbody");
314
- i0.ɵɵrepeaterCreate(11, SystemDiagnosticsComponent_Conditional_51_Conditional_13_For_12_Template, 10, 2, "tr", null, _forTrack1);
196
+ i0.ɵɵrepeaterCreate(11, SystemDiagnosticsComponent_Conditional_16_Conditional_13_For_12_Template, 10, 2, "tr", null, _forTrack1);
315
197
  i0.ɵɵelementEnd()()();
316
- i0.ɵɵelementStart(13, "div", 82);
317
- i0.ɵɵelement(14, "i", 83);
198
+ i0.ɵɵelementStart(13, "div", 55);
199
+ i0.ɵɵelement(14, "i", 56);
318
200
  i0.ɵɵelementStart(15, "div")(16, "strong");
319
201
  i0.ɵɵtext(17, "Recommendation:");
320
202
  i0.ɵɵelementEnd();
321
203
  i0.ɵɵtext(18, " Consider consolidating data loading by having dependent engines access data from a parent engine, or restructuring the engine hierarchy to avoid duplicate data fetches. ");
322
204
  i0.ɵɵelementEnd()();
323
205
  } if (rf & 2) {
324
- const ctx_r0 = i0.ɵɵnextContext(2);
206
+ const ctx_r1 = i0.ɵɵnextContext(2);
325
207
  i0.ɵɵadvance(11);
326
- i0.ɵɵrepeater(ctx_r0.redundantLoads);
208
+ i0.ɵɵrepeater(ctx_r1.redundantLoads);
327
209
  } }
328
- function SystemDiagnosticsComponent_Conditional_51_Template(rf, ctx) { if (rf & 1) {
329
- i0.ɵɵelementStart(0, "div", 29)(1, "div", 52)(2, "h3");
330
- i0.ɵɵelement(3, "i", 23);
210
+ function SystemDiagnosticsComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
211
+ i0.ɵɵelementStart(0, "div", 15)(1, "div", 22)(2, "h3");
212
+ i0.ɵɵelement(3, "i", 47);
331
213
  i0.ɵɵtext(4, " Redundant Entity Loading ");
332
214
  i0.ɵɵelementEnd()();
333
- i0.ɵɵelementStart(5, "div", 56)(6, "div", 75);
334
- i0.ɵɵelement(7, "i", 76);
215
+ i0.ɵɵelementStart(5, "div", 27)(6, "div", 48);
216
+ i0.ɵɵelement(7, "i", 49);
335
217
  i0.ɵɵelementStart(8, "div")(9, "strong");
336
218
  i0.ɵɵtext(10, "What is this?");
337
219
  i0.ɵɵelementEnd();
338
220
  i0.ɵɵtext(11, " This section shows entities that are loaded by multiple engines. Redundant loading indicates potential optimization opportunities where engines could share data or consolidate their loading logic. ");
339
221
  i0.ɵɵelementEnd()();
340
- i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_51_Conditional_12_Template, 6, 0, "div", 77)(13, SystemDiagnosticsComponent_Conditional_51_Conditional_13_Template, 19, 0);
222
+ i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_16_Conditional_12_Template, 6, 0, "div", 50)(13, SystemDiagnosticsComponent_Conditional_16_Conditional_13_Template, 19, 0);
341
223
  i0.ɵɵelementEnd()();
342
224
  } if (rf & 2) {
343
- const ctx_r0 = i0.ɵɵnextContext();
225
+ const ctx_r1 = i0.ɵɵnextContext();
344
226
  i0.ɵɵadvance(12);
345
- i0.ɵɵconditional(ctx_r0.redundantLoads.length === 0 ? 12 : 13);
227
+ i0.ɵɵconditional(ctx_r1.redundantLoads.length === 0 ? 12 : 13);
346
228
  } }
347
- function SystemDiagnosticsComponent_Conditional_52_Conditional_14_Template(rf, ctx) { if (rf & 1) {
229
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_14_Template(rf, ctx) { if (rf & 1) {
348
230
  const _r8 = i0.ɵɵgetCurrentView();
349
- i0.ɵɵelementStart(0, "button", 109);
350
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_14_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.toggleTelemetry()); });
351
- i0.ɵɵelement(1, "i", 13);
231
+ i0.ɵɵelementStart(0, "button", 83);
232
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_14_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleTelemetry()); });
233
+ i0.ɵɵelement(1, "i", 84);
352
234
  i0.ɵɵtext(2);
353
235
  i0.ɵɵelementEnd();
354
- i0.ɵɵelementStart(3, "button", 54);
355
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_14_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.clearTelemetry()); });
356
- i0.ɵɵelement(4, "i", 110);
236
+ i0.ɵɵelementStart(3, "button", 25);
237
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_14_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.clearTelemetry()); });
238
+ i0.ɵɵelement(4, "i", 85);
357
239
  i0.ɵɵtext(5, " Clear ");
358
240
  i0.ɵɵelementEnd();
359
241
  } if (rf & 2) {
360
- const ctx_r0 = i0.ɵɵnextContext(2);
361
- i0.ɵɵclassProp("active", ctx_r0.telemetryEnabled);
242
+ const ctx_r1 = i0.ɵɵnextContext(2);
243
+ i0.ɵɵclassProp("active", ctx_r1.telemetryEnabled);
362
244
  i0.ɵɵadvance();
363
- i0.ɵɵclassProp("fa-toggle-on", ctx_r0.telemetryEnabled)("fa-toggle-off", !ctx_r0.telemetryEnabled);
245
+ i0.ɵɵclassProp("fa-toggle-on", ctx_r1.telemetryEnabled)("fa-toggle-off", !ctx_r1.telemetryEnabled);
364
246
  i0.ɵɵadvance();
365
- i0.ɵɵtextInterpolate1(" ", ctx_r0.telemetryEnabled ? "Enabled" : "Disabled", " ");
247
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.telemetryEnabled ? "Enabled" : "Disabled", " ");
366
248
  i0.ɵɵadvance();
367
- i0.ɵɵproperty("disabled", !ctx_r0.telemetryEnabled);
249
+ i0.ɵɵproperty("disabled", !ctx_r1.telemetryEnabled);
368
250
  } }
369
- function SystemDiagnosticsComponent_Conditional_52_Conditional_15_Template(rf, ctx) { if (rf & 1) {
370
- i0.ɵɵelementStart(0, "span", 111);
371
- i0.ɵɵelement(1, "i", 13);
251
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_15_Template(rf, ctx) { if (rf & 1) {
252
+ i0.ɵɵelementStart(0, "span", 86);
253
+ i0.ɵɵelement(1, "i", 84);
372
254
  i0.ɵɵtext(2);
373
- i0.ɵɵelementStart(3, "span", 112);
255
+ i0.ɵɵelementStart(3, "span", 87);
374
256
  i0.ɵɵtext(4, "(config)");
375
257
  i0.ɵɵelementEnd()();
376
258
  } if (rf & 2) {
377
- const ctx_r0 = i0.ɵɵnextContext(2);
378
- i0.ɵɵclassProp("enabled", ctx_r0.serverTelemetryEnabled)("disabled", !ctx_r0.serverTelemetryEnabled);
259
+ const ctx_r1 = i0.ɵɵnextContext(2);
260
+ i0.ɵɵclassProp("enabled", ctx_r1.serverTelemetryEnabled)("disabled", !ctx_r1.serverTelemetryEnabled);
379
261
  i0.ɵɵadvance();
380
- i0.ɵɵclassProp("fa-circle-check", ctx_r0.serverTelemetryEnabled)("fa-circle-xmark", !ctx_r0.serverTelemetryEnabled);
262
+ i0.ɵɵclassProp("fa-circle-check", ctx_r1.serverTelemetryEnabled)("fa-circle-xmark", !ctx_r1.serverTelemetryEnabled);
381
263
  i0.ɵɵadvance();
382
- i0.ɵɵtextInterpolate1(" ", ctx_r0.serverTelemetryEnabled ? "Enabled" : "Disabled", " ");
264
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.serverTelemetryEnabled ? "Enabled" : "Disabled", " ");
383
265
  } }
384
- function SystemDiagnosticsComponent_Conditional_52_Conditional_16_Template(rf, ctx) { if (rf & 1) {
385
- i0.ɵɵelementStart(0, "span", 96);
386
- i0.ɵɵelement(1, "i", 113);
266
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_16_Template(rf, ctx) { if (rf & 1) {
267
+ i0.ɵɵelementStart(0, "span", 70);
268
+ i0.ɵɵelement(1, "i", 88);
387
269
  i0.ɵɵelementEnd();
388
270
  } }
389
- function SystemDiagnosticsComponent_Conditional_52_Conditional_17_Template(rf, ctx) { if (rf & 1) {
271
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_17_Template(rf, ctx) { if (rf & 1) {
390
272
  const _r9 = i0.ɵɵgetCurrentView();
391
- i0.ɵɵelementStart(0, "div", 97);
392
- i0.ɵɵelement(1, "i", 114);
273
+ i0.ɵɵelementStart(0, "div", 71);
274
+ i0.ɵɵelement(1, "i", 89);
393
275
  i0.ɵɵtext(2);
394
- i0.ɵɵelementStart(3, "button", 115);
395
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_17_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r9); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.serverTelemetryError = null); });
396
- i0.ɵɵelement(4, "i", 116);
276
+ i0.ɵɵelementStart(3, "button", 90);
277
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_17_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.serverTelemetryError = null); });
278
+ i0.ɵɵelement(4, "i", 91);
397
279
  i0.ɵɵelementEnd()();
398
280
  } if (rf & 2) {
399
- const ctx_r0 = i0.ɵɵnextContext(2);
281
+ const ctx_r1 = i0.ɵɵnextContext(2);
400
282
  i0.ɵɵadvance(2);
401
- i0.ɵɵtextInterpolate1(" ", ctx_r0.serverTelemetryError, " ");
283
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.serverTelemetryError, " ");
402
284
  } }
403
- function SystemDiagnosticsComponent_Conditional_52_Conditional_27_Template(rf, ctx) { if (rf & 1) {
404
- i0.ɵɵelementStart(0, "span", 102);
285
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_27_Template(rf, ctx) { if (rf & 1) {
286
+ i0.ɵɵelementStart(0, "span", 76);
405
287
  i0.ɵɵtext(1);
406
288
  i0.ɵɵelementEnd();
407
289
  } if (rf & 2) {
408
- const ctx_r0 = i0.ɵɵnextContext(2);
290
+ const ctx_r1 = i0.ɵɵnextContext(2);
409
291
  i0.ɵɵadvance();
410
- i0.ɵɵtextInterpolate(ctx_r0.slowQueries.length);
292
+ i0.ɵɵtextInterpolate(ctx_r1.slowQueries.length);
411
293
  } }
412
- function SystemDiagnosticsComponent_Conditional_52_Conditional_44_Template(rf, ctx) { if (rf & 1) {
413
- i0.ɵɵelementStart(0, "span", 106);
294
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_44_Template(rf, ctx) { if (rf & 1) {
295
+ i0.ɵɵelementStart(0, "span", 80);
414
296
  i0.ɵɵtext(1);
415
297
  i0.ɵɵelementEnd();
416
298
  } if (rf & 2) {
417
- const ctx_r0 = i0.ɵɵnextContext(2);
299
+ const ctx_r1 = i0.ɵɵnextContext(2);
418
300
  i0.ɵɵadvance();
419
- i0.ɵɵtextInterpolate(ctx_r0.telemetryInsights.length);
301
+ i0.ɵɵtextInterpolate(ctx_r1.telemetryInsights.length);
420
302
  } }
421
- function SystemDiagnosticsComponent_Conditional_52_Conditional_46_Template(rf, ctx) { if (rf & 1) {
422
- i0.ɵɵelementStart(0, "div", 107);
423
- i0.ɵɵelement(1, "i", 114);
303
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_46_Template(rf, ctx) { if (rf & 1) {
304
+ i0.ɵɵelementStart(0, "div", 81);
305
+ i0.ɵɵelement(1, "i", 89);
424
306
  i0.ɵɵelementStart(2, "div")(3, "strong");
425
307
  i0.ɵɵtext(4, "Telemetry is disabled.");
426
308
  i0.ɵɵelementEnd();
427
309
  i0.ɵɵtext(5, " Enable telemetry to track RunView, RunQuery, and Engine loading performance. ");
428
310
  i0.ɵɵelementEnd()();
429
311
  } }
430
- function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_44_Template(rf, ctx) { if (rf & 1) {
312
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_44_Template(rf, ctx) { if (rf & 1) {
431
313
  i0.ɵɵtext(0);
432
314
  } if (rf & 2) {
433
- const ctx_r0 = i0.ɵɵnextContext(3);
434
- i0.ɵɵtextInterpolate2(" Viewing ", ctx_r0.formatRelativeTime(ctx_r0.chartTimeRangeStart), " - ", ctx_r0.formatRelativeTime(ctx_r0.chartTimeRangeEnd), ". Click Reset to show all. ");
315
+ const ctx_r1 = i0.ɵɵnextContext(3);
316
+ i0.ɵɵtextInterpolate2(" Viewing ", ctx_r1.formatRelativeTime(ctx_r1.chartTimeRangeStart), " - ", ctx_r1.formatRelativeTime(ctx_r1.chartTimeRangeEnd), ". Click Reset to show all. ");
435
317
  } }
436
- function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_45_Template(rf, ctx) { if (rf & 1) {
318
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_45_Template(rf, ctx) { if (rf & 1) {
437
319
  i0.ɵɵtext(0, " Drag to select a time range. Gaps >5s compressed. ");
438
320
  } }
439
- function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_46_Template(rf, ctx) { if (rf & 1) {
321
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_46_Template(rf, ctx) { if (rf & 1) {
440
322
  i0.ɵɵtext(0, " Drag to select a time range. Hover over points for details. ");
441
323
  } }
442
- function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_47_Conditional_2_Template(rf, ctx) { if (rf & 1) {
324
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_47_Conditional_2_Template(rf, ctx) { if (rf & 1) {
443
325
  i0.ɵɵtext(0);
444
326
  i0.ɵɵpipe(1, "number");
445
327
  } if (rf & 2) {
446
- const ctx_r0 = i0.ɵɵnextContext(4);
447
- i0.ɵɵtextInterpolate1(" \u2022 ", i0.ɵɵpipeBind2(1, 1, ctx_r0.chartZoomLevel * 100, "1.0-0"), "% zoom ");
328
+ const ctx_r1 = i0.ɵɵnextContext(4);
329
+ i0.ɵɵtextInterpolate1(" \u2022 ", i0.ɵɵpipeBind2(1, 1, ctx_r1.chartZoomLevel * 100, "1.0-0"), "% zoom ");
448
330
  } }
449
- function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_47_Template(rf, ctx) { if (rf & 1) {
450
- i0.ɵɵelementStart(0, "span", 146);
331
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_47_Template(rf, ctx) { if (rf & 1) {
332
+ i0.ɵɵelementStart(0, "span", 121);
451
333
  i0.ɵɵtext(1);
452
- i0.ɵɵconditionalCreate(2, SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_47_Conditional_2_Template, 2, 4);
334
+ i0.ɵɵconditionalCreate(2, SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_47_Conditional_2_Template, 2, 4);
453
335
  i0.ɵɵelementEnd();
454
336
  } if (rf & 2) {
455
- const ctx_r0 = i0.ɵɵnextContext(3);
337
+ const ctx_r1 = i0.ɵɵnextContext(3);
456
338
  i0.ɵɵadvance();
457
- i0.ɵɵtextInterpolate1(" ", ctx_r0.telemetrySummary.totalEvents, " events ");
339
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.telemetrySummary.totalEvents, " events ");
458
340
  i0.ɵɵadvance();
459
- i0.ɵɵconditional(ctx_r0.chartZoomLevel !== 1 ? 2 : -1);
341
+ i0.ɵɵconditional(ctx_r1.chartZoomLevel !== 1 ? 2 : -1);
460
342
  } }
461
- function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template(rf, ctx) { if (rf & 1) {
343
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template(rf, ctx) { if (rf & 1) {
462
344
  const _r10 = i0.ɵɵgetCurrentView();
463
- i0.ɵɵelementStart(0, "div", 108)(1, "div", 117)(2, "div", 118)(3, "span", 119);
464
- i0.ɵɵelement(4, "span", 120);
345
+ i0.ɵɵelementStart(0, "div", 82)(1, "div", 92)(2, "div", 93)(3, "span", 94);
346
+ i0.ɵɵelement(4, "span", 95);
465
347
  i0.ɵɵtext(5, " RunView");
466
348
  i0.ɵɵelementEnd();
467
- i0.ɵɵelementStart(6, "span", 121);
468
- i0.ɵɵelement(7, "span", 120);
349
+ i0.ɵɵelementStart(6, "span", 96);
350
+ i0.ɵɵelement(7, "span", 95);
469
351
  i0.ɵɵtext(8, " RunQuery");
470
352
  i0.ɵɵelementEnd();
471
- i0.ɵɵelementStart(9, "span", 122);
472
- i0.ɵɵelement(10, "span", 120);
353
+ i0.ɵɵelementStart(9, "span", 97);
354
+ i0.ɵɵelement(10, "span", 95);
473
355
  i0.ɵɵtext(11, " Engine");
474
356
  i0.ɵɵelementEnd();
475
- i0.ɵɵelementStart(12, "span", 123);
476
- i0.ɵɵelement(13, "span", 120);
357
+ i0.ɵɵelementStart(12, "span", 98);
358
+ i0.ɵɵelement(13, "span", 95);
477
359
  i0.ɵɵtext(14, " AI");
478
360
  i0.ɵɵelementEnd()();
479
- i0.ɵɵelementStart(15, "div", 124)(16, "div", 125)(17, "button", 126);
480
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setChartInteractionMode("pointer")); });
481
- i0.ɵɵelement(18, "i", 127);
361
+ i0.ɵɵelementStart(15, "div", 99)(16, "div", 100)(17, "button", 101);
362
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setChartInteractionMode("pointer")); });
363
+ i0.ɵɵelement(18, "i", 102);
482
364
  i0.ɵɵelementEnd();
483
- i0.ɵɵelementStart(19, "button", 128);
484
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setChartInteractionMode("select")); });
485
- i0.ɵɵelement(20, "i", 129);
365
+ i0.ɵɵelementStart(19, "button", 103);
366
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setChartInteractionMode("select")); });
367
+ i0.ɵɵelement(20, "i", 104);
486
368
  i0.ɵɵelementEnd();
487
- i0.ɵɵelementStart(21, "button", 130);
488
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setChartInteractionMode("pan")); });
489
- i0.ɵɵelement(22, "i", 131);
369
+ i0.ɵɵelementStart(21, "button", 105);
370
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setChartInteractionMode("pan")); });
371
+ i0.ɵɵelement(22, "i", 106);
490
372
  i0.ɵɵelementEnd()();
491
- i0.ɵɵelement(23, "span", 132);
492
- i0.ɵɵelementStart(24, "button", 133);
493
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template_button_click_24_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.zoomPerfChart("in")); });
494
- i0.ɵɵelement(25, "i", 134);
373
+ i0.ɵɵelement(23, "span", 107);
374
+ i0.ɵɵelementStart(24, "button", 108);
375
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template_button_click_24_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.zoomPerfChart("in")); });
376
+ i0.ɵɵelement(25, "i", 109);
495
377
  i0.ɵɵelementEnd();
496
- i0.ɵɵelementStart(26, "button", 135);
497
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template_button_click_26_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.zoomPerfChart("out")); });
498
- i0.ɵɵelement(27, "i", 136);
378
+ i0.ɵɵelementStart(26, "button", 110);
379
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template_button_click_26_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.zoomPerfChart("out")); });
380
+ i0.ɵɵelement(27, "i", 111);
499
381
  i0.ɵɵelementEnd();
500
- i0.ɵɵelementStart(28, "button", 137);
501
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.resetPerfChartZoom()); });
502
- i0.ɵɵelement(29, "i", 138);
382
+ i0.ɵɵelementStart(28, "button", 112);
383
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.resetPerfChartZoom()); });
384
+ i0.ɵɵelement(29, "i", 113);
503
385
  i0.ɵɵelementEnd();
504
- i0.ɵɵelement(30, "span", 132);
505
- i0.ɵɵelementStart(31, "label", 139)(32, "input", 7);
506
- i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template_input_ngModelChange_32_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.chartGapCompression, $event) || (ctx_r0.chartGapCompression = $event); return i0.ɵɵresetView($event); });
507
- i0.ɵɵlistener("change", function SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template_input_change_32_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onGapCompressionChange()); });
386
+ i0.ɵɵelement(30, "span", 107);
387
+ i0.ɵɵelementStart(31, "label", 114)(32, "input", 10);
388
+ i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template_input_ngModelChange_32_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.chartGapCompression, $event) || (ctx_r1.chartGapCompression = $event); return i0.ɵɵresetView($event); });
389
+ i0.ɵɵlistener("change", function SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template_input_change_32_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onGapCompressionChange()); });
508
390
  i0.ɵɵelementEnd();
509
391
  i0.ɵɵelementStart(33, "span");
510
392
  i0.ɵɵtext(34, "Compress Gaps");
511
393
  i0.ɵɵelementEnd()()()();
512
- i0.ɵɵelementStart(35, "div", 140)(36, "div", 141)(37, "span", 142);
394
+ i0.ɵɵelementStart(35, "div", 115)(36, "div", 116)(37, "span", 117);
513
395
  i0.ɵɵtext(38, "Duration (ms)");
514
396
  i0.ɵɵelementEnd()();
515
- i0.ɵɵelement(39, "div", 143, 0);
397
+ i0.ɵɵelement(39, "div", 118, 0);
516
398
  i0.ɵɵelementEnd();
517
- i0.ɵɵelementStart(41, "div", 144)(42, "span", 145);
518
- i0.ɵɵelement(43, "i", 76);
519
- i0.ɵɵconditionalCreate(44, SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_44_Template, 1, 2)(45, SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_45_Template, 1, 0)(46, SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_46_Template, 1, 0);
399
+ i0.ɵɵelementStart(41, "div", 119)(42, "span", 120);
400
+ i0.ɵɵelement(43, "i", 49);
401
+ i0.ɵɵconditionalCreate(44, SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_44_Template, 1, 2)(45, SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_45_Template, 1, 0)(46, SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_46_Template, 1, 0);
520
402
  i0.ɵɵelementEnd();
521
- i0.ɵɵconditionalCreate(47, SystemDiagnosticsComponent_Conditional_52_Conditional_47_Conditional_47_Template, 3, 2, "span", 146);
403
+ i0.ɵɵconditionalCreate(47, SystemDiagnosticsComponent_Conditional_17_Conditional_47_Conditional_47_Template, 3, 2, "span", 121);
522
404
  i0.ɵɵelementEnd()();
523
405
  } if (rf & 2) {
524
- const ctx_r0 = i0.ɵɵnextContext(2);
406
+ const ctx_r1 = i0.ɵɵnextContext(2);
525
407
  i0.ɵɵadvance(17);
526
- i0.ɵɵclassProp("active", ctx_r0.chartInteractionMode === "pointer");
408
+ i0.ɵɵclassProp("active", ctx_r1.chartInteractionMode === "pointer");
527
409
  i0.ɵɵadvance(2);
528
- i0.ɵɵclassProp("active", ctx_r0.chartInteractionMode === "select");
410
+ i0.ɵɵclassProp("active", ctx_r1.chartInteractionMode === "select");
529
411
  i0.ɵɵadvance(2);
530
- i0.ɵɵclassProp("active", ctx_r0.chartInteractionMode === "pan");
412
+ i0.ɵɵclassProp("active", ctx_r1.chartInteractionMode === "pan");
531
413
  i0.ɵɵadvance(11);
532
- i0.ɵɵtwoWayProperty("ngModel", ctx_r0.chartGapCompression);
414
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.chartGapCompression);
533
415
  i0.ɵɵadvance(12);
534
- i0.ɵɵconditional(ctx_r0.chartTimeRangeStart !== null && ctx_r0.chartTimeRangeEnd !== null ? 44 : ctx_r0.chartGapCompression ? 45 : 46);
416
+ i0.ɵɵconditional(ctx_r1.chartTimeRangeStart !== null && ctx_r1.chartTimeRangeEnd !== null ? 44 : ctx_r1.chartGapCompression ? 45 : 46);
535
417
  i0.ɵɵadvance(3);
536
- i0.ɵɵconditional(ctx_r0.telemetrySummary ? 47 : -1);
418
+ i0.ɵɵconditional(ctx_r1.telemetrySummary ? 47 : -1);
537
419
  } }
538
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_21_For_5_Template(rf, ctx) { if (rf & 1) {
420
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_21_For_5_Template(rf, ctx) { if (rf & 1) {
539
421
  const _r11 = i0.ɵɵgetCurrentView();
540
- i0.ɵɵelementStart(0, "div", 156);
541
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_21_For_5_Template_div_click_0_listener() { const cat_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.jumpToPatternsByCategory(cat_r12.name)); });
542
- i0.ɵɵelementStart(1, "span", 157);
422
+ i0.ɵɵelementStart(0, "div", 131);
423
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_21_For_5_Template_div_click_0_listener() { const cat_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.jumpToPatternsByCategory(cat_r12.name)); });
424
+ i0.ɵɵelementStart(1, "span", 132);
543
425
  i0.ɵɵtext(2);
544
426
  i0.ɵɵelementEnd();
545
- i0.ɵɵelementStart(3, "span", 158);
427
+ i0.ɵɵelementStart(3, "span", 133);
546
428
  i0.ɵɵtext(4);
547
429
  i0.ɵɵelementEnd();
548
- i0.ɵɵelementStart(5, "span", 159);
430
+ i0.ɵɵelementStart(5, "span", 134);
549
431
  i0.ɵɵtext(6);
550
432
  i0.ɵɵpipe(7, "number");
551
433
  i0.ɵɵelementEnd()();
@@ -558,26 +440,26 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_21
558
440
  i0.ɵɵadvance(2);
559
441
  i0.ɵɵtextInterpolate1("avg ", i0.ɵɵpipeBind2(7, 3, cat_r12.avgMs, "1.0-0"), "ms");
560
442
  } }
561
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_21_Template(rf, ctx) { if (rf & 1) {
562
- i0.ɵɵelementStart(0, "div", 151)(1, "h4");
443
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_21_Template(rf, ctx) { if (rf & 1) {
444
+ i0.ɵɵelementStart(0, "div", 126)(1, "h4");
563
445
  i0.ɵɵtext(2, "By Category");
564
446
  i0.ɵɵelementEnd();
565
- i0.ɵɵelementStart(3, "div", 154);
566
- i0.ɵɵrepeaterCreate(4, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_21_For_5_Template, 8, 6, "div", 155, _forTrack2);
447
+ i0.ɵɵelementStart(3, "div", 129);
448
+ i0.ɵɵrepeaterCreate(4, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_21_For_5_Template, 8, 6, "div", 130, _forTrack2);
567
449
  i0.ɵɵelementEnd()();
568
450
  } if (rf & 2) {
569
- const ctx_r0 = i0.ɵɵnextContext(3);
451
+ const ctx_r1 = i0.ɵɵnextContext(3);
570
452
  i0.ɵɵadvance(4);
571
- i0.ɵɵrepeater(ctx_r0.categoriesWithData);
453
+ i0.ɵɵrepeater(ctx_r1.categoriesWithData);
572
454
  } }
573
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
574
- i0.ɵɵelementStart(0, "span", 167);
575
- i0.ɵɵelement(1, "i", 173);
455
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
456
+ i0.ɵɵelementStart(0, "span", 142);
457
+ i0.ɵɵelement(1, "i", 148);
576
458
  i0.ɵɵtext(2, " CACHED ");
577
459
  i0.ɵɵelementEnd();
578
460
  } }
579
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_10_For_2_Template(rf, ctx) { if (rf & 1) {
580
- i0.ɵɵelementStart(0, "span", 174);
461
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_10_For_2_Template(rf, ctx) { if (rf & 1) {
462
+ i0.ɵɵelementStart(0, "span", 149);
581
463
  i0.ɵɵtext(1);
582
464
  i0.ɵɵelementEnd();
583
465
  } if (rf & 2) {
@@ -585,34 +467,34 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22
585
467
  i0.ɵɵadvance();
586
468
  i0.ɵɵtextInterpolate(entity_r15);
587
469
  } }
588
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_10_Conditional_3_Template(rf, ctx) { if (rf & 1) {
589
- i0.ɵɵelementStart(0, "span", 175);
470
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_10_Conditional_3_Template(rf, ctx) { if (rf & 1) {
471
+ i0.ɵɵelementStart(0, "span", 150);
590
472
  i0.ɵɵtext(1);
591
473
  i0.ɵɵelementEnd();
592
474
  } if (rf & 2) {
593
475
  const query_r14 = i0.ɵɵnextContext(2).$implicit;
594
- const ctx_r0 = i0.ɵɵnextContext(4);
476
+ const ctx_r1 = i0.ɵɵnextContext(4);
595
477
  i0.ɵɵadvance();
596
- i0.ɵɵtextInterpolate1("+", ctx_r0.getRunViewsEntityCount(query_r14) - 4, " more");
478
+ i0.ɵɵtextInterpolate1("+", ctx_r1.getRunViewsEntityCount(query_r14) - 4, " more");
597
479
  } }
598
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_10_Template(rf, ctx) { if (rf & 1) {
599
- i0.ɵɵelementStart(0, "div", 169);
600
- i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_10_For_2_Template, 2, 1, "span", 174, i0.ɵɵrepeaterTrackByIdentity);
601
- i0.ɵɵconditionalCreate(3, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_10_Conditional_3_Template, 2, 1, "span", 175);
480
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_10_Template(rf, ctx) { if (rf & 1) {
481
+ i0.ɵɵelementStart(0, "div", 144);
482
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_10_For_2_Template, 2, 1, "span", 149, i0.ɵɵrepeaterTrackByIdentity);
483
+ i0.ɵɵconditionalCreate(3, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_10_Conditional_3_Template, 2, 1, "span", 150);
602
484
  i0.ɵɵelementEnd();
603
485
  } if (rf & 2) {
604
486
  const query_r14 = i0.ɵɵnextContext().$implicit;
605
- const ctx_r0 = i0.ɵɵnextContext(4);
487
+ const ctx_r1 = i0.ɵɵnextContext(4);
606
488
  i0.ɵɵadvance();
607
- i0.ɵɵrepeater(ctx_r0.getRunViewsEntities(query_r14, 4));
489
+ i0.ɵɵrepeater(ctx_r1.getRunViewsEntities(query_r14, 4));
608
490
  i0.ɵɵadvance(2);
609
- i0.ɵɵconditional(ctx_r0.hasMoreEntities(query_r14, 4) ? 3 : -1);
491
+ i0.ɵɵconditional(ctx_r1.hasMoreEntities(query_r14, 4) ? 3 : -1);
610
492
  } }
611
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_11_For_2_Template(rf, ctx) { if (rf & 1) {
612
- i0.ɵɵelementStart(0, "span", 177)(1, "span", 178);
493
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_11_For_2_Template(rf, ctx) { if (rf & 1) {
494
+ i0.ɵɵelementStart(0, "span", 152)(1, "span", 153);
613
495
  i0.ɵɵtext(2);
614
496
  i0.ɵɵelementEnd();
615
- i0.ɵɵelementStart(3, "span", 179);
497
+ i0.ɵɵelementStart(3, "span", 154);
616
498
  i0.ɵɵtext(4);
617
499
  i0.ɵɵelementEnd()();
618
500
  } if (rf & 2) {
@@ -624,51 +506,51 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22
624
506
  i0.ɵɵadvance(2);
625
507
  i0.ɵɵtextInterpolate(pill_r16.value);
626
508
  } }
627
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_11_Template(rf, ctx) { if (rf & 1) {
628
- i0.ɵɵelementStart(0, "div", 170);
629
- i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_11_For_2_Template, 5, 5, "span", 176, _forTrack4);
509
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_11_Template(rf, ctx) { if (rf & 1) {
510
+ i0.ɵɵelementStart(0, "div", 145);
511
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_11_For_2_Template, 5, 5, "span", 151, _forTrack4);
630
512
  i0.ɵɵelementEnd();
631
513
  } if (rf & 2) {
632
514
  const query_r14 = i0.ɵɵnextContext().$implicit;
633
- const ctx_r0 = i0.ɵɵnextContext(4);
515
+ const ctx_r1 = i0.ɵɵnextContext(4);
634
516
  i0.ɵɵadvance();
635
- i0.ɵɵrepeater(ctx_r0.getRunViewPills(query_r14));
517
+ i0.ɵɵrepeater(ctx_r1.getRunViewPills(query_r14));
636
518
  } }
637
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_12_Template(rf, ctx) { if (rf & 1) {
638
- i0.ɵɵelementStart(0, "div", 171);
519
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_12_Template(rf, ctx) { if (rf & 1) {
520
+ i0.ɵɵelementStart(0, "div", 146);
639
521
  i0.ɵɵtext(1);
640
522
  i0.ɵɵelementEnd();
641
523
  } if (rf & 2) {
642
524
  const query_r14 = i0.ɵɵnextContext().$implicit;
643
- const ctx_r0 = i0.ɵɵnextContext(4);
525
+ const ctx_r1 = i0.ɵɵnextContext(4);
644
526
  i0.ɵɵadvance();
645
- i0.ɵɵtextInterpolate(ctx_r0.truncateString(query_r14.filter, 60));
527
+ i0.ɵɵtextInterpolate(ctx_r1.truncateString(query_r14.filter, 60));
646
528
  } }
647
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Template(rf, ctx) { if (rf & 1) {
529
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Template(rf, ctx) { if (rf & 1) {
648
530
  const _r13 = i0.ɵɵgetCurrentView();
649
- i0.ɵɵelementStart(0, "div", 163);
650
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Template_div_click_0_listener() { const query_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.openEventDetailPanel(query_r14)); });
651
- i0.ɵɵelementStart(1, "div", 164)(2, "span", 165);
531
+ i0.ɵɵelementStart(0, "div", 138);
532
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Template_div_click_0_listener() { const query_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.openEventDetailPanel(query_r14)); });
533
+ i0.ɵɵelementStart(1, "div", 139)(2, "span", 140);
652
534
  i0.ɵɵtext(3);
653
535
  i0.ɵɵelementEnd();
654
- i0.ɵɵelementStart(4, "span", 166);
536
+ i0.ɵɵelementStart(4, "span", 141);
655
537
  i0.ɵɵtext(5);
656
538
  i0.ɵɵelementEnd();
657
- i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_6_Template, 3, 0, "span", 167);
658
- i0.ɵɵelementStart(7, "span", 168);
539
+ i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_6_Template, 3, 0, "span", 142);
540
+ i0.ɵɵelementStart(7, "span", 143);
659
541
  i0.ɵɵtext(8);
660
542
  i0.ɵɵpipe(9, "number");
661
543
  i0.ɵɵelementEnd()();
662
- i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_10_Template, 4, 1, "div", 169);
663
- i0.ɵɵconditionalCreate(11, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_11_Template, 3, 0, "div", 170);
664
- i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Conditional_12_Template, 2, 1, "div", 171);
665
- i0.ɵɵelementStart(13, "div", 172);
544
+ i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_10_Template, 4, 1, "div", 144);
545
+ i0.ɵɵconditionalCreate(11, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_11_Template, 3, 0, "div", 145);
546
+ i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Conditional_12_Template, 2, 1, "div", 146);
547
+ i0.ɵɵelementStart(13, "div", 147);
666
548
  i0.ɵɵtext(14);
667
549
  i0.ɵɵelementEnd()();
668
550
  } if (rf & 2) {
669
551
  const query_r14 = ctx.$implicit;
670
- const ctx_r0 = i0.ɵɵnextContext(4);
671
- i0.ɵɵclassProp("cache-hit", ctx_r0.isCacheHit(query_r14));
552
+ const ctx_r1 = i0.ɵɵnextContext(4);
553
+ i0.ɵɵclassProp("cache-hit", ctx_r1.isCacheHit(query_r14));
672
554
  i0.ɵɵadvance(2);
673
555
  i0.ɵɵclassMap("cat-" + query_r14.category.toLowerCase());
674
556
  i0.ɵɵadvance();
@@ -676,134 +558,134 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22
676
558
  i0.ɵɵadvance(2);
677
559
  i0.ɵɵtextInterpolate(query_r14.entityName || query_r14.operation);
678
560
  i0.ɵɵadvance();
679
- i0.ɵɵconditional(ctx_r0.isCacheHit(query_r14) ? 6 : -1);
561
+ i0.ɵɵconditional(ctx_r1.isCacheHit(query_r14) ? 6 : -1);
680
562
  i0.ɵɵadvance(2);
681
563
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(9, 12, query_r14.elapsedMs, "1.0-0"), "ms");
682
564
  i0.ɵɵadvance(2);
683
- i0.ɵɵconditional(ctx_r0.isRunViewsOperation(query_r14) ? 10 : -1);
565
+ i0.ɵɵconditional(ctx_r1.isRunViewsOperation(query_r14) ? 10 : -1);
684
566
  i0.ɵɵadvance();
685
- i0.ɵɵconditional(ctx_r0.isRunViewOperation(query_r14) && ctx_r0.getRunViewPills(query_r14).length > 0 ? 11 : -1);
567
+ i0.ɵɵconditional(ctx_r1.isRunViewOperation(query_r14) && ctx_r1.getRunViewPills(query_r14).length > 0 ? 11 : -1);
686
568
  i0.ɵɵadvance();
687
569
  i0.ɵɵconditional(query_r14.filter ? 12 : -1);
688
570
  i0.ɵɵadvance(2);
689
- i0.ɵɵtextInterpolate(ctx_r0.formatTimestamp(query_r14.timestamp));
571
+ i0.ɵɵtextInterpolate(ctx_r1.formatTimestamp(query_r14.timestamp));
690
572
  } }
691
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_Template(rf, ctx) { if (rf & 1) {
692
- i0.ɵɵelementStart(0, "div", 152)(1, "h4");
693
- i0.ɵɵelement(2, "i", 160);
573
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_Template(rf, ctx) { if (rf & 1) {
574
+ i0.ɵɵelementStart(0, "div", 127)(1, "h4");
575
+ i0.ɵɵelement(2, "i", 135);
694
576
  i0.ɵɵtext(3);
695
577
  i0.ɵɵelementEnd();
696
- i0.ɵɵelementStart(4, "div", 161);
697
- i0.ɵɵrepeaterCreate(5, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_For_6_Template, 15, 15, "div", 162, _forTrack3);
578
+ i0.ɵɵelementStart(4, "div", 136);
579
+ i0.ɵɵrepeaterCreate(5, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_For_6_Template, 15, 15, "div", 137, _forTrack3);
698
580
  i0.ɵɵelementEnd()();
699
581
  } if (rf & 2) {
700
- const ctx_r0 = i0.ɵɵnextContext(3);
582
+ const ctx_r1 = i0.ɵɵnextContext(3);
701
583
  i0.ɵɵadvance(3);
702
- i0.ɵɵtextInterpolate1(" Slow Operations (>", ctx_r0.slowQueryThresholdMs, "ms) ");
584
+ i0.ɵɵtextInterpolate1(" Slow Operations (>", ctx_r1.slowQueryThresholdMs, "ms) ");
703
585
  i0.ɵɵadvance(2);
704
- i0.ɵɵrepeater(ctx_r0.slowQueries.slice(0, 10));
586
+ i0.ɵɵrepeater(ctx_r1.slowQueries.slice(0, 10));
705
587
  } }
706
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_23_Template(rf, ctx) { if (rf & 1) {
707
- i0.ɵɵelementStart(0, "div", 153);
708
- i0.ɵɵelement(1, "i", 78);
588
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_23_Template(rf, ctx) { if (rf & 1) {
589
+ i0.ɵɵelementStart(0, "div", 128);
590
+ i0.ɵɵelement(1, "i", 51);
709
591
  i0.ɵɵelementStart(2, "span");
710
592
  i0.ɵɵtext(3);
711
593
  i0.ɵɵelementEnd()();
712
594
  } if (rf & 2) {
713
- const ctx_r0 = i0.ɵɵnextContext(3);
595
+ const ctx_r1 = i0.ɵɵnextContext(3);
714
596
  i0.ɵɵadvance(3);
715
- i0.ɵɵtextInterpolate1("No slow operations detected. All operations completed under ", ctx_r0.slowQueryThresholdMs, "ms.");
597
+ i0.ɵɵtextInterpolate1("No slow operations detected. All operations completed under ", ctx_r1.slowQueryThresholdMs, "ms.");
716
598
  } }
717
- function SystemDiagnosticsComponent_Conditional_52_Conditional_48_Template(rf, ctx) { if (rf & 1) {
718
- i0.ɵɵelementStart(0, "div", 147)(1, "div", 148)(2, "div", 149);
599
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_48_Template(rf, ctx) { if (rf & 1) {
600
+ i0.ɵɵelementStart(0, "div", 122)(1, "div", 123)(2, "div", 124);
719
601
  i0.ɵɵtext(3);
720
602
  i0.ɵɵelementEnd();
721
- i0.ɵɵelementStart(4, "div", 150);
603
+ i0.ɵɵelementStart(4, "div", 125);
722
604
  i0.ɵɵtext(5, "Total Events");
723
605
  i0.ɵɵelementEnd()();
724
- i0.ɵɵelementStart(6, "div", 148)(7, "div", 149);
606
+ i0.ɵɵelementStart(6, "div", 123)(7, "div", 124);
725
607
  i0.ɵɵtext(8);
726
608
  i0.ɵɵelementEnd();
727
- i0.ɵɵelementStart(9, "div", 150);
609
+ i0.ɵɵelementStart(9, "div", 125);
728
610
  i0.ɵɵtext(10, "Unique Patterns");
729
611
  i0.ɵɵelementEnd()();
730
- i0.ɵɵelementStart(11, "div", 148)(12, "div", 149);
612
+ i0.ɵɵelementStart(11, "div", 123)(12, "div", 124);
731
613
  i0.ɵɵtext(13);
732
614
  i0.ɵɵelementEnd();
733
- i0.ɵɵelementStart(14, "div", 150);
615
+ i0.ɵɵelementStart(14, "div", 125);
734
616
  i0.ɵɵtext(15, "Insights");
735
617
  i0.ɵɵelementEnd()();
736
- i0.ɵɵelementStart(16, "div", 148)(17, "div", 149);
618
+ i0.ɵɵelementStart(16, "div", 123)(17, "div", 124);
737
619
  i0.ɵɵtext(18);
738
620
  i0.ɵɵelementEnd();
739
- i0.ɵɵelementStart(19, "div", 150);
621
+ i0.ɵɵelementStart(19, "div", 125);
740
622
  i0.ɵɵtext(20, "Active");
741
623
  i0.ɵɵelementEnd()()();
742
- i0.ɵɵconditionalCreate(21, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_21_Template, 6, 0, "div", 151);
743
- i0.ɵɵconditionalCreate(22, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_22_Template, 7, 1, "div", 152)(23, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Conditional_23_Template, 4, 1, "div", 153);
624
+ i0.ɵɵconditionalCreate(21, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_21_Template, 6, 0, "div", 126);
625
+ i0.ɵɵconditionalCreate(22, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_22_Template, 7, 1, "div", 127)(23, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Conditional_23_Template, 4, 1, "div", 128);
744
626
  } if (rf & 2) {
745
- const ctx_r0 = i0.ɵɵnextContext(2);
627
+ const ctx_r1 = i0.ɵɵnextContext(2);
746
628
  i0.ɵɵadvance(3);
747
- i0.ɵɵtextInterpolate((ctx_r0.telemetrySummary == null ? null : ctx_r0.telemetrySummary.totalEvents) || 0);
629
+ i0.ɵɵtextInterpolate((ctx_r1.telemetrySummary == null ? null : ctx_r1.telemetrySummary.totalEvents) || 0);
748
630
  i0.ɵɵadvance(5);
749
- i0.ɵɵtextInterpolate((ctx_r0.telemetrySummary == null ? null : ctx_r0.telemetrySummary.totalPatterns) || 0);
631
+ i0.ɵɵtextInterpolate((ctx_r1.telemetrySummary == null ? null : ctx_r1.telemetrySummary.totalPatterns) || 0);
750
632
  i0.ɵɵadvance(5);
751
- i0.ɵɵtextInterpolate((ctx_r0.telemetrySummary == null ? null : ctx_r0.telemetrySummary.totalInsights) || 0);
633
+ i0.ɵɵtextInterpolate((ctx_r1.telemetrySummary == null ? null : ctx_r1.telemetrySummary.totalInsights) || 0);
752
634
  i0.ɵɵadvance(5);
753
- i0.ɵɵtextInterpolate((ctx_r0.telemetrySummary == null ? null : ctx_r0.telemetrySummary.activeEvents) || 0);
635
+ i0.ɵɵtextInterpolate((ctx_r1.telemetrySummary == null ? null : ctx_r1.telemetrySummary.activeEvents) || 0);
754
636
  i0.ɵɵadvance(3);
755
- i0.ɵɵconditional(ctx_r0.telemetrySummary && ctx_r0.telemetrySummary.totalEvents > 0 ? 21 : -1);
637
+ i0.ɵɵconditional(ctx_r1.telemetrySummary && ctx_r1.telemetrySummary.totalEvents > 0 ? 21 : -1);
756
638
  i0.ɵɵadvance();
757
- i0.ɵɵconditional(ctx_r0.slowQueries.length > 0 ? 22 : ctx_r0.telemetryEnabled && ctx_r0.telemetrySummary && ctx_r0.telemetrySummary.totalEvents > 0 ? 23 : -1);
639
+ i0.ɵɵconditional(ctx_r1.slowQueries.length > 0 ? 22 : ctx_r1.telemetryEnabled && ctx_r1.telemetrySummary && ctx_r1.telemetrySummary.totalEvents > 0 ? 23 : -1);
758
640
  } }
759
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_4_Template(rf, ctx) { if (rf & 1) {
641
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_4_Template(rf, ctx) { if (rf & 1) {
760
642
  const _r18 = i0.ɵɵgetCurrentView();
761
- i0.ɵɵelementStart(0, "button", 191);
762
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.clearSearch()); });
763
- i0.ɵɵelement(1, "i", 116);
643
+ i0.ɵɵelementStart(0, "button", 166);
644
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.clearSearch()); });
645
+ i0.ɵɵelement(1, "i", 91);
764
646
  i0.ɵɵelementEnd();
765
647
  } }
766
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_For_9_Template(rf, ctx) { if (rf & 1) {
648
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_For_9_Template(rf, ctx) { if (rf & 1) {
767
649
  const _r19 = i0.ɵɵgetCurrentView();
768
- i0.ɵɵelementStart(0, "button", 186);
769
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_49_For_9_Template_button_click_0_listener() { const cat_r20 = i0.ɵɵrestoreView(_r19).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCategoryFilterByName(cat_r20.name)); });
650
+ i0.ɵɵelementStart(0, "button", 161);
651
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_49_For_9_Template_button_click_0_listener() { const cat_r20 = i0.ɵɵrestoreView(_r19).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setCategoryFilterByName(cat_r20.name)); });
770
652
  i0.ɵɵtext(1);
771
653
  i0.ɵɵelementEnd();
772
654
  } if (rf & 2) {
773
655
  const cat_r20 = ctx.$implicit;
774
- const ctx_r0 = i0.ɵɵnextContext(3);
775
- i0.ɵɵclassProp("active", ctx_r0.categoryFilter === cat_r20.name);
656
+ const ctx_r1 = i0.ɵɵnextContext(3);
657
+ i0.ɵɵclassProp("active", ctx_r1.categoryFilter === cat_r20.name);
776
658
  i0.ɵɵadvance();
777
659
  i0.ɵɵtextInterpolate1(" ", cat_r20.name, " ");
778
660
  } }
779
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
780
- i0.ɵɵelementStart(0, "div", 195);
781
- i0.ɵɵelement(1, "i", 173);
661
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
662
+ i0.ɵɵelementStart(0, "div", 170);
663
+ i0.ɵɵelement(1, "i", 148);
782
664
  i0.ɵɵelementEnd();
783
665
  } }
784
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
785
- i0.ɵɵelement(0, "div", 196);
666
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
667
+ i0.ɵɵelement(0, "div", 171);
786
668
  } }
787
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_11_Template(rf, ctx) { if (rf & 1) {
788
- i0.ɵɵelementStart(0, "span", 201);
789
- i0.ɵɵelement(1, "i", 173);
669
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_11_Template(rf, ctx) { if (rf & 1) {
670
+ i0.ɵɵelementStart(0, "span", 176);
671
+ i0.ɵɵelement(1, "i", 148);
790
672
  i0.ɵɵtext(2, " CACHED ");
791
673
  i0.ɵɵelementEnd();
792
674
  } }
793
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_12_Template(rf, ctx) { if (rf & 1) {
794
- i0.ɵɵelementStart(0, "span", 209);
675
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_12_Template(rf, ctx) { if (rf & 1) {
676
+ i0.ɵɵelementStart(0, "span", 184);
795
677
  i0.ɵɵtext(1);
796
678
  i0.ɵɵpipe(2, "number");
797
679
  i0.ɵɵelementEnd();
798
680
  } if (rf & 2) {
799
681
  const event_r22 = i0.ɵɵnextContext().$implicit;
800
- const ctx_r0 = i0.ɵɵnextContext(4);
801
- i0.ɵɵclassProp("slow", (event_r22.elapsedMs || 0) >= ctx_r0.slowQueryThresholdMs);
682
+ const ctx_r1 = i0.ɵɵnextContext(4);
683
+ i0.ɵɵclassProp("slow", (event_r22.elapsedMs || 0) >= ctx_r1.slowQueryThresholdMs);
802
684
  i0.ɵɵadvance();
803
685
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 3, event_r22.elapsedMs, "1.0-0"), "ms ");
804
686
  } }
805
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_16_Template(rf, ctx) { if (rf & 1) {
806
- i0.ɵɵelementStart(0, "span", 205);
687
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_16_Template(rf, ctx) { if (rf & 1) {
688
+ i0.ɵɵelementStart(0, "span", 180);
807
689
  i0.ɵɵtext(1);
808
690
  i0.ɵɵelementEnd();
809
691
  } if (rf & 2) {
@@ -811,8 +693,8 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12
811
693
  i0.ɵɵadvance();
812
694
  i0.ɵɵtextInterpolate(event_r22.entityName);
813
695
  } }
814
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_17_For_2_Template(rf, ctx) { if (rf & 1) {
815
- i0.ɵɵelementStart(0, "span", 210);
696
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_17_For_2_Template(rf, ctx) { if (rf & 1) {
697
+ i0.ɵɵelementStart(0, "span", 185);
816
698
  i0.ɵɵtext(1);
817
699
  i0.ɵɵelementEnd();
818
700
  } if (rf & 2) {
@@ -820,34 +702,34 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12
820
702
  i0.ɵɵadvance();
821
703
  i0.ɵɵtextInterpolate(entity_r23);
822
704
  } }
823
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_17_Conditional_3_Template(rf, ctx) { if (rf & 1) {
824
- i0.ɵɵelementStart(0, "span", 211);
705
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_17_Conditional_3_Template(rf, ctx) { if (rf & 1) {
706
+ i0.ɵɵelementStart(0, "span", 186);
825
707
  i0.ɵɵtext(1);
826
708
  i0.ɵɵelementEnd();
827
709
  } if (rf & 2) {
828
710
  const event_r22 = i0.ɵɵnextContext(2).$implicit;
829
- const ctx_r0 = i0.ɵɵnextContext(4);
711
+ const ctx_r1 = i0.ɵɵnextContext(4);
830
712
  i0.ɵɵadvance();
831
- i0.ɵɵtextInterpolate1("+", ctx_r0.getRunViewsEntityCount(event_r22) - 3, " more");
713
+ i0.ɵɵtextInterpolate1("+", ctx_r1.getRunViewsEntityCount(event_r22) - 3, " more");
832
714
  } }
833
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_17_Template(rf, ctx) { if (rf & 1) {
834
- i0.ɵɵelementStart(0, "div", 206);
835
- i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_17_For_2_Template, 2, 1, "span", 210, i0.ɵɵrepeaterTrackByIdentity);
836
- i0.ɵɵconditionalCreate(3, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_17_Conditional_3_Template, 2, 1, "span", 211);
715
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_17_Template(rf, ctx) { if (rf & 1) {
716
+ i0.ɵɵelementStart(0, "div", 181);
717
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_17_For_2_Template, 2, 1, "span", 185, i0.ɵɵrepeaterTrackByIdentity);
718
+ i0.ɵɵconditionalCreate(3, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_17_Conditional_3_Template, 2, 1, "span", 186);
837
719
  i0.ɵɵelementEnd();
838
720
  } if (rf & 2) {
839
721
  const event_r22 = i0.ɵɵnextContext().$implicit;
840
- const ctx_r0 = i0.ɵɵnextContext(4);
722
+ const ctx_r1 = i0.ɵɵnextContext(4);
841
723
  i0.ɵɵadvance();
842
- i0.ɵɵrepeater(ctx_r0.getRunViewsEntities(event_r22, 3));
724
+ i0.ɵɵrepeater(ctx_r1.getRunViewsEntities(event_r22, 3));
843
725
  i0.ɵɵadvance(2);
844
- i0.ɵɵconditional(ctx_r0.hasMoreEntities(event_r22, 3) ? 3 : -1);
726
+ i0.ɵɵconditional(ctx_r1.hasMoreEntities(event_r22, 3) ? 3 : -1);
845
727
  } }
846
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_18_For_2_Template(rf, ctx) { if (rf & 1) {
847
- i0.ɵɵelementStart(0, "span", 213)(1, "span", 178);
728
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_18_For_2_Template(rf, ctx) { if (rf & 1) {
729
+ i0.ɵɵelementStart(0, "span", 188)(1, "span", 153);
848
730
  i0.ɵɵtext(2);
849
731
  i0.ɵɵelementEnd();
850
- i0.ɵɵelementStart(3, "span", 179);
732
+ i0.ɵɵelementStart(3, "span", 154);
851
733
  i0.ɵɵtext(4);
852
734
  i0.ɵɵelementEnd()();
853
735
  } if (rf & 2) {
@@ -859,67 +741,67 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12
859
741
  i0.ɵɵadvance(2);
860
742
  i0.ɵɵtextInterpolate(pill_r24.value);
861
743
  } }
862
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_18_Template(rf, ctx) { if (rf & 1) {
863
- i0.ɵɵelementStart(0, "div", 207);
864
- i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_18_For_2_Template, 5, 5, "span", 212, _forTrack4);
744
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_18_Template(rf, ctx) { if (rf & 1) {
745
+ i0.ɵɵelementStart(0, "div", 182);
746
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_18_For_2_Template, 5, 5, "span", 187, _forTrack4);
865
747
  i0.ɵɵelementEnd();
866
748
  } if (rf & 2) {
867
749
  const event_r22 = i0.ɵɵnextContext().$implicit;
868
- const ctx_r0 = i0.ɵɵnextContext(4);
750
+ const ctx_r1 = i0.ɵɵnextContext(4);
869
751
  i0.ɵɵadvance();
870
- i0.ɵɵrepeater(ctx_r0.getRunViewPills(event_r22));
752
+ i0.ɵɵrepeater(ctx_r1.getRunViewPills(event_r22));
871
753
  } }
872
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_19_Template(rf, ctx) { if (rf & 1) {
873
- i0.ɵɵelementStart(0, "div", 208);
754
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_19_Template(rf, ctx) { if (rf & 1) {
755
+ i0.ɵɵelementStart(0, "div", 183);
874
756
  i0.ɵɵtext(1);
875
757
  i0.ɵɵelementEnd();
876
758
  } if (rf & 2) {
877
759
  const event_r22 = i0.ɵɵnextContext().$implicit;
878
- const ctx_r0 = i0.ɵɵnextContext(4);
760
+ const ctx_r1 = i0.ɵɵnextContext(4);
879
761
  i0.ɵɵadvance();
880
- i0.ɵɵtextInterpolate(ctx_r0.truncateString(event_r22.filter, 80));
762
+ i0.ɵɵtextInterpolate(ctx_r1.truncateString(event_r22.filter, 80));
881
763
  } }
882
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Template(rf, ctx) { if (rf & 1) {
764
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Template(rf, ctx) { if (rf & 1) {
883
765
  const _r21 = i0.ɵɵgetCurrentView();
884
- i0.ɵɵelementStart(0, "div", 193);
885
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Template_div_click_0_listener() { const event_r22 = i0.ɵɵrestoreView(_r21).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.openEventDetailPanel(event_r22)); });
886
- i0.ɵɵelementStart(1, "div", 194);
887
- i0.ɵɵconditionalCreate(2, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_2_Template, 2, 0, "div", 195)(3, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_3_Template, 1, 0, "div", 196);
888
- i0.ɵɵelement(4, "div", 197);
766
+ i0.ɵɵelementStart(0, "div", 168);
767
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Template_div_click_0_listener() { const event_r22 = i0.ɵɵrestoreView(_r21).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.openEventDetailPanel(event_r22)); });
768
+ i0.ɵɵelementStart(1, "div", 169);
769
+ i0.ɵɵconditionalCreate(2, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_2_Template, 2, 0, "div", 170)(3, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_3_Template, 1, 0, "div", 171);
770
+ i0.ɵɵelement(4, "div", 172);
889
771
  i0.ɵɵelementEnd();
890
- i0.ɵɵelementStart(5, "div", 198)(6, "div", 199)(7, "span", 200);
772
+ i0.ɵɵelementStart(5, "div", 173)(6, "div", 174)(7, "span", 175);
891
773
  i0.ɵɵtext(8);
892
774
  i0.ɵɵelementEnd();
893
- i0.ɵɵelementStart(9, "span", 165);
775
+ i0.ɵɵelementStart(9, "span", 140);
894
776
  i0.ɵɵtext(10);
895
777
  i0.ɵɵelementEnd();
896
- i0.ɵɵconditionalCreate(11, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_11_Template, 3, 0, "span", 201);
897
- i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_12_Template, 3, 6, "span", 202);
778
+ i0.ɵɵconditionalCreate(11, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_11_Template, 3, 0, "span", 176);
779
+ i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_12_Template, 3, 6, "span", 177);
898
780
  i0.ɵɵelementEnd();
899
- i0.ɵɵelementStart(13, "div", 203)(14, "span", 204);
781
+ i0.ɵɵelementStart(13, "div", 178)(14, "span", 179);
900
782
  i0.ɵɵtext(15);
901
783
  i0.ɵɵelementEnd();
902
- i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_16_Template, 2, 1, "span", 205);
903
- i0.ɵɵconditionalCreate(17, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_17_Template, 4, 1, "div", 206);
784
+ i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_16_Template, 2, 1, "span", 180);
785
+ i0.ɵɵconditionalCreate(17, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_17_Template, 4, 1, "div", 181);
904
786
  i0.ɵɵelementEnd();
905
- i0.ɵɵconditionalCreate(18, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_18_Template, 3, 0, "div", 207);
906
- i0.ɵɵconditionalCreate(19, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Conditional_19_Template, 2, 1, "div", 208);
787
+ i0.ɵɵconditionalCreate(18, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_18_Template, 3, 0, "div", 182);
788
+ i0.ɵɵconditionalCreate(19, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Conditional_19_Template, 2, 1, "div", 183);
907
789
  i0.ɵɵelementEnd()();
908
790
  } if (rf & 2) {
909
791
  const event_r22 = ctx.$implicit;
910
- const ctx_r0 = i0.ɵɵnextContext(4);
792
+ const ctx_r1 = i0.ɵɵnextContext(4);
911
793
  i0.ɵɵclassMap("tl-" + event_r22.category.toLowerCase());
912
- i0.ɵɵclassProp("cache-hit", ctx_r0.isCacheHit(event_r22));
794
+ i0.ɵɵclassProp("cache-hit", ctx_r1.isCacheHit(event_r22));
913
795
  i0.ɵɵadvance(2);
914
- i0.ɵɵconditional(ctx_r0.isCacheHit(event_r22) ? 2 : 3);
796
+ i0.ɵɵconditional(ctx_r1.isCacheHit(event_r22) ? 2 : 3);
915
797
  i0.ɵɵadvance(6);
916
- i0.ɵɵtextInterpolate(ctx_r0.formatTimestamp(event_r22.timestamp));
798
+ i0.ɵɵtextInterpolate(ctx_r1.formatTimestamp(event_r22.timestamp));
917
799
  i0.ɵɵadvance();
918
800
  i0.ɵɵclassMap("cat-" + event_r22.category.toLowerCase());
919
801
  i0.ɵɵadvance();
920
802
  i0.ɵɵtextInterpolate1(" ", event_r22.category, " ");
921
803
  i0.ɵɵadvance();
922
- i0.ɵɵconditional(ctx_r0.isCacheHit(event_r22) ? 11 : -1);
804
+ i0.ɵɵconditional(ctx_r1.isCacheHit(event_r22) ? 11 : -1);
923
805
  i0.ɵɵadvance();
924
806
  i0.ɵɵconditional(event_r22.elapsedMs !== undefined ? 12 : -1);
925
807
  i0.ɵɵadvance(3);
@@ -927,79 +809,79 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12
927
809
  i0.ɵɵadvance();
928
810
  i0.ɵɵconditional(event_r22.entityName ? 16 : -1);
929
811
  i0.ɵɵadvance();
930
- i0.ɵɵconditional(ctx_r0.isRunViewsOperation(event_r22) ? 17 : -1);
812
+ i0.ɵɵconditional(ctx_r1.isRunViewsOperation(event_r22) ? 17 : -1);
931
813
  i0.ɵɵadvance();
932
- i0.ɵɵconditional(ctx_r0.isRunViewOperation(event_r22) && ctx_r0.getRunViewPills(event_r22).length > 0 ? 18 : -1);
814
+ i0.ɵɵconditional(ctx_r1.isRunViewOperation(event_r22) && ctx_r1.getRunViewPills(event_r22).length > 0 ? 18 : -1);
933
815
  i0.ɵɵadvance();
934
816
  i0.ɵɵconditional(event_r22.filter ? 19 : -1);
935
817
  } }
936
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_Template(rf, ctx) { if (rf & 1) {
937
- i0.ɵɵrepeaterCreate(0, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_For_1_Template, 20, 16, "div", 192, _forTrack3);
818
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_Template(rf, ctx) { if (rf & 1) {
819
+ i0.ɵɵrepeaterCreate(0, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_For_1_Template, 20, 16, "div", 167, _forTrack3);
938
820
  } if (rf & 2) {
939
- const ctx_r0 = i0.ɵɵnextContext(3);
940
- i0.ɵɵrepeater(ctx_r0.filteredEvents.slice(0, 50));
821
+ const ctx_r1 = i0.ɵɵnextContext(3);
822
+ i0.ɵɵrepeater(ctx_r1.filteredEvents.slice(0, 50));
941
823
  } }
942
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_13_Template(rf, ctx) { if (rf & 1) {
943
- i0.ɵɵelementStart(0, "div", 190);
944
- i0.ɵɵelement(1, "i", 214);
824
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_13_Template(rf, ctx) { if (rf & 1) {
825
+ i0.ɵɵelementStart(0, "div", 165);
826
+ i0.ɵɵelement(1, "i", 189);
945
827
  i0.ɵɵelementStart(2, "p");
946
828
  i0.ɵɵtext(3, "No events recorded yet");
947
829
  i0.ɵɵelementEnd()();
948
830
  } }
949
- function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Template(rf, ctx) { if (rf & 1) {
831
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Template(rf, ctx) { if (rf & 1) {
950
832
  const _r17 = i0.ɵɵgetCurrentView();
951
- i0.ɵɵelementStart(0, "div", 180)(1, "div", 181);
952
- i0.ɵɵelement(2, "i", 182);
953
- i0.ɵɵelementStart(3, "input", 183);
954
- i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.searchQuery, $event) || (ctx_r0.searchQuery = $event); return i0.ɵɵresetView($event); });
955
- i0.ɵɵlistener("ngModelChange", function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r17); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onSearchChange()); });
833
+ i0.ɵɵelementStart(0, "div", 155)(1, "div", 156);
834
+ i0.ɵɵelement(2, "i", 157);
835
+ i0.ɵɵelementStart(3, "input", 158);
836
+ i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.searchQuery, $event) || (ctx_r1.searchQuery = $event); return i0.ɵɵresetView($event); });
837
+ i0.ɵɵlistener("ngModelChange", function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onSearchChange()); });
956
838
  i0.ɵɵelementEnd();
957
- i0.ɵɵconditionalCreate(4, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_4_Template, 2, 0, "button", 184);
839
+ i0.ɵɵconditionalCreate(4, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_4_Template, 2, 0, "button", 159);
958
840
  i0.ɵɵelementEnd();
959
- i0.ɵɵelementStart(5, "div", 185)(6, "button", 186);
960
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_49_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r17); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setCategoryFilter("all")); });
841
+ i0.ɵɵelementStart(5, "div", 160)(6, "button", 161);
842
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_49_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setCategoryFilter("all")); });
961
843
  i0.ɵɵtext(7, " All ");
962
844
  i0.ɵɵelementEnd();
963
- i0.ɵɵrepeaterCreate(8, SystemDiagnosticsComponent_Conditional_52_Conditional_49_For_9_Template, 2, 3, "button", 187, _forTrack2);
845
+ i0.ɵɵrepeaterCreate(8, SystemDiagnosticsComponent_Conditional_17_Conditional_49_For_9_Template, 2, 3, "button", 162, _forTrack2);
964
846
  i0.ɵɵelementEnd()();
965
- i0.ɵɵelementStart(10, "div", 188)(11, "div", 189);
966
- i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_12_Template, 2, 0)(13, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Conditional_13_Template, 4, 0, "div", 190);
847
+ i0.ɵɵelementStart(10, "div", 163)(11, "div", 164);
848
+ i0.ɵɵconditionalCreate(12, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_12_Template, 2, 0)(13, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Conditional_13_Template, 4, 0, "div", 165);
967
849
  i0.ɵɵelementEnd()();
968
850
  } if (rf & 2) {
969
- const ctx_r0 = i0.ɵɵnextContext(2);
851
+ const ctx_r1 = i0.ɵɵnextContext(2);
970
852
  i0.ɵɵadvance(3);
971
- i0.ɵɵtwoWayProperty("ngModel", ctx_r0.searchQuery);
853
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.searchQuery);
972
854
  i0.ɵɵadvance();
973
- i0.ɵɵconditional(ctx_r0.searchQuery ? 4 : -1);
855
+ i0.ɵɵconditional(ctx_r1.searchQuery ? 4 : -1);
974
856
  i0.ɵɵadvance(2);
975
- i0.ɵɵclassProp("active", ctx_r0.categoryFilter === "all");
857
+ i0.ɵɵclassProp("active", ctx_r1.categoryFilter === "all");
976
858
  i0.ɵɵadvance(2);
977
- i0.ɵɵrepeater(ctx_r0.categoriesWithData);
859
+ i0.ɵɵrepeater(ctx_r1.categoriesWithData);
978
860
  i0.ɵɵadvance(4);
979
- i0.ɵɵconditional(ctx_r0.filteredEvents.length > 0 ? 12 : 13);
861
+ i0.ɵɵconditional(ctx_r1.filteredEvents.length > 0 ? 12 : 13);
980
862
  } }
981
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_4_Template(rf, ctx) { if (rf & 1) {
863
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_4_Template(rf, ctx) { if (rf & 1) {
982
864
  const _r26 = i0.ɵɵgetCurrentView();
983
- i0.ɵɵelementStart(0, "button", 191);
984
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.clearSearch()); });
985
- i0.ɵɵelement(1, "i", 116);
865
+ i0.ɵɵelementStart(0, "button", 166);
866
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.clearSearch()); });
867
+ i0.ɵɵelement(1, "i", 91);
986
868
  i0.ɵɵelementEnd();
987
869
  } }
988
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_For_9_Template(rf, ctx) { if (rf & 1) {
870
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_For_9_Template(rf, ctx) { if (rf & 1) {
989
871
  const _r27 = i0.ɵɵgetCurrentView();
990
- i0.ɵɵelementStart(0, "button", 186);
991
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_For_9_Template_button_click_0_listener() { const cat_r28 = i0.ɵɵrestoreView(_r27).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCategoryFilterByName(cat_r28.name)); });
872
+ i0.ɵɵelementStart(0, "button", 161);
873
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_For_9_Template_button_click_0_listener() { const cat_r28 = i0.ɵɵrestoreView(_r27).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setCategoryFilterByName(cat_r28.name)); });
992
874
  i0.ɵɵtext(1);
993
875
  i0.ɵɵelementEnd();
994
876
  } if (rf & 2) {
995
877
  const cat_r28 = ctx.$implicit;
996
- const ctx_r0 = i0.ɵɵnextContext(3);
997
- i0.ɵɵclassProp("active", ctx_r0.categoryFilter === cat_r28.name);
878
+ const ctx_r1 = i0.ɵɵnextContext(3);
879
+ i0.ɵɵclassProp("active", ctx_r1.categoryFilter === cat_r28.name);
998
880
  i0.ɵɵadvance();
999
881
  i0.ɵɵtextInterpolate1(" ", cat_r28.name, " ");
1000
882
  } }
1001
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_For_27_Conditional_11_Template(rf, ctx) { if (rf & 1) {
1002
- i0.ɵɵelementStart(0, "span", 226);
883
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_For_27_Conditional_11_Template(rf, ctx) { if (rf & 1) {
884
+ i0.ɵɵelementStart(0, "span", 201);
1003
885
  i0.ɵɵtext(1);
1004
886
  i0.ɵɵelementEnd();
1005
887
  } if (rf & 2) {
@@ -1007,40 +889,40 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10
1007
889
  i0.ɵɵadvance();
1008
890
  i0.ɵɵtextInterpolate(pattern_r30.count);
1009
891
  } }
1010
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_For_27_Conditional_12_Template(rf, ctx) { if (rf & 1) {
892
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_For_27_Conditional_12_Template(rf, ctx) { if (rf & 1) {
1011
893
  i0.ɵɵtext(0);
1012
894
  } if (rf & 2) {
1013
895
  const pattern_r30 = i0.ɵɵnextContext().$implicit;
1014
896
  i0.ɵɵtextInterpolate1(" ", pattern_r30.count, " ");
1015
897
  } }
1016
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_For_27_Template(rf, ctx) { if (rf & 1) {
1017
- i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span", 222);
898
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_For_27_Template(rf, ctx) { if (rf & 1) {
899
+ i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span", 197);
1018
900
  i0.ɵɵtext(3);
1019
901
  i0.ɵɵelementEnd()();
1020
- i0.ɵɵelementStart(4, "td", 223);
902
+ i0.ɵɵelementStart(4, "td", 198);
1021
903
  i0.ɵɵtext(5);
1022
904
  i0.ɵɵelementEnd();
1023
- i0.ɵɵelementStart(6, "td", 224);
905
+ i0.ɵɵelementStart(6, "td", 199);
1024
906
  i0.ɵɵtext(7);
1025
907
  i0.ɵɵelementEnd();
1026
- i0.ɵɵelementStart(8, "td", 225);
908
+ i0.ɵɵelementStart(8, "td", 200);
1027
909
  i0.ɵɵtext(9);
1028
910
  i0.ɵɵelementEnd();
1029
- i0.ɵɵelementStart(10, "td", 81);
1030
- i0.ɵɵconditionalCreate(11, SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_For_27_Conditional_11_Template, 2, 1, "span", 226)(12, SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_For_27_Conditional_12_Template, 1, 1);
911
+ i0.ɵɵelementStart(10, "td", 54);
912
+ i0.ɵɵconditionalCreate(11, SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_For_27_Conditional_11_Template, 2, 1, "span", 201)(12, SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_For_27_Conditional_12_Template, 1, 1);
1031
913
  i0.ɵɵelementEnd();
1032
- i0.ɵɵelementStart(13, "td", 81);
914
+ i0.ɵɵelementStart(13, "td", 54);
1033
915
  i0.ɵɵtext(14);
1034
916
  i0.ɵɵpipe(15, "number");
1035
917
  i0.ɵɵelementEnd();
1036
- i0.ɵɵelementStart(16, "td", 81);
918
+ i0.ɵɵelementStart(16, "td", 54);
1037
919
  i0.ɵɵtext(17);
1038
920
  i0.ɵɵpipe(18, "number");
1039
921
  i0.ɵɵelementEnd()();
1040
922
  } if (rf & 2) {
1041
923
  const pattern_r30 = ctx.$implicit;
1042
- const ctx_r0 = i0.ɵɵnextContext(4);
1043
- i0.ɵɵclassProp("duplicate-row", pattern_r30.count >= 2)("slow-row", pattern_r30.avgElapsedMs >= ctx_r0.slowQueryThresholdMs);
924
+ const ctx_r1 = i0.ɵɵnextContext(4);
925
+ i0.ɵɵclassProp("duplicate-row", pattern_r30.count >= 2)("slow-row", pattern_r30.avgElapsedMs >= ctx_r1.slowQueryThresholdMs);
1044
926
  i0.ɵɵadvance(2);
1045
927
  i0.ɵɵclassMap("cat-" + pattern_r30.category.toLowerCase());
1046
928
  i0.ɵɵadvance();
@@ -1052,123 +934,123 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10
1052
934
  i0.ɵɵadvance();
1053
935
  i0.ɵɵproperty("title", pattern_r30.filter || "");
1054
936
  i0.ɵɵadvance();
1055
- i0.ɵɵtextInterpolate1(" ", ctx_r0.truncateString(pattern_r30.filter, 30), " ");
937
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.truncateString(pattern_r30.filter, 30), " ");
1056
938
  i0.ɵɵadvance(2);
1057
939
  i0.ɵɵconditional(pattern_r30.count >= 2 ? 11 : 12);
1058
940
  i0.ɵɵadvance(2);
1059
- i0.ɵɵclassProp("slow-value", pattern_r30.avgElapsedMs >= ctx_r0.slowQueryThresholdMs);
941
+ i0.ɵɵclassProp("slow-value", pattern_r30.avgElapsedMs >= ctx_r1.slowQueryThresholdMs);
1060
942
  i0.ɵɵadvance();
1061
943
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(15, 16, pattern_r30.avgElapsedMs, "1.1-1"), " ");
1062
944
  i0.ɵɵadvance(3);
1063
945
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(18, 19, pattern_r30.totalElapsedMs, "1.0-0"));
1064
946
  } }
1065
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_Template(rf, ctx) { if (rf & 1) {
947
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1066
948
  const _r29 = i0.ɵɵgetCurrentView();
1067
- i0.ɵɵelementStart(0, "div", 216)(1, "div", 217)(2, "table", 218)(3, "thead")(4, "tr")(5, "th", 219);
1068
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_Template_th_click_5_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("category")); });
949
+ i0.ɵɵelementStart(0, "div", 191)(1, "div", 192)(2, "table", 193)(3, "thead")(4, "tr")(5, "th", 194);
950
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_Template_th_click_5_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.sortPatternsBy("category")); });
1069
951
  i0.ɵɵtext(6, " Category ");
1070
- i0.ɵɵelement(7, "i", 13);
952
+ i0.ɵɵelement(7, "i", 84);
1071
953
  i0.ɵɵelementEnd();
1072
- i0.ɵɵelementStart(8, "th", 219);
1073
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_Template_th_click_8_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("operation")); });
954
+ i0.ɵɵelementStart(8, "th", 194);
955
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_Template_th_click_8_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.sortPatternsBy("operation")); });
1074
956
  i0.ɵɵtext(9, " Operation ");
1075
- i0.ɵɵelement(10, "i", 13);
957
+ i0.ɵɵelement(10, "i", 84);
1076
958
  i0.ɵɵelementEnd();
1077
- i0.ɵɵelementStart(11, "th", 219);
1078
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_Template_th_click_11_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("entity")); });
959
+ i0.ɵɵelementStart(11, "th", 194);
960
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_Template_th_click_11_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.sortPatternsBy("entity")); });
1079
961
  i0.ɵɵtext(12, " Entity/Query ");
1080
- i0.ɵɵelement(13, "i", 13);
962
+ i0.ɵɵelement(13, "i", 84);
1081
963
  i0.ɵɵelementEnd();
1082
964
  i0.ɵɵelementStart(14, "th");
1083
965
  i0.ɵɵtext(15, "Filter");
1084
966
  i0.ɵɵelementEnd();
1085
- i0.ɵɵelementStart(16, "th", 220);
1086
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_Template_th_click_16_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("count")); });
967
+ i0.ɵɵelementStart(16, "th", 195);
968
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_Template_th_click_16_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.sortPatternsBy("count")); });
1087
969
  i0.ɵɵtext(17, " Count ");
1088
- i0.ɵɵelement(18, "i", 13);
970
+ i0.ɵɵelement(18, "i", 84);
1089
971
  i0.ɵɵelementEnd();
1090
- i0.ɵɵelementStart(19, "th", 220);
1091
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_Template_th_click_19_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("avgMs")); });
972
+ i0.ɵɵelementStart(19, "th", 195);
973
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_Template_th_click_19_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.sortPatternsBy("avgMs")); });
1092
974
  i0.ɵɵtext(20, " Avg (ms) ");
1093
- i0.ɵɵelement(21, "i", 13);
975
+ i0.ɵɵelement(21, "i", 84);
1094
976
  i0.ɵɵelementEnd();
1095
- i0.ɵɵelementStart(22, "th", 220);
1096
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_Template_th_click_22_listener() { i0.ɵɵrestoreView(_r29); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.sortPatternsBy("totalMs")); });
977
+ i0.ɵɵelementStart(22, "th", 195);
978
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_Template_th_click_22_listener() { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.sortPatternsBy("totalMs")); });
1097
979
  i0.ɵɵtext(23, " Total (ms) ");
1098
- i0.ɵɵelement(24, "i", 13);
980
+ i0.ɵɵelement(24, "i", 84);
1099
981
  i0.ɵɵelementEnd()()();
1100
982
  i0.ɵɵelementStart(25, "tbody");
1101
- i0.ɵɵrepeaterCreate(26, SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_For_27_Template, 19, 22, "tr", 221, _forTrack5);
983
+ i0.ɵɵrepeaterCreate(26, SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_For_27_Template, 19, 22, "tr", 196, _forTrack5);
1102
984
  i0.ɵɵelementEnd()()()();
1103
985
  } if (rf & 2) {
1104
- const ctx_r0 = i0.ɵɵnextContext(3);
986
+ const ctx_r1 = i0.ɵɵnextContext(3);
1105
987
  i0.ɵɵadvance(7);
1106
- i0.ɵɵclassMap(ctx_r0.getSortIcon("category"));
988
+ i0.ɵɵclassMap(ctx_r1.getSortIcon("category"));
1107
989
  i0.ɵɵadvance(3);
1108
- i0.ɵɵclassMap(ctx_r0.getSortIcon("operation"));
990
+ i0.ɵɵclassMap(ctx_r1.getSortIcon("operation"));
1109
991
  i0.ɵɵadvance(3);
1110
- i0.ɵɵclassMap(ctx_r0.getSortIcon("entity"));
992
+ i0.ɵɵclassMap(ctx_r1.getSortIcon("entity"));
1111
993
  i0.ɵɵadvance(5);
1112
- i0.ɵɵclassMap(ctx_r0.getSortIcon("count"));
994
+ i0.ɵɵclassMap(ctx_r1.getSortIcon("count"));
1113
995
  i0.ɵɵadvance(3);
1114
- i0.ɵɵclassMap(ctx_r0.getSortIcon("avgMs"));
996
+ i0.ɵɵclassMap(ctx_r1.getSortIcon("avgMs"));
1115
997
  i0.ɵɵadvance(3);
1116
- i0.ɵɵclassMap(ctx_r0.getSortIcon("totalMs"));
998
+ i0.ɵɵclassMap(ctx_r1.getSortIcon("totalMs"));
1117
999
  i0.ɵɵadvance(2);
1118
- i0.ɵɵrepeater(ctx_r0.filteredPatterns);
1000
+ i0.ɵɵrepeater(ctx_r1.filteredPatterns);
1119
1001
  } }
1120
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_11_Template(rf, ctx) { if (rf & 1) {
1121
- i0.ɵɵelementStart(0, "div", 57);
1122
- i0.ɵɵelement(1, "i", 214);
1002
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_11_Template(rf, ctx) { if (rf & 1) {
1003
+ i0.ɵɵelementStart(0, "div", 28);
1004
+ i0.ɵɵelement(1, "i", 189);
1123
1005
  i0.ɵɵelementStart(2, "p");
1124
1006
  i0.ɵɵtext(3, "No telemetry data yet");
1125
1007
  i0.ɵɵelementEnd();
1126
- i0.ɵɵelementStart(4, "span", 60);
1008
+ i0.ɵɵelementStart(4, "span", 31);
1127
1009
  i0.ɵɵtext(5, "Navigate around the app to generate performance data");
1128
1010
  i0.ɵɵelementEnd()();
1129
1011
  } }
1130
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_12_Template(rf, ctx) { if (rf & 1) {
1131
- i0.ɵɵelementStart(0, "div", 190);
1132
- i0.ɵɵelement(1, "i", 227);
1012
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_12_Template(rf, ctx) { if (rf & 1) {
1013
+ i0.ɵɵelementStart(0, "div", 165);
1014
+ i0.ɵɵelement(1, "i", 202);
1133
1015
  i0.ɵɵelementStart(2, "p");
1134
1016
  i0.ɵɵtext(3, "No patterns match your filter");
1135
1017
  i0.ɵɵelementEnd()();
1136
1018
  } }
1137
- function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Template(rf, ctx) { if (rf & 1) {
1019
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Template(rf, ctx) { if (rf & 1) {
1138
1020
  const _r25 = i0.ɵɵgetCurrentView();
1139
- i0.ɵɵelementStart(0, "div", 180)(1, "div", 181);
1140
- i0.ɵɵelement(2, "i", 182);
1141
- i0.ɵɵelementStart(3, "input", 215);
1142
- i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r0 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r0.searchQuery, $event) || (ctx_r0.searchQuery = $event); return i0.ɵɵresetView($event); });
1143
- i0.ɵɵlistener("ngModelChange", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r25); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onSearchChange()); });
1021
+ i0.ɵɵelementStart(0, "div", 155)(1, "div", 156);
1022
+ i0.ɵɵelement(2, "i", 157);
1023
+ i0.ɵɵelementStart(3, "input", 190);
1024
+ i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.searchQuery, $event) || (ctx_r1.searchQuery = $event); return i0.ɵɵresetView($event); });
1025
+ i0.ɵɵlistener("ngModelChange", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onSearchChange()); });
1144
1026
  i0.ɵɵelementEnd();
1145
- i0.ɵɵconditionalCreate(4, SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_4_Template, 2, 0, "button", 184);
1027
+ i0.ɵɵconditionalCreate(4, SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_4_Template, 2, 0, "button", 159);
1146
1028
  i0.ɵɵelementEnd();
1147
- i0.ɵɵelementStart(5, "div", 185)(6, "button", 186);
1148
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_50_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r25); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setCategoryFilter("all")); });
1029
+ i0.ɵɵelementStart(5, "div", 160)(6, "button", 161);
1030
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_50_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r25); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setCategoryFilter("all")); });
1149
1031
  i0.ɵɵtext(7, " All ");
1150
1032
  i0.ɵɵelementEnd();
1151
- i0.ɵɵrepeaterCreate(8, SystemDiagnosticsComponent_Conditional_52_Conditional_50_For_9_Template, 2, 3, "button", 187, _forTrack2);
1033
+ i0.ɵɵrepeaterCreate(8, SystemDiagnosticsComponent_Conditional_17_Conditional_50_For_9_Template, 2, 3, "button", 162, _forTrack2);
1152
1034
  i0.ɵɵelementEnd()();
1153
- i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_10_Template, 28, 12, "div", 216)(11, SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_11_Template, 6, 0, "div", 57)(12, SystemDiagnosticsComponent_Conditional_52_Conditional_50_Conditional_12_Template, 4, 0, "div", 190);
1035
+ i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_10_Template, 28, 12, "div", 191)(11, SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_11_Template, 6, 0, "div", 28)(12, SystemDiagnosticsComponent_Conditional_17_Conditional_50_Conditional_12_Template, 4, 0, "div", 165);
1154
1036
  } if (rf & 2) {
1155
- const ctx_r0 = i0.ɵɵnextContext(2);
1037
+ const ctx_r1 = i0.ɵɵnextContext(2);
1156
1038
  i0.ɵɵadvance(3);
1157
- i0.ɵɵtwoWayProperty("ngModel", ctx_r0.searchQuery);
1039
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.searchQuery);
1158
1040
  i0.ɵɵadvance();
1159
- i0.ɵɵconditional(ctx_r0.searchQuery ? 4 : -1);
1041
+ i0.ɵɵconditional(ctx_r1.searchQuery ? 4 : -1);
1160
1042
  i0.ɵɵadvance(2);
1161
- i0.ɵɵclassProp("active", ctx_r0.categoryFilter === "all");
1043
+ i0.ɵɵclassProp("active", ctx_r1.categoryFilter === "all");
1162
1044
  i0.ɵɵadvance(2);
1163
- i0.ɵɵrepeater(ctx_r0.categoriesWithData);
1045
+ i0.ɵɵrepeater(ctx_r1.categoriesWithData);
1164
1046
  i0.ɵɵadvance(2);
1165
- i0.ɵɵconditional(ctx_r0.filteredPatterns.length > 0 ? 10 : ctx_r0.telemetryEnabled && ctx_r0.telemetryPatterns.length === 0 ? 11 : ctx_r0.searchQuery || ctx_r0.categoryFilter !== "all" ? 12 : -1);
1047
+ i0.ɵɵconditional(ctx_r1.filteredPatterns.length > 0 ? 10 : ctx_r1.telemetryEnabled && ctx_r1.telemetryPatterns.length === 0 ? 11 : ctx_r1.searchQuery || ctx_r1.categoryFilter !== "all" ? 12 : -1);
1166
1048
  } }
1167
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_9_Template(rf, ctx) { if (rf & 1) {
1168
- i0.ɵɵelementStart(0, "div", 237)(1, "span", 241);
1049
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_9_Template(rf, ctx) { if (rf & 1) {
1050
+ i0.ɵɵelementStart(0, "div", 212)(1, "span", 216);
1169
1051
  i0.ɵɵtext(2, "Entity:");
1170
1052
  i0.ɵɵelementEnd();
1171
- i0.ɵɵelementStart(3, "span", 242);
1053
+ i0.ɵɵelementStart(3, "span", 217);
1172
1054
  i0.ɵɵtext(4);
1173
1055
  i0.ɵɵelementEnd()();
1174
1056
  } if (rf & 2) {
@@ -1176,24 +1058,24 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_
1176
1058
  i0.ɵɵadvance(4);
1177
1059
  i0.ɵɵtextInterpolate(insight_r32.entityName);
1178
1060
  } }
1179
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1180
- i0.ɵɵelementStart(0, "div", 237)(1, "span", 241);
1061
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1062
+ i0.ɵɵelementStart(0, "div", 212)(1, "span", 216);
1181
1063
  i0.ɵɵtext(2, "Filter:");
1182
1064
  i0.ɵɵelementEnd();
1183
- i0.ɵɵelementStart(3, "code", 243);
1065
+ i0.ɵɵelementStart(3, "code", 218);
1184
1066
  i0.ɵɵtext(4);
1185
1067
  i0.ɵɵelementEnd()();
1186
1068
  } if (rf & 2) {
1187
1069
  const insight_r32 = i0.ɵɵnextContext().$implicit;
1188
- const ctx_r0 = i0.ɵɵnextContext(4);
1070
+ const ctx_r1 = i0.ɵɵnextContext(4);
1189
1071
  i0.ɵɵadvance(4);
1190
- i0.ɵɵtextInterpolate(ctx_r0.getInsightFilter(insight_r32));
1072
+ i0.ɵɵtextInterpolate(ctx_r1.getInsightFilter(insight_r32));
1191
1073
  } }
1192
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_5_Template(rf, ctx) { if (rf & 1) {
1193
- i0.ɵɵelementStart(0, "div", 247)(1, "span", 250);
1074
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_5_Template(rf, ctx) { if (rf & 1) {
1075
+ i0.ɵɵelementStart(0, "div", 222)(1, "span", 225);
1194
1076
  i0.ɵɵtext(2);
1195
1077
  i0.ɵɵelementEnd();
1196
- i0.ɵɵelementStart(3, "span", 251);
1078
+ i0.ɵɵelementStart(3, "span", 226);
1197
1079
  i0.ɵɵtext(4);
1198
1080
  i0.ɵɵelementEnd()();
1199
1081
  } if (rf & 2) {
@@ -1203,8 +1085,8 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_
1203
1085
  i0.ɵɵadvance(2);
1204
1086
  i0.ɵɵtextInterpolate(param_r33.value);
1205
1087
  } }
1206
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1207
- i0.ɵɵelementStart(0, "span", 254);
1088
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1089
+ i0.ɵɵelementStart(0, "span", 229);
1208
1090
  i0.ɵɵtext(1);
1209
1091
  i0.ɵɵelementEnd();
1210
1092
  } if (rf & 2) {
@@ -1212,32 +1094,32 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_
1212
1094
  i0.ɵɵadvance();
1213
1095
  i0.ɵɵtextInterpolate(event_r34.entityName);
1214
1096
  } }
1215
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1216
- i0.ɵɵelementStart(0, "span", 255);
1097
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1098
+ i0.ɵɵelementStart(0, "span", 230);
1217
1099
  i0.ɵɵtext(1);
1218
1100
  i0.ɵɵelementEnd();
1219
1101
  } if (rf & 2) {
1220
1102
  const event_r34 = i0.ɵɵnextContext().$implicit;
1221
- const ctx_r0 = i0.ɵɵnextContext(7);
1103
+ const ctx_r1 = i0.ɵɵnextContext(7);
1222
1104
  i0.ɵɵadvance();
1223
- i0.ɵɵtextInterpolate(ctx_r0.truncateString(event_r34.filter, 40));
1105
+ i0.ɵɵtextInterpolate(ctx_r1.truncateString(event_r34.filter, 40));
1224
1106
  } }
1225
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Template(rf, ctx) { if (rf & 1) {
1226
- i0.ɵɵelementStart(0, "div", 249)(1, "span", 252);
1107
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Template(rf, ctx) { if (rf & 1) {
1108
+ i0.ɵɵelementStart(0, "div", 224)(1, "span", 227);
1227
1109
  i0.ɵɵtext(2);
1228
1110
  i0.ɵɵelementEnd();
1229
- i0.ɵɵelementStart(3, "span", 253);
1111
+ i0.ɵɵelementStart(3, "span", 228);
1230
1112
  i0.ɵɵtext(4);
1231
1113
  i0.ɵɵpipe(5, "number");
1232
1114
  i0.ɵɵelementEnd();
1233
- i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_6_Template, 2, 1, "span", 254);
1234
- i0.ɵɵconditionalCreate(7, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_7_Template, 2, 1, "span", 255);
1115
+ i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_6_Template, 2, 1, "span", 229);
1116
+ i0.ɵɵconditionalCreate(7, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Conditional_7_Template, 2, 1, "span", 230);
1235
1117
  i0.ɵɵelementEnd();
1236
1118
  } if (rf & 2) {
1237
1119
  const event_r34 = ctx.$implicit;
1238
- const ctx_r0 = i0.ɵɵnextContext(7);
1120
+ const ctx_r1 = i0.ɵɵnextContext(7);
1239
1121
  i0.ɵɵadvance(2);
1240
- i0.ɵɵtextInterpolate(ctx_r0.formatTimestamp(event_r34.timestamp));
1122
+ i0.ɵɵtextInterpolate(ctx_r1.formatTimestamp(event_r34.timestamp));
1241
1123
  i0.ɵɵadvance(2);
1242
1124
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(5, 4, event_r34.elapsedMs, "1.0-0"), "ms");
1243
1125
  i0.ɵɵadvance(2);
@@ -1245,71 +1127,71 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_
1245
1127
  i0.ɵɵadvance();
1246
1128
  i0.ɵɵconditional(event_r34.filter ? 7 : -1);
1247
1129
  } }
1248
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1249
- i0.ɵɵelementStart(0, "div", 244)(1, "div", 245);
1130
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1131
+ i0.ɵɵelementStart(0, "div", 219)(1, "div", 220);
1250
1132
  i0.ɵɵtext(2, "Full Parameters");
1251
1133
  i0.ɵɵelementEnd();
1252
- i0.ɵɵelementStart(3, "div", 246);
1253
- i0.ɵɵrepeaterCreate(4, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_5_Template, 5, 2, "div", 247, _forTrack6);
1134
+ i0.ɵɵelementStart(3, "div", 221);
1135
+ i0.ɵɵrepeaterCreate(4, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_5_Template, 5, 2, "div", 222, _forTrack6);
1254
1136
  i0.ɵɵelementEnd()();
1255
- i0.ɵɵelementStart(6, "div", 244)(7, "div", 245);
1137
+ i0.ɵɵelementStart(6, "div", 219)(7, "div", 220);
1256
1138
  i0.ɵɵtext(8);
1257
1139
  i0.ɵɵelementEnd();
1258
- i0.ɵɵelementStart(9, "div", 248);
1259
- i0.ɵɵrepeaterCreate(10, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Template, 8, 7, "div", 249, _forTrack3);
1140
+ i0.ɵɵelementStart(9, "div", 223);
1141
+ i0.ɵɵrepeaterCreate(10, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_For_11_Template, 8, 7, "div", 224, _forTrack3);
1260
1142
  i0.ɵɵelementEnd()();
1261
1143
  } if (rf & 2) {
1262
1144
  const insight_r32 = i0.ɵɵnextContext(2).$implicit;
1263
- const ctx_r0 = i0.ɵɵnextContext(4);
1145
+ const ctx_r1 = i0.ɵɵnextContext(4);
1264
1146
  i0.ɵɵadvance(4);
1265
- i0.ɵɵrepeater(ctx_r0.getEventParams(insight_r32.relatedEvents[0]));
1147
+ i0.ɵɵrepeater(ctx_r1.getEventParams(insight_r32.relatedEvents[0]));
1266
1148
  i0.ɵɵadvance(4);
1267
1149
  i0.ɵɵtextInterpolate1("Related Calls (", insight_r32.relatedEvents.length, ")");
1268
1150
  i0.ɵɵadvance(2);
1269
1151
  i0.ɵɵrepeater(insight_r32.relatedEvents);
1270
1152
  } }
1271
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Template(rf, ctx) { if (rf & 1) {
1272
- i0.ɵɵelementStart(0, "div", 240);
1273
- i0.ɵɵconditionalCreate(1, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_Template, 12, 1);
1153
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Template(rf, ctx) { if (rf & 1) {
1154
+ i0.ɵɵelementStart(0, "div", 215);
1155
+ i0.ɵɵconditionalCreate(1, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Conditional_1_Template, 12, 1);
1274
1156
  i0.ɵɵelementEnd();
1275
1157
  } if (rf & 2) {
1276
1158
  const insight_r32 = i0.ɵɵnextContext().$implicit;
1277
1159
  i0.ɵɵadvance();
1278
1160
  i0.ɵɵconditional(insight_r32.relatedEvents.length > 0 ? 1 : -1);
1279
1161
  } }
1280
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Template(rf, ctx) { if (rf & 1) {
1162
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Template(rf, ctx) { if (rf & 1) {
1281
1163
  const _r31 = i0.ɵɵgetCurrentView();
1282
- i0.ɵɵelementStart(0, "div", 231)(1, "div", 232);
1283
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Template_div_click_1_listener() { const insight_r32 = i0.ɵɵrestoreView(_r31).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.toggleInsightExpanded(insight_r32)); });
1284
- i0.ɵɵelement(2, "i", 13);
1285
- i0.ɵɵelementStart(3, "span", 233);
1164
+ i0.ɵɵelementStart(0, "div", 206)(1, "div", 207);
1165
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Template_div_click_1_listener() { const insight_r32 = i0.ɵɵrestoreView(_r31).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.toggleInsightExpanded(insight_r32)); });
1166
+ i0.ɵɵelement(2, "i", 84);
1167
+ i0.ɵɵelementStart(3, "span", 208);
1286
1168
  i0.ɵɵtext(4);
1287
1169
  i0.ɵɵelementEnd();
1288
- i0.ɵɵelementStart(5, "span", 234);
1170
+ i0.ɵɵelementStart(5, "span", 209);
1289
1171
  i0.ɵɵtext(6);
1290
1172
  i0.ɵɵelementEnd();
1291
- i0.ɵɵelement(7, "i", 235);
1173
+ i0.ɵɵelement(7, "i", 210);
1292
1174
  i0.ɵɵelementEnd();
1293
- i0.ɵɵelementStart(8, "div", 236);
1294
- i0.ɵɵconditionalCreate(9, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_9_Template, 5, 1, "div", 237);
1295
- i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_10_Template, 5, 1, "div", 237);
1175
+ i0.ɵɵelementStart(8, "div", 211);
1176
+ i0.ɵɵconditionalCreate(9, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_9_Template, 5, 1, "div", 212);
1177
+ i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_10_Template, 5, 1, "div", 212);
1296
1178
  i0.ɵɵelementEnd();
1297
- i0.ɵɵelementStart(11, "div", 238);
1179
+ i0.ɵɵelementStart(11, "div", 213);
1298
1180
  i0.ɵɵtext(12);
1299
1181
  i0.ɵɵelementEnd();
1300
- i0.ɵɵelementStart(13, "div", 239);
1301
- i0.ɵɵelement(14, "i", 74);
1182
+ i0.ɵɵelementStart(13, "div", 214);
1183
+ i0.ɵɵelement(14, "i", 46);
1302
1184
  i0.ɵɵtext(15);
1303
1185
  i0.ɵɵelementEnd();
1304
- i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Conditional_16_Template, 2, 1, "div", 240);
1186
+ i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Conditional_16_Template, 2, 1, "div", 215);
1305
1187
  i0.ɵɵelementEnd();
1306
1188
  } if (rf & 2) {
1307
1189
  const insight_r32 = ctx.$implicit;
1308
- const ctx_r0 = i0.ɵɵnextContext(4);
1309
- i0.ɵɵclassMap(ctx_r0.getSeverityClass(insight_r32.severity));
1190
+ const ctx_r1 = i0.ɵɵnextContext(4);
1191
+ i0.ɵɵclassMap(ctx_r1.getSeverityClass(insight_r32.severity));
1310
1192
  i0.ɵɵclassProp("expanded", insight_r32.expanded);
1311
1193
  i0.ɵɵadvance(2);
1312
- i0.ɵɵclassMap(ctx_r0.getSeverityIcon(insight_r32.severity));
1194
+ i0.ɵɵclassMap(ctx_r1.getSeverityIcon(insight_r32.severity));
1313
1195
  i0.ɵɵadvance(2);
1314
1196
  i0.ɵɵtextInterpolate(insight_r32.title);
1315
1197
  i0.ɵɵadvance(2);
@@ -1319,7 +1201,7 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_
1319
1201
  i0.ɵɵadvance(2);
1320
1202
  i0.ɵɵconditional(insight_r32.entityName ? 9 : -1);
1321
1203
  i0.ɵɵadvance();
1322
- i0.ɵɵconditional(ctx_r0.getInsightFilter(insight_r32) ? 10 : -1);
1204
+ i0.ɵɵconditional(ctx_r1.getInsightFilter(insight_r32) ? 10 : -1);
1323
1205
  i0.ɵɵadvance(2);
1324
1206
  i0.ɵɵtextInterpolate(insight_r32.message);
1325
1207
  i0.ɵɵadvance(3);
@@ -1327,175 +1209,175 @@ function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_
1327
1209
  i0.ɵɵadvance();
1328
1210
  i0.ɵɵconditional(insight_r32.expanded ? 16 : -1);
1329
1211
  } }
1330
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1331
- i0.ɵɵelementStart(0, "div", 228)(1, "div", 229);
1332
- i0.ɵɵrepeaterCreate(2, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_For_3_Template, 17, 17, "div", 230, _forTrack3);
1212
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1213
+ i0.ɵɵelementStart(0, "div", 203)(1, "div", 204);
1214
+ i0.ɵɵrepeaterCreate(2, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_For_3_Template, 17, 17, "div", 205, _forTrack3);
1333
1215
  i0.ɵɵelementEnd()();
1334
1216
  } if (rf & 2) {
1335
- const ctx_r0 = i0.ɵɵnextContext(3);
1217
+ const ctx_r1 = i0.ɵɵnextContext(3);
1336
1218
  i0.ɵɵadvance(2);
1337
- i0.ɵɵrepeater(ctx_r0.telemetryInsights);
1219
+ i0.ɵɵrepeater(ctx_r1.telemetryInsights);
1338
1220
  } }
1339
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1340
- i0.ɵɵelementStart(0, "div", 57);
1341
- i0.ɵɵelement(1, "i", 256);
1221
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1222
+ i0.ɵɵelementStart(0, "div", 28);
1223
+ i0.ɵɵelement(1, "i", 231);
1342
1224
  i0.ɵɵelementStart(2, "p");
1343
1225
  i0.ɵɵtext(3, "No optimization insights");
1344
1226
  i0.ɵɵelementEnd();
1345
- i0.ɵɵelementStart(4, "span", 60);
1227
+ i0.ɵɵelementStart(4, "span", 31);
1346
1228
  i0.ɵɵtext(5, "Insights will appear when potential optimizations are detected");
1347
1229
  i0.ɵɵelementEnd()();
1348
1230
  } }
1349
- function SystemDiagnosticsComponent_Conditional_52_Conditional_51_Template(rf, ctx) { if (rf & 1) {
1350
- i0.ɵɵconditionalCreate(0, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_0_Template, 4, 0, "div", 228)(1, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Conditional_1_Template, 6, 0, "div", 57);
1231
+ function SystemDiagnosticsComponent_Conditional_17_Conditional_51_Template(rf, ctx) { if (rf & 1) {
1232
+ i0.ɵɵconditionalCreate(0, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_0_Template, 4, 0, "div", 203)(1, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Conditional_1_Template, 6, 0, "div", 28);
1351
1233
  } if (rf & 2) {
1352
- const ctx_r0 = i0.ɵɵnextContext(2);
1353
- i0.ɵɵconditional(ctx_r0.telemetryInsights.length > 0 ? 0 : 1);
1234
+ const ctx_r1 = i0.ɵɵnextContext(2);
1235
+ i0.ɵɵconditional(ctx_r1.telemetryInsights.length > 0 ? 0 : 1);
1354
1236
  } }
1355
- function SystemDiagnosticsComponent_Conditional_52_Template(rf, ctx) { if (rf & 1) {
1237
+ function SystemDiagnosticsComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
1356
1238
  const _r7 = i0.ɵɵgetCurrentView();
1357
- i0.ɵɵelementStart(0, "div", 30)(1, "div", 52)(2, "h3");
1358
- i0.ɵɵelement(3, "i", 26);
1239
+ i0.ɵɵelementStart(0, "div", 16)(1, "div", 22)(2, "h3");
1240
+ i0.ɵɵelement(3, "i", 63);
1359
1241
  i0.ɵɵtext(4, " Performance Telemetry ");
1360
1242
  i0.ɵɵelementEnd();
1361
- i0.ɵɵelementStart(5, "div", 53)(6, "div", 90)(7, "button", 91);
1362
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setTelemetrySource("client")); });
1363
- i0.ɵɵelement(8, "i", 92);
1243
+ i0.ɵɵelementStart(5, "div", 24)(6, "div", 64)(7, "button", 65);
1244
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setTelemetrySource("client")); });
1245
+ i0.ɵɵelement(8, "i", 66);
1364
1246
  i0.ɵɵtext(9, " Client ");
1365
1247
  i0.ɵɵelementEnd();
1366
- i0.ɵɵelementStart(10, "button", 91);
1367
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setTelemetrySource("server")); });
1368
- i0.ɵɵelement(11, "i", 93);
1248
+ i0.ɵɵelementStart(10, "button", 65);
1249
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setTelemetrySource("server")); });
1250
+ i0.ɵɵelement(11, "i", 67);
1369
1251
  i0.ɵɵtext(12, " Server ");
1370
1252
  i0.ɵɵelementEnd()();
1371
- i0.ɵɵelement(13, "span", 94);
1372
- i0.ɵɵconditionalCreate(14, SystemDiagnosticsComponent_Conditional_52_Conditional_14_Template, 6, 8)(15, SystemDiagnosticsComponent_Conditional_52_Conditional_15_Template, 5, 9, "span", 95);
1373
- i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_52_Conditional_16_Template, 2, 0, "span", 96);
1253
+ i0.ɵɵelement(13, "span", 68);
1254
+ i0.ɵɵconditionalCreate(14, SystemDiagnosticsComponent_Conditional_17_Conditional_14_Template, 6, 8)(15, SystemDiagnosticsComponent_Conditional_17_Conditional_15_Template, 5, 9, "span", 69);
1255
+ i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_17_Conditional_16_Template, 2, 0, "span", 70);
1374
1256
  i0.ɵɵelementEnd()();
1375
- i0.ɵɵconditionalCreate(17, SystemDiagnosticsComponent_Conditional_52_Conditional_17_Template, 5, 1, "div", 97);
1376
- i0.ɵɵelementStart(18, "div", 98)(19, "button", 99);
1377
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setPerfTab("monitor")); });
1378
- i0.ɵɵelement(20, "i", 100);
1257
+ i0.ɵɵconditionalCreate(17, SystemDiagnosticsComponent_Conditional_17_Conditional_17_Template, 5, 1, "div", 71);
1258
+ i0.ɵɵelementStart(18, "div", 72)(19, "button", 73);
1259
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setPerfTab("monitor")); });
1260
+ i0.ɵɵelement(20, "i", 74);
1379
1261
  i0.ɵɵelementStart(21, "span");
1380
1262
  i0.ɵɵtext(22, "Monitor");
1381
1263
  i0.ɵɵelementEnd()();
1382
- i0.ɵɵelementStart(23, "button", 99);
1383
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Template_button_click_23_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setPerfTab("overview")); });
1384
- i0.ɵɵelement(24, "i", 101);
1264
+ i0.ɵɵelementStart(23, "button", 73);
1265
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Template_button_click_23_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setPerfTab("overview")); });
1266
+ i0.ɵɵelement(24, "i", 75);
1385
1267
  i0.ɵɵelementStart(25, "span");
1386
1268
  i0.ɵɵtext(26, "Overview");
1387
1269
  i0.ɵɵelementEnd();
1388
- i0.ɵɵconditionalCreate(27, SystemDiagnosticsComponent_Conditional_52_Conditional_27_Template, 2, 1, "span", 102);
1270
+ i0.ɵɵconditionalCreate(27, SystemDiagnosticsComponent_Conditional_17_Conditional_27_Template, 2, 1, "span", 76);
1389
1271
  i0.ɵɵelementEnd();
1390
- i0.ɵɵelementStart(28, "button", 99);
1391
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setPerfTab("events")); });
1392
- i0.ɵɵelement(29, "i", 103);
1272
+ i0.ɵɵelementStart(28, "button", 73);
1273
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setPerfTab("events")); });
1274
+ i0.ɵɵelement(29, "i", 77);
1393
1275
  i0.ɵɵelementStart(30, "span");
1394
1276
  i0.ɵɵtext(31, "Events");
1395
1277
  i0.ɵɵelementEnd();
1396
- i0.ɵɵelementStart(32, "span", 104);
1278
+ i0.ɵɵelementStart(32, "span", 78);
1397
1279
  i0.ɵɵtext(33);
1398
1280
  i0.ɵɵelementEnd()();
1399
- i0.ɵɵelementStart(34, "button", 99);
1400
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Template_button_click_34_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setPerfTab("patterns")); });
1401
- i0.ɵɵelement(35, "i", 105);
1281
+ i0.ɵɵelementStart(34, "button", 73);
1282
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Template_button_click_34_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setPerfTab("patterns")); });
1283
+ i0.ɵɵelement(35, "i", 79);
1402
1284
  i0.ɵɵelementStart(36, "span");
1403
1285
  i0.ɵɵtext(37, "Patterns");
1404
1286
  i0.ɵɵelementEnd();
1405
- i0.ɵɵelementStart(38, "span", 104);
1287
+ i0.ɵɵelementStart(38, "span", 78);
1406
1288
  i0.ɵɵtext(39);
1407
1289
  i0.ɵɵelementEnd()();
1408
- i0.ɵɵelementStart(40, "button", 99);
1409
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_52_Template_button_click_40_listener() { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.setPerfTab("insights")); });
1410
- i0.ɵɵelement(41, "i", 83);
1290
+ i0.ɵɵelementStart(40, "button", 73);
1291
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_17_Template_button_click_40_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setPerfTab("insights")); });
1292
+ i0.ɵɵelement(41, "i", 56);
1411
1293
  i0.ɵɵelementStart(42, "span");
1412
1294
  i0.ɵɵtext(43, "Insights");
1413
1295
  i0.ɵɵelementEnd();
1414
- i0.ɵɵconditionalCreate(44, SystemDiagnosticsComponent_Conditional_52_Conditional_44_Template, 2, 1, "span", 106);
1296
+ i0.ɵɵconditionalCreate(44, SystemDiagnosticsComponent_Conditional_17_Conditional_44_Template, 2, 1, "span", 80);
1415
1297
  i0.ɵɵelementEnd()();
1416
- i0.ɵɵelementStart(45, "div", 56);
1417
- i0.ɵɵconditionalCreate(46, SystemDiagnosticsComponent_Conditional_52_Conditional_46_Template, 6, 0, "div", 107);
1418
- i0.ɵɵconditionalCreate(47, SystemDiagnosticsComponent_Conditional_52_Conditional_47_Template, 48, 9, "div", 108);
1419
- i0.ɵɵconditionalCreate(48, SystemDiagnosticsComponent_Conditional_52_Conditional_48_Template, 24, 6);
1420
- i0.ɵɵconditionalCreate(49, SystemDiagnosticsComponent_Conditional_52_Conditional_49_Template, 14, 5);
1421
- i0.ɵɵconditionalCreate(50, SystemDiagnosticsComponent_Conditional_52_Conditional_50_Template, 13, 5);
1422
- i0.ɵɵconditionalCreate(51, SystemDiagnosticsComponent_Conditional_52_Conditional_51_Template, 2, 1);
1298
+ i0.ɵɵelementStart(45, "div", 27);
1299
+ i0.ɵɵconditionalCreate(46, SystemDiagnosticsComponent_Conditional_17_Conditional_46_Template, 6, 0, "div", 81);
1300
+ i0.ɵɵconditionalCreate(47, SystemDiagnosticsComponent_Conditional_17_Conditional_47_Template, 48, 9, "div", 82);
1301
+ i0.ɵɵconditionalCreate(48, SystemDiagnosticsComponent_Conditional_17_Conditional_48_Template, 24, 6);
1302
+ i0.ɵɵconditionalCreate(49, SystemDiagnosticsComponent_Conditional_17_Conditional_49_Template, 14, 5);
1303
+ i0.ɵɵconditionalCreate(50, SystemDiagnosticsComponent_Conditional_17_Conditional_50_Template, 13, 5);
1304
+ i0.ɵɵconditionalCreate(51, SystemDiagnosticsComponent_Conditional_17_Conditional_51_Template, 2, 1);
1423
1305
  i0.ɵɵelementEnd()();
1424
1306
  } if (rf & 2) {
1425
- const ctx_r0 = i0.ɵɵnextContext();
1307
+ const ctx_r1 = i0.ɵɵnextContext();
1426
1308
  i0.ɵɵadvance(7);
1427
- i0.ɵɵclassProp("active", ctx_r0.telemetrySource === "client");
1309
+ i0.ɵɵclassProp("active", ctx_r1.telemetrySource === "client");
1428
1310
  i0.ɵɵadvance(3);
1429
- i0.ɵɵclassProp("active", ctx_r0.telemetrySource === "server");
1311
+ i0.ɵɵclassProp("active", ctx_r1.telemetrySource === "server");
1430
1312
  i0.ɵɵadvance(4);
1431
- i0.ɵɵconditional(ctx_r0.telemetrySource === "client" ? 14 : 15);
1313
+ i0.ɵɵconditional(ctx_r1.telemetrySource === "client" ? 14 : 15);
1432
1314
  i0.ɵɵadvance(2);
1433
- i0.ɵɵconditional(ctx_r0.serverTelemetryLoading ? 16 : -1);
1315
+ i0.ɵɵconditional(ctx_r1.serverTelemetryLoading ? 16 : -1);
1434
1316
  i0.ɵɵadvance();
1435
- i0.ɵɵconditional(ctx_r0.serverTelemetryError ? 17 : -1);
1317
+ i0.ɵɵconditional(ctx_r1.serverTelemetryError ? 17 : -1);
1436
1318
  i0.ɵɵadvance(2);
1437
- i0.ɵɵclassProp("active", ctx_r0.perfTab === "monitor");
1319
+ i0.ɵɵclassProp("active", ctx_r1.perfTab === "monitor");
1438
1320
  i0.ɵɵadvance(4);
1439
- i0.ɵɵclassProp("active", ctx_r0.perfTab === "overview");
1321
+ i0.ɵɵclassProp("active", ctx_r1.perfTab === "overview");
1440
1322
  i0.ɵɵadvance(4);
1441
- i0.ɵɵconditional(ctx_r0.slowQueries.length > 0 ? 27 : -1);
1323
+ i0.ɵɵconditional(ctx_r1.slowQueries.length > 0 ? 27 : -1);
1442
1324
  i0.ɵɵadvance();
1443
- i0.ɵɵclassProp("active", ctx_r0.perfTab === "events");
1325
+ i0.ɵɵclassProp("active", ctx_r1.perfTab === "events");
1444
1326
  i0.ɵɵadvance(5);
1445
- i0.ɵɵtextInterpolate((ctx_r0.telemetrySummary == null ? null : ctx_r0.telemetrySummary.totalEvents) || 0);
1327
+ i0.ɵɵtextInterpolate((ctx_r1.telemetrySummary == null ? null : ctx_r1.telemetrySummary.totalEvents) || 0);
1446
1328
  i0.ɵɵadvance();
1447
- i0.ɵɵclassProp("active", ctx_r0.perfTab === "patterns");
1329
+ i0.ɵɵclassProp("active", ctx_r1.perfTab === "patterns");
1448
1330
  i0.ɵɵadvance(5);
1449
- i0.ɵɵtextInterpolate((ctx_r0.telemetrySummary == null ? null : ctx_r0.telemetrySummary.totalPatterns) || 0);
1331
+ i0.ɵɵtextInterpolate((ctx_r1.telemetrySummary == null ? null : ctx_r1.telemetrySummary.totalPatterns) || 0);
1450
1332
  i0.ɵɵadvance();
1451
- i0.ɵɵclassProp("active", ctx_r0.perfTab === "insights");
1333
+ i0.ɵɵclassProp("active", ctx_r1.perfTab === "insights");
1452
1334
  i0.ɵɵadvance(4);
1453
- i0.ɵɵconditional(ctx_r0.telemetryInsights.length > 0 ? 44 : -1);
1335
+ i0.ɵɵconditional(ctx_r1.telemetryInsights.length > 0 ? 44 : -1);
1454
1336
  i0.ɵɵadvance(2);
1455
- i0.ɵɵconditional(!ctx_r0.telemetryEnabled ? 46 : -1);
1337
+ i0.ɵɵconditional(!ctx_r1.telemetryEnabled ? 46 : -1);
1456
1338
  i0.ɵɵadvance();
1457
- i0.ɵɵconditional(ctx_r0.perfTab === "monitor" ? 47 : -1);
1339
+ i0.ɵɵconditional(ctx_r1.perfTab === "monitor" ? 47 : -1);
1458
1340
  i0.ɵɵadvance();
1459
- i0.ɵɵconditional(ctx_r0.perfTab === "overview" ? 48 : -1);
1341
+ i0.ɵɵconditional(ctx_r1.perfTab === "overview" ? 48 : -1);
1460
1342
  i0.ɵɵadvance();
1461
- i0.ɵɵconditional(ctx_r0.perfTab === "events" ? 49 : -1);
1343
+ i0.ɵɵconditional(ctx_r1.perfTab === "events" ? 49 : -1);
1462
1344
  i0.ɵɵadvance();
1463
- i0.ɵɵconditional(ctx_r0.perfTab === "patterns" ? 50 : -1);
1345
+ i0.ɵɵconditional(ctx_r1.perfTab === "patterns" ? 50 : -1);
1464
1346
  i0.ɵɵadvance();
1465
- i0.ɵɵconditional(ctx_r0.perfTab === "insights" ? 51 : -1);
1347
+ i0.ɵɵconditional(ctx_r1.perfTab === "insights" ? 51 : -1);
1466
1348
  } }
1467
- function SystemDiagnosticsComponent_Conditional_53_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1468
- i0.ɵɵelementStart(0, "div", 107);
1469
- i0.ɵɵelement(1, "i", 114);
1349
+ function SystemDiagnosticsComponent_Conditional_18_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1350
+ i0.ɵɵelementStart(0, "div", 81);
1351
+ i0.ɵɵelement(1, "i", 89);
1470
1352
  i0.ɵɵelementStart(2, "div")(3, "strong");
1471
1353
  i0.ɵɵtext(4, "Cache not initialized.");
1472
1354
  i0.ɵɵelementEnd();
1473
1355
  i0.ɵɵtext(5, " The LocalCacheManager requires initialization with a storage provider during app startup. ");
1474
1356
  i0.ɵɵelementEnd()();
1475
1357
  } }
1476
- function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_For_32_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1477
- i0.ɵɵelementStart(0, "code", 275);
1358
+ function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_For_32_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1359
+ i0.ɵɵelementStart(0, "code", 251);
1478
1360
  i0.ɵɵtext(1);
1479
1361
  i0.ɵɵelementEnd();
1480
1362
  } if (rf & 2) {
1481
1363
  const entry_r39 = i0.ɵɵnextContext().$implicit;
1482
- const ctx_r0 = i0.ɵɵnextContext(4);
1364
+ const ctx_r1 = i0.ɵɵnextContext(4);
1483
1365
  i0.ɵɵadvance();
1484
- i0.ɵɵtextInterpolate(ctx_r0.truncateString(entry_r39.fingerprint, 20));
1366
+ i0.ɵɵtextInterpolate(ctx_r1.truncateString(entry_r39.fingerprint, 20));
1485
1367
  } }
1486
- function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_For_32_Template(rf, ctx) { if (rf & 1) {
1368
+ function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_For_32_Template(rf, ctx) { if (rf & 1) {
1487
1369
  const _r38 = i0.ɵɵgetCurrentView();
1488
- i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span", 273);
1370
+ i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span", 249);
1489
1371
  i0.ɵɵtext(3);
1490
1372
  i0.ɵɵelementEnd()();
1491
- i0.ɵɵelementStart(4, "td", 274);
1373
+ i0.ɵɵelementStart(4, "td", 250);
1492
1374
  i0.ɵɵtext(5);
1493
- i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_For_32_Conditional_6_Template, 2, 1, "code", 275);
1375
+ i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_For_32_Conditional_6_Template, 2, 1, "code", 251);
1494
1376
  i0.ɵɵelementEnd();
1495
- i0.ɵɵelementStart(7, "td", 81);
1377
+ i0.ɵɵelementStart(7, "td", 54);
1496
1378
  i0.ɵɵtext(8);
1497
1379
  i0.ɵɵelementEnd();
1498
- i0.ɵɵelementStart(9, "td", 81);
1380
+ i0.ɵɵelementStart(9, "td", 54);
1499
1381
  i0.ɵɵtext(10);
1500
1382
  i0.ɵɵelementEnd();
1501
1383
  i0.ɵɵelementStart(11, "td");
@@ -1504,13 +1386,13 @@ function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58
1504
1386
  i0.ɵɵelementStart(13, "td");
1505
1387
  i0.ɵɵtext(14);
1506
1388
  i0.ɵɵelementEnd();
1507
- i0.ɵɵelementStart(15, "td")(16, "button", 276);
1508
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_For_32_Template_button_click_16_listener() { const entry_r39 = i0.ɵɵrestoreView(_r38).$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.invalidateCacheEntry(entry_r39)); });
1509
- i0.ɵɵelement(17, "i", 116);
1389
+ i0.ɵɵelementStart(15, "td")(16, "button", 252);
1390
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_For_32_Template_button_click_16_listener() { const entry_r39 = i0.ɵɵrestoreView(_r38).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.invalidateCacheEntry(entry_r39)); });
1391
+ i0.ɵɵelement(17, "i", 91);
1510
1392
  i0.ɵɵelementEnd()()();
1511
1393
  } if (rf & 2) {
1512
1394
  const entry_r39 = ctx.$implicit;
1513
- const ctx_r0 = i0.ɵɵnextContext(4);
1395
+ const ctx_r1 = i0.ɵɵnextContext(4);
1514
1396
  i0.ɵɵadvance(2);
1515
1397
  i0.ɵɵclassMap("type-" + entry_r39.type);
1516
1398
  i0.ɵɵadvance();
@@ -1520,54 +1402,54 @@ function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58
1520
1402
  i0.ɵɵadvance();
1521
1403
  i0.ɵɵconditional(entry_r39.fingerprint ? 6 : -1);
1522
1404
  i0.ɵɵadvance(2);
1523
- i0.ɵɵtextInterpolate(ctx_r0.formatBytes(entry_r39.sizeBytes));
1405
+ i0.ɵɵtextInterpolate(ctx_r1.formatBytes(entry_r39.sizeBytes));
1524
1406
  i0.ɵɵadvance(2);
1525
1407
  i0.ɵɵtextInterpolate(entry_r39.accessCount);
1526
1408
  i0.ɵɵadvance(2);
1527
- i0.ɵɵtextInterpolate(ctx_r0.formatCacheTimestamp(entry_r39.cachedAt));
1409
+ i0.ɵɵtextInterpolate(ctx_r1.formatCacheTimestamp(entry_r39.cachedAt));
1528
1410
  i0.ɵɵadvance(2);
1529
- i0.ɵɵtextInterpolate(ctx_r0.formatCacheTimestamp(entry_r39.lastAccessedAt));
1411
+ i0.ɵɵtextInterpolate(ctx_r1.formatCacheTimestamp(entry_r39.lastAccessedAt));
1530
1412
  } }
1531
- function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_Conditional_33_Template(rf, ctx) { if (rf & 1) {
1532
- i0.ɵɵelementStart(0, "div", 272);
1413
+ function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_Conditional_33_Template(rf, ctx) { if (rf & 1) {
1414
+ i0.ɵɵelementStart(0, "div", 248);
1533
1415
  i0.ɵɵtext(1);
1534
1416
  i0.ɵɵelementEnd();
1535
1417
  } if (rf & 2) {
1536
- const ctx_r0 = i0.ɵɵnextContext(4);
1418
+ const ctx_r1 = i0.ɵɵnextContext(4);
1537
1419
  i0.ɵɵadvance();
1538
- i0.ɵɵtextInterpolate1(" Showing 50 of ", ctx_r0.filteredCacheEntries.length, " entries ");
1420
+ i0.ɵɵtextInterpolate1(" Showing 50 of ", ctx_r1.filteredCacheEntries.length, " entries ");
1539
1421
  } }
1540
- function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_Template(rf, ctx) { if (rf & 1) {
1422
+ function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_Template(rf, ctx) { if (rf & 1) {
1541
1423
  const _r37 = i0.ɵɵgetCurrentView();
1542
- i0.ɵɵelementStart(0, "div", 267)(1, "div", 268)(2, "h4");
1424
+ i0.ɵɵelementStart(0, "div", 243)(1, "div", 244)(2, "h4");
1543
1425
  i0.ɵɵtext(3, "Cache Entries");
1544
1426
  i0.ɵɵelementEnd();
1545
- i0.ɵɵelementStart(4, "div", 269)(5, "button", 186);
1546
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r37); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("all")); });
1427
+ i0.ɵɵelementStart(4, "div", 245)(5, "button", 161);
1428
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r37); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setCacheTypeFilter("all")); });
1547
1429
  i0.ɵɵtext(6, "All");
1548
1430
  i0.ɵɵelementEnd();
1549
- i0.ɵɵelementStart(7, "button", 186);
1550
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r37); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("dataset")); });
1431
+ i0.ɵɵelementStart(7, "button", 161);
1432
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r37); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setCacheTypeFilter("dataset")); });
1551
1433
  i0.ɵɵtext(8, "Datasets");
1552
1434
  i0.ɵɵelementEnd();
1553
- i0.ɵɵelementStart(9, "button", 186);
1554
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r37); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("runview")); });
1435
+ i0.ɵɵelementStart(9, "button", 161);
1436
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r37); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setCacheTypeFilter("runview")); });
1555
1437
  i0.ɵɵtext(10, "RunViews");
1556
1438
  i0.ɵɵelementEnd();
1557
- i0.ɵɵelementStart(11, "button", 186);
1558
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r37); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("runquery")); });
1439
+ i0.ɵɵelementStart(11, "button", 161);
1440
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r37); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setCacheTypeFilter("runquery")); });
1559
1441
  i0.ɵɵtext(12, "RunQueries");
1560
1442
  i0.ɵɵelementEnd()()();
1561
- i0.ɵɵelementStart(13, "div", 270)(14, "table", 271)(15, "thead")(16, "tr")(17, "th");
1443
+ i0.ɵɵelementStart(13, "div", 246)(14, "table", 247)(15, "thead")(16, "tr")(17, "th");
1562
1444
  i0.ɵɵtext(18, "Type");
1563
1445
  i0.ɵɵelementEnd();
1564
1446
  i0.ɵɵelementStart(19, "th");
1565
1447
  i0.ɵɵtext(20, "Name");
1566
1448
  i0.ɵɵelementEnd();
1567
- i0.ɵɵelementStart(21, "th", 81);
1449
+ i0.ɵɵelementStart(21, "th", 54);
1568
1450
  i0.ɵɵtext(22, "Size");
1569
1451
  i0.ɵɵelementEnd();
1570
- i0.ɵɵelementStart(23, "th", 81);
1452
+ i0.ɵɵelementStart(23, "th", 54);
1571
1453
  i0.ɵɵtext(24, "Hits");
1572
1454
  i0.ɵɵelementEnd();
1573
1455
  i0.ɵɵelementStart(25, "th");
@@ -1579,191 +1461,191 @@ function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58
1579
1461
  i0.ɵɵelement(29, "th");
1580
1462
  i0.ɵɵelementEnd()();
1581
1463
  i0.ɵɵelementStart(30, "tbody");
1582
- i0.ɵɵrepeaterCreate(31, SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_For_32_Template, 18, 9, "tr", null, _forTrack6);
1464
+ i0.ɵɵrepeaterCreate(31, SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_For_32_Template, 18, 9, "tr", null, _forTrack6);
1583
1465
  i0.ɵɵelementEnd()()();
1584
- i0.ɵɵconditionalCreate(33, SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_Conditional_33_Template, 2, 1, "div", 272);
1466
+ i0.ɵɵconditionalCreate(33, SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_Conditional_33_Template, 2, 1, "div", 248);
1585
1467
  i0.ɵɵelementEnd();
1586
1468
  } if (rf & 2) {
1587
- const ctx_r0 = i0.ɵɵnextContext(3);
1469
+ const ctx_r1 = i0.ɵɵnextContext(3);
1588
1470
  i0.ɵɵadvance(5);
1589
- i0.ɵɵclassProp("active", ctx_r0.cacheTypeFilter === "all");
1471
+ i0.ɵɵclassProp("active", ctx_r1.cacheTypeFilter === "all");
1590
1472
  i0.ɵɵadvance(2);
1591
- i0.ɵɵclassProp("active", ctx_r0.cacheTypeFilter === "dataset");
1473
+ i0.ɵɵclassProp("active", ctx_r1.cacheTypeFilter === "dataset");
1592
1474
  i0.ɵɵadvance(2);
1593
- i0.ɵɵclassProp("active", ctx_r0.cacheTypeFilter === "runview");
1475
+ i0.ɵɵclassProp("active", ctx_r1.cacheTypeFilter === "runview");
1594
1476
  i0.ɵɵadvance(2);
1595
- i0.ɵɵclassProp("active", ctx_r0.cacheTypeFilter === "runquery");
1477
+ i0.ɵɵclassProp("active", ctx_r1.cacheTypeFilter === "runquery");
1596
1478
  i0.ɵɵadvance(20);
1597
- i0.ɵɵrepeater(ctx_r0.filteredCacheEntries.slice(0, 50));
1479
+ i0.ɵɵrepeater(ctx_r1.filteredCacheEntries.slice(0, 50));
1598
1480
  i0.ɵɵadvance(2);
1599
- i0.ɵɵconditional(ctx_r0.filteredCacheEntries.length > 50 ? 33 : -1);
1481
+ i0.ɵɵconditional(ctx_r1.filteredCacheEntries.length > 50 ? 33 : -1);
1600
1482
  } }
1601
- function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_59_Template(rf, ctx) { if (rf & 1) {
1602
- i0.ɵɵelementStart(0, "div", 57);
1603
- i0.ɵɵelement(1, "i", 27);
1483
+ function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_59_Template(rf, ctx) { if (rf & 1) {
1484
+ i0.ɵɵelementStart(0, "div", 28);
1485
+ i0.ɵɵelement(1, "i", 232);
1604
1486
  i0.ɵɵelementStart(2, "p");
1605
1487
  i0.ɵɵtext(3, "No cached data");
1606
1488
  i0.ɵɵelementEnd();
1607
- i0.ɵɵelementStart(4, "span", 60);
1489
+ i0.ɵɵelementStart(4, "span", 31);
1608
1490
  i0.ɵɵtext(5, "Data will be cached as you use the application");
1609
1491
  i0.ɵɵelementEnd()();
1610
1492
  } }
1611
- function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Template(rf, ctx) { if (rf & 1) {
1493
+ function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Template(rf, ctx) { if (rf & 1) {
1612
1494
  const _r36 = i0.ɵɵgetCurrentView();
1613
- i0.ɵɵelementStart(0, "div", 257)(1, "div", 148)(2, "div", 149);
1495
+ i0.ɵɵelementStart(0, "div", 233)(1, "div", 123)(2, "div", 124);
1614
1496
  i0.ɵɵtext(3);
1615
1497
  i0.ɵɵelementEnd();
1616
- i0.ɵɵelementStart(4, "div", 150);
1498
+ i0.ɵɵelementStart(4, "div", 125);
1617
1499
  i0.ɵɵtext(5, "Total Entries");
1618
1500
  i0.ɵɵelementEnd()();
1619
- i0.ɵɵelementStart(6, "div", 148)(7, "div", 149);
1501
+ i0.ɵɵelementStart(6, "div", 123)(7, "div", 124);
1620
1502
  i0.ɵɵtext(8);
1621
1503
  i0.ɵɵelementEnd();
1622
- i0.ɵɵelementStart(9, "div", 150);
1504
+ i0.ɵɵelementStart(9, "div", 125);
1623
1505
  i0.ɵɵtext(10, "Total Size");
1624
1506
  i0.ɵɵelementEnd()();
1625
- i0.ɵɵelementStart(11, "div", 148)(12, "div", 149);
1507
+ i0.ɵɵelementStart(11, "div", 123)(12, "div", 124);
1626
1508
  i0.ɵɵtext(13);
1627
1509
  i0.ɵɵelementEnd();
1628
- i0.ɵɵelementStart(14, "div", 150);
1510
+ i0.ɵɵelementStart(14, "div", 125);
1629
1511
  i0.ɵɵtext(15, "Cache Hits");
1630
1512
  i0.ɵɵelementEnd()();
1631
- i0.ɵɵelementStart(16, "div", 148)(17, "div", 149);
1513
+ i0.ɵɵelementStart(16, "div", 123)(17, "div", 124);
1632
1514
  i0.ɵɵtext(18);
1633
1515
  i0.ɵɵelementEnd();
1634
- i0.ɵɵelementStart(19, "div", 150);
1516
+ i0.ɵɵelementStart(19, "div", 125);
1635
1517
  i0.ɵɵtext(20, "Cache Misses");
1636
1518
  i0.ɵɵelementEnd()();
1637
- i0.ɵɵelementStart(21, "div", 148)(22, "div", 149);
1519
+ i0.ɵɵelementStart(21, "div", 123)(22, "div", 124);
1638
1520
  i0.ɵɵtext(23);
1639
1521
  i0.ɵɵpipe(24, "number");
1640
1522
  i0.ɵɵelementEnd();
1641
- i0.ɵɵelementStart(25, "div", 150);
1523
+ i0.ɵɵelementStart(25, "div", 125);
1642
1524
  i0.ɵɵtext(26, "Hit Rate");
1643
1525
  i0.ɵɵelementEnd()()();
1644
- i0.ɵɵelementStart(27, "div", 258)(28, "h4");
1526
+ i0.ɵɵelementStart(27, "div", 234)(28, "h4");
1645
1527
  i0.ɵɵtext(29, "By Type");
1646
1528
  i0.ɵɵelementEnd();
1647
- i0.ɵɵelementStart(30, "div", 259)(31, "div", 260);
1648
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Template_div_click_31_listener() { i0.ɵɵrestoreView(_r36); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("dataset")); });
1649
- i0.ɵɵelementStart(32, "span", 261);
1650
- i0.ɵɵelement(33, "i", 70);
1529
+ i0.ɵɵelementStart(30, "div", 235)(31, "div", 236);
1530
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Template_div_click_31_listener() { i0.ɵɵrestoreView(_r36); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setCacheTypeFilter("dataset")); });
1531
+ i0.ɵɵelementStart(32, "span", 237);
1532
+ i0.ɵɵelement(33, "i", 42);
1651
1533
  i0.ɵɵelementEnd();
1652
- i0.ɵɵelementStart(34, "span", 262);
1534
+ i0.ɵɵelementStart(34, "span", 238);
1653
1535
  i0.ɵɵtext(35, "Datasets");
1654
1536
  i0.ɵɵelementEnd();
1655
- i0.ɵɵelementStart(36, "span", 263);
1537
+ i0.ɵɵelementStart(36, "span", 239);
1656
1538
  i0.ɵɵtext(37);
1657
1539
  i0.ɵɵelementEnd();
1658
- i0.ɵɵelementStart(38, "span", 264);
1540
+ i0.ɵɵelementStart(38, "span", 240);
1659
1541
  i0.ɵɵtext(39);
1660
1542
  i0.ɵɵelementEnd()();
1661
- i0.ɵɵelementStart(40, "div", 260);
1662
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Template_div_click_40_listener() { i0.ɵɵrestoreView(_r36); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("runview")); });
1663
- i0.ɵɵelementStart(41, "span", 261);
1664
- i0.ɵɵelement(42, "i", 265);
1543
+ i0.ɵɵelementStart(40, "div", 236);
1544
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Template_div_click_40_listener() { i0.ɵɵrestoreView(_r36); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setCacheTypeFilter("runview")); });
1545
+ i0.ɵɵelementStart(41, "span", 237);
1546
+ i0.ɵɵelement(42, "i", 241);
1665
1547
  i0.ɵɵelementEnd();
1666
- i0.ɵɵelementStart(43, "span", 262);
1548
+ i0.ɵɵelementStart(43, "span", 238);
1667
1549
  i0.ɵɵtext(44, "RunViews");
1668
1550
  i0.ɵɵelementEnd();
1669
- i0.ɵɵelementStart(45, "span", 263);
1551
+ i0.ɵɵelementStart(45, "span", 239);
1670
1552
  i0.ɵɵtext(46);
1671
1553
  i0.ɵɵelementEnd();
1672
- i0.ɵɵelementStart(47, "span", 264);
1554
+ i0.ɵɵelementStart(47, "span", 240);
1673
1555
  i0.ɵɵtext(48);
1674
1556
  i0.ɵɵelementEnd()();
1675
- i0.ɵɵelementStart(49, "div", 260);
1676
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Conditional_11_Template_div_click_49_listener() { i0.ɵɵrestoreView(_r36); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.setCacheTypeFilter("runquery")); });
1677
- i0.ɵɵelementStart(50, "span", 261);
1678
- i0.ɵɵelement(51, "i", 266);
1557
+ i0.ɵɵelementStart(49, "div", 236);
1558
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Conditional_11_Template_div_click_49_listener() { i0.ɵɵrestoreView(_r36); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setCacheTypeFilter("runquery")); });
1559
+ i0.ɵɵelementStart(50, "span", 237);
1560
+ i0.ɵɵelement(51, "i", 242);
1679
1561
  i0.ɵɵelementEnd();
1680
- i0.ɵɵelementStart(52, "span", 262);
1562
+ i0.ɵɵelementStart(52, "span", 238);
1681
1563
  i0.ɵɵtext(53, "RunQueries");
1682
1564
  i0.ɵɵelementEnd();
1683
- i0.ɵɵelementStart(54, "span", 263);
1565
+ i0.ɵɵelementStart(54, "span", 239);
1684
1566
  i0.ɵɵtext(55);
1685
1567
  i0.ɵɵelementEnd();
1686
- i0.ɵɵelementStart(56, "span", 264);
1568
+ i0.ɵɵelementStart(56, "span", 240);
1687
1569
  i0.ɵɵtext(57);
1688
1570
  i0.ɵɵelementEnd()()()();
1689
- i0.ɵɵconditionalCreate(58, SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_58_Template, 34, 9, "div", 267)(59, SystemDiagnosticsComponent_Conditional_53_Conditional_11_Conditional_59_Template, 6, 0, "div", 57);
1571
+ i0.ɵɵconditionalCreate(58, SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_58_Template, 34, 9, "div", 243)(59, SystemDiagnosticsComponent_Conditional_18_Conditional_11_Conditional_59_Template, 6, 0, "div", 28);
1690
1572
  } if (rf & 2) {
1691
- const ctx_r0 = i0.ɵɵnextContext(2);
1573
+ const ctx_r1 = i0.ɵɵnextContext(2);
1692
1574
  i0.ɵɵadvance(3);
1693
- i0.ɵɵtextInterpolate((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.totalEntries) || 0);
1575
+ i0.ɵɵtextInterpolate((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.totalEntries) || 0);
1694
1576
  i0.ɵɵadvance(5);
1695
- i0.ɵɵtextInterpolate(ctx_r0.formatBytes((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.totalSizeBytes) || 0));
1577
+ i0.ɵɵtextInterpolate(ctx_r1.formatBytes((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.totalSizeBytes) || 0));
1696
1578
  i0.ɵɵadvance(5);
1697
- i0.ɵɵtextInterpolate((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.hits) || 0);
1579
+ i0.ɵɵtextInterpolate((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.hits) || 0);
1698
1580
  i0.ɵɵadvance(5);
1699
- i0.ɵɵtextInterpolate((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.misses) || 0);
1581
+ i0.ɵɵtextInterpolate((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.misses) || 0);
1700
1582
  i0.ɵɵadvance(5);
1701
- i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(24, 12, ctx_r0.cacheHitRate, "1.1-1"), "%");
1583
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(24, 12, ctx_r1.cacheHitRate, "1.1-1"), "%");
1702
1584
  i0.ɵɵadvance(14);
1703
- i0.ɵɵtextInterpolate((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.byType == null ? null : ctx_r0.cacheStats.byType.dataset == null ? null : ctx_r0.cacheStats.byType.dataset.count) || 0);
1585
+ i0.ɵɵtextInterpolate((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.byType == null ? null : ctx_r1.cacheStats.byType.dataset == null ? null : ctx_r1.cacheStats.byType.dataset.count) || 0);
1704
1586
  i0.ɵɵadvance(2);
1705
- i0.ɵɵtextInterpolate(ctx_r0.formatBytes((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.byType == null ? null : ctx_r0.cacheStats.byType.dataset == null ? null : ctx_r0.cacheStats.byType.dataset.sizeBytes) || 0));
1587
+ i0.ɵɵtextInterpolate(ctx_r1.formatBytes((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.byType == null ? null : ctx_r1.cacheStats.byType.dataset == null ? null : ctx_r1.cacheStats.byType.dataset.sizeBytes) || 0));
1706
1588
  i0.ɵɵadvance(7);
1707
- i0.ɵɵtextInterpolate((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.byType == null ? null : ctx_r0.cacheStats.byType.runview == null ? null : ctx_r0.cacheStats.byType.runview.count) || 0);
1589
+ i0.ɵɵtextInterpolate((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.byType == null ? null : ctx_r1.cacheStats.byType.runview == null ? null : ctx_r1.cacheStats.byType.runview.count) || 0);
1708
1590
  i0.ɵɵadvance(2);
1709
- i0.ɵɵtextInterpolate(ctx_r0.formatBytes((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.byType == null ? null : ctx_r0.cacheStats.byType.runview == null ? null : ctx_r0.cacheStats.byType.runview.sizeBytes) || 0));
1591
+ i0.ɵɵtextInterpolate(ctx_r1.formatBytes((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.byType == null ? null : ctx_r1.cacheStats.byType.runview == null ? null : ctx_r1.cacheStats.byType.runview.sizeBytes) || 0));
1710
1592
  i0.ɵɵadvance(7);
1711
- i0.ɵɵtextInterpolate((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.byType == null ? null : ctx_r0.cacheStats.byType.runquery == null ? null : ctx_r0.cacheStats.byType.runquery.count) || 0);
1593
+ i0.ɵɵtextInterpolate((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.byType == null ? null : ctx_r1.cacheStats.byType.runquery == null ? null : ctx_r1.cacheStats.byType.runquery.count) || 0);
1712
1594
  i0.ɵɵadvance(2);
1713
- i0.ɵɵtextInterpolate(ctx_r0.formatBytes((ctx_r0.cacheStats == null ? null : ctx_r0.cacheStats.byType == null ? null : ctx_r0.cacheStats.byType.runquery == null ? null : ctx_r0.cacheStats.byType.runquery.sizeBytes) || 0));
1595
+ i0.ɵɵtextInterpolate(ctx_r1.formatBytes((ctx_r1.cacheStats == null ? null : ctx_r1.cacheStats.byType == null ? null : ctx_r1.cacheStats.byType.runquery == null ? null : ctx_r1.cacheStats.byType.runquery.sizeBytes) || 0));
1714
1596
  i0.ɵɵadvance();
1715
- i0.ɵɵconditional(ctx_r0.filteredCacheEntries.length > 0 ? 58 : ctx_r0.cacheStats && ctx_r0.cacheStats.totalEntries === 0 ? 59 : -1);
1597
+ i0.ɵɵconditional(ctx_r1.filteredCacheEntries.length > 0 ? 58 : ctx_r1.cacheStats && ctx_r1.cacheStats.totalEntries === 0 ? 59 : -1);
1716
1598
  } }
1717
- function SystemDiagnosticsComponent_Conditional_53_Template(rf, ctx) { if (rf & 1) {
1599
+ function SystemDiagnosticsComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
1718
1600
  const _r35 = i0.ɵɵgetCurrentView();
1719
- i0.ɵɵelementStart(0, "div", 29)(1, "div", 52)(2, "h3");
1720
- i0.ɵɵelement(3, "i", 27);
1601
+ i0.ɵɵelementStart(0, "div", 15)(1, "div", 22)(2, "h3");
1602
+ i0.ɵɵelement(3, "i", 232);
1721
1603
  i0.ɵɵtext(4, " Local Cache ");
1722
1604
  i0.ɵɵelementEnd();
1723
- i0.ɵɵelementStart(5, "div", 53)(6, "button", 54);
1724
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_53_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r35); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.clearAllCache()); });
1725
- i0.ɵɵelement(7, "i", 110);
1605
+ i0.ɵɵelementStart(5, "div", 24)(6, "button", 25);
1606
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_18_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r35); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.clearAllCache()); });
1607
+ i0.ɵɵelement(7, "i", 85);
1726
1608
  i0.ɵɵtext(8, " Clear All ");
1727
1609
  i0.ɵɵelementEnd()()();
1728
- i0.ɵɵelementStart(9, "div", 56);
1729
- i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_53_Conditional_10_Template, 6, 0, "div", 107)(11, SystemDiagnosticsComponent_Conditional_53_Conditional_11_Template, 60, 15);
1610
+ i0.ɵɵelementStart(9, "div", 27);
1611
+ i0.ɵɵconditionalCreate(10, SystemDiagnosticsComponent_Conditional_18_Conditional_10_Template, 6, 0, "div", 81)(11, SystemDiagnosticsComponent_Conditional_18_Conditional_11_Template, 60, 15);
1730
1612
  i0.ɵɵelementEnd()();
1731
1613
  } if (rf & 2) {
1732
- const ctx_r0 = i0.ɵɵnextContext();
1614
+ const ctx_r1 = i0.ɵɵnextContext();
1733
1615
  i0.ɵɵadvance(6);
1734
- i0.ɵɵproperty("disabled", !ctx_r0.cacheStats || ctx_r0.cacheStats.totalEntries === 0);
1616
+ i0.ɵɵproperty("disabled", !ctx_r1.cacheStats || ctx_r1.cacheStats.totalEntries === 0);
1735
1617
  i0.ɵɵadvance(4);
1736
- i0.ɵɵconditional(!ctx_r0.cacheInitialized ? 10 : 11);
1618
+ i0.ɵɵconditional(!ctx_r1.cacheInitialized ? 10 : 11);
1737
1619
  } }
1738
- function SystemDiagnosticsComponent_Conditional_62_Conditional_38_Template(rf, ctx) { if (rf & 1) {
1739
- i0.ɵɵelementStart(0, "div", 287)(1, "span", 288);
1620
+ function SystemDiagnosticsComponent_Conditional_27_Conditional_38_Template(rf, ctx) { if (rf & 1) {
1621
+ i0.ɵɵelementStart(0, "div", 263)(1, "span", 264);
1740
1622
  i0.ɵɵtext(2, "Entity:");
1741
1623
  i0.ɵɵelementEnd();
1742
- i0.ɵɵelementStart(3, "span", 296);
1624
+ i0.ɵɵelementStart(3, "span", 272);
1743
1625
  i0.ɵɵtext(4);
1744
1626
  i0.ɵɵelementEnd()();
1745
1627
  } if (rf & 2) {
1746
- const ctx_r0 = i0.ɵɵnextContext(2);
1628
+ const ctx_r1 = i0.ɵɵnextContext(2);
1747
1629
  i0.ɵɵadvance(4);
1748
- i0.ɵɵtextInterpolate(ctx_r0.eventDetailPanel.event.entityName);
1630
+ i0.ɵɵtextInterpolate(ctx_r1.eventDetailPanel.event.entityName);
1749
1631
  } }
1750
- function SystemDiagnosticsComponent_Conditional_62_Conditional_39_Template(rf, ctx) { if (rf & 1) {
1751
- i0.ɵɵelementStart(0, "div", 287)(1, "span", 288);
1632
+ function SystemDiagnosticsComponent_Conditional_27_Conditional_39_Template(rf, ctx) { if (rf & 1) {
1633
+ i0.ɵɵelementStart(0, "div", 263)(1, "span", 264);
1752
1634
  i0.ɵɵtext(2, "Filter:");
1753
1635
  i0.ɵɵelementEnd();
1754
- i0.ɵɵelementStart(3, "code", 297);
1636
+ i0.ɵɵelementStart(3, "code", 273);
1755
1637
  i0.ɵɵtext(4);
1756
1638
  i0.ɵɵelementEnd()();
1757
1639
  } if (rf & 2) {
1758
- const ctx_r0 = i0.ɵɵnextContext(2);
1640
+ const ctx_r1 = i0.ɵɵnextContext(2);
1759
1641
  i0.ɵɵadvance(4);
1760
- i0.ɵɵtextInterpolate(ctx_r0.eventDetailPanel.event.filter);
1642
+ i0.ɵɵtextInterpolate(ctx_r1.eventDetailPanel.event.filter);
1761
1643
  } }
1762
- function SystemDiagnosticsComponent_Conditional_62_For_46_Template(rf, ctx) { if (rf & 1) {
1763
- i0.ɵɵelementStart(0, "div", 292)(1, "span", 298);
1644
+ function SystemDiagnosticsComponent_Conditional_27_For_46_Template(rf, ctx) { if (rf & 1) {
1645
+ i0.ɵɵelementStart(0, "div", 268)(1, "span", 274);
1764
1646
  i0.ɵɵtext(2);
1765
1647
  i0.ɵɵelementEnd();
1766
- i0.ɵɵelementStart(3, "span", 299);
1648
+ i0.ɵɵelementStart(3, "span", 275);
1767
1649
  i0.ɵɵtext(4);
1768
1650
  i0.ɵɵelementEnd()();
1769
1651
  } if (rf & 2) {
@@ -1773,178 +1655,178 @@ function SystemDiagnosticsComponent_Conditional_62_For_46_Template(rf, ctx) { if
1773
1655
  i0.ɵɵadvance(2);
1774
1656
  i0.ɵɵtextInterpolate(param_r41.value);
1775
1657
  } }
1776
- function SystemDiagnosticsComponent_Conditional_62_Conditional_47_Conditional_23_Template(rf, ctx) { if (rf & 1) {
1777
- i0.ɵɵelementStart(0, "div", 303);
1778
- i0.ɵɵelement(1, "i", 114);
1658
+ function SystemDiagnosticsComponent_Conditional_27_Conditional_47_Conditional_23_Template(rf, ctx) { if (rf & 1) {
1659
+ i0.ɵɵelementStart(0, "div", 279);
1660
+ i0.ɵɵelement(1, "i", 89);
1779
1661
  i0.ɵɵtext(2);
1780
1662
  i0.ɵɵelementEnd();
1781
1663
  } if (rf & 2) {
1782
- const ctx_r0 = i0.ɵɵnextContext(3);
1664
+ const ctx_r1 = i0.ɵɵnextContext(3);
1783
1665
  i0.ɵɵadvance(2);
1784
- i0.ɵɵtextInterpolate1(" This pattern has been called ", ctx_r0.eventDetailPanel.relatedPattern.count, " times. Consider caching or batching. ");
1666
+ i0.ɵɵtextInterpolate1(" This pattern has been called ", ctx_r1.eventDetailPanel.relatedPattern.count, " times. Consider caching or batching. ");
1785
1667
  } }
1786
- function SystemDiagnosticsComponent_Conditional_62_Conditional_47_Template(rf, ctx) { if (rf & 1) {
1787
- i0.ɵɵelementStart(0, "div", 244)(1, "h4");
1788
- i0.ɵɵelement(2, "i", 105);
1668
+ function SystemDiagnosticsComponent_Conditional_27_Conditional_47_Template(rf, ctx) { if (rf & 1) {
1669
+ i0.ɵɵelementStart(0, "div", 219)(1, "h4");
1670
+ i0.ɵɵelement(2, "i", 79);
1789
1671
  i0.ɵɵtext(3, " Related Pattern");
1790
1672
  i0.ɵɵelementEnd();
1791
- i0.ɵɵelementStart(4, "div", 300)(5, "div", 301)(6, "span", 302);
1673
+ i0.ɵɵelementStart(4, "div", 276)(5, "div", 277)(6, "span", 278);
1792
1674
  i0.ɵɵtext(7);
1793
1675
  i0.ɵɵelementEnd();
1794
- i0.ɵɵelementStart(8, "span", 68);
1676
+ i0.ɵɵelementStart(8, "span", 40);
1795
1677
  i0.ɵɵtext(9, "Total Calls");
1796
1678
  i0.ɵɵelementEnd()();
1797
- i0.ɵɵelementStart(10, "div", 301)(11, "span", 302);
1679
+ i0.ɵɵelementStart(10, "div", 277)(11, "span", 278);
1798
1680
  i0.ɵɵtext(12);
1799
1681
  i0.ɵɵpipe(13, "number");
1800
1682
  i0.ɵɵelementEnd();
1801
- i0.ɵɵelementStart(14, "span", 68);
1683
+ i0.ɵɵelementStart(14, "span", 40);
1802
1684
  i0.ɵɵtext(15, "Avg Duration");
1803
1685
  i0.ɵɵelementEnd()();
1804
- i0.ɵɵelementStart(16, "div", 301)(17, "span", 302);
1686
+ i0.ɵɵelementStart(16, "div", 277)(17, "span", 278);
1805
1687
  i0.ɵɵtext(18);
1806
1688
  i0.ɵɵpipe(19, "number");
1807
1689
  i0.ɵɵpipe(20, "number");
1808
1690
  i0.ɵɵelementEnd();
1809
- i0.ɵɵelementStart(21, "span", 68);
1691
+ i0.ɵɵelementStart(21, "span", 40);
1810
1692
  i0.ɵɵtext(22, "Range");
1811
1693
  i0.ɵɵelementEnd()()();
1812
- i0.ɵɵconditionalCreate(23, SystemDiagnosticsComponent_Conditional_62_Conditional_47_Conditional_23_Template, 3, 1, "div", 303);
1694
+ i0.ɵɵconditionalCreate(23, SystemDiagnosticsComponent_Conditional_27_Conditional_47_Conditional_23_Template, 3, 1, "div", 279);
1813
1695
  i0.ɵɵelementEnd();
1814
1696
  } if (rf & 2) {
1815
- const ctx_r0 = i0.ɵɵnextContext(2);
1697
+ const ctx_r1 = i0.ɵɵnextContext(2);
1816
1698
  i0.ɵɵadvance(7);
1817
- i0.ɵɵtextInterpolate(ctx_r0.eventDetailPanel.relatedPattern.count);
1699
+ i0.ɵɵtextInterpolate(ctx_r1.eventDetailPanel.relatedPattern.count);
1818
1700
  i0.ɵɵadvance(5);
1819
- i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(13, 5, ctx_r0.eventDetailPanel.relatedPattern.avgElapsedMs, "1.1-1"), "ms");
1701
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(13, 5, ctx_r1.eventDetailPanel.relatedPattern.avgElapsedMs, "1.1-1"), "ms");
1820
1702
  i0.ɵɵadvance(6);
1821
- i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind2(19, 8, ctx_r0.eventDetailPanel.relatedPattern.minElapsedMs, "1.0-0"), " - ", i0.ɵɵpipeBind2(20, 11, ctx_r0.eventDetailPanel.relatedPattern.maxElapsedMs, "1.0-0"), "ms");
1703
+ i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind2(19, 8, ctx_r1.eventDetailPanel.relatedPattern.minElapsedMs, "1.0-0"), " - ", i0.ɵɵpipeBind2(20, 11, ctx_r1.eventDetailPanel.relatedPattern.maxElapsedMs, "1.0-0"), "ms");
1822
1704
  i0.ɵɵadvance(5);
1823
- i0.ɵɵconditional(ctx_r0.eventDetailPanel.relatedPattern.count >= 2 ? 23 : -1);
1705
+ i0.ɵɵconditional(ctx_r1.eventDetailPanel.relatedPattern.count >= 2 ? 23 : -1);
1824
1706
  } }
1825
- function SystemDiagnosticsComponent_Conditional_62_Conditional_52_Template(rf, ctx) { if (rf & 1) {
1707
+ function SystemDiagnosticsComponent_Conditional_27_Conditional_52_Template(rf, ctx) { if (rf & 1) {
1826
1708
  const _r42 = i0.ɵɵgetCurrentView();
1827
- i0.ɵɵelementStart(0, "button", 294);
1828
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_62_Conditional_52_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r42); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.filterByEntity(ctx_r0.eventDetailPanel.event.entityName)); });
1829
- i0.ɵɵelement(1, "i", 227);
1709
+ i0.ɵɵelementStart(0, "button", 270);
1710
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_27_Conditional_52_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r42); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.filterByEntity(ctx_r1.eventDetailPanel.event.entityName)); });
1711
+ i0.ɵɵelement(1, "i", 202);
1830
1712
  i0.ɵɵtext(2, " Filter by Entity ");
1831
1713
  i0.ɵɵelementEnd();
1832
1714
  } }
1833
- function SystemDiagnosticsComponent_Conditional_62_Template(rf, ctx) { if (rf & 1) {
1715
+ function SystemDiagnosticsComponent_Conditional_27_Template(rf, ctx) { if (rf & 1) {
1834
1716
  const _r40 = i0.ɵɵgetCurrentView();
1835
- i0.ɵɵelementStart(0, "div", 277);
1836
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_62_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r40); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.closeEventDetailPanel()); });
1717
+ i0.ɵɵelementStart(0, "div", 253);
1718
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_27_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r40); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeEventDetailPanel()); });
1837
1719
  i0.ɵɵelementEnd();
1838
- i0.ɵɵelementStart(1, "div", 278)(2, "div", 52)(3, "div", 279)(4, "span", 222);
1720
+ i0.ɵɵelementStart(1, "div", 254)(2, "div", 22)(3, "div", 255)(4, "span", 197);
1839
1721
  i0.ɵɵtext(5);
1840
1722
  i0.ɵɵelementEnd();
1841
1723
  i0.ɵɵelementStart(6, "h3");
1842
1724
  i0.ɵɵtext(7, "Event Details");
1843
1725
  i0.ɵɵelementEnd()();
1844
- i0.ɵɵelementStart(8, "button", 280);
1845
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_62_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r40); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.closeEventDetailPanel()); });
1846
- i0.ɵɵelement(9, "i", 116);
1726
+ i0.ɵɵelementStart(8, "button", 256);
1727
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_27_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r40); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeEventDetailPanel()); });
1728
+ i0.ɵɵelement(9, "i", 91);
1847
1729
  i0.ɵɵelementEnd()();
1848
- i0.ɵɵelementStart(10, "div", 281)(11, "div", 282)(12, "div", 283)(13, "div", 284);
1730
+ i0.ɵɵelementStart(10, "div", 257)(11, "div", 258)(12, "div", 259)(13, "div", 260);
1849
1731
  i0.ɵɵtext(14);
1850
1732
  i0.ɵɵpipe(15, "number");
1851
1733
  i0.ɵɵelementEnd();
1852
- i0.ɵɵelementStart(16, "div", 285);
1734
+ i0.ɵɵelementStart(16, "div", 261);
1853
1735
  i0.ɵɵtext(17, "Duration");
1854
1736
  i0.ɵɵelementEnd()();
1855
- i0.ɵɵelementStart(18, "div", 283)(19, "div", 284);
1737
+ i0.ɵɵelementStart(18, "div", 259)(19, "div", 260);
1856
1738
  i0.ɵɵtext(20);
1857
1739
  i0.ɵɵelementEnd();
1858
- i0.ɵɵelementStart(21, "div", 285);
1740
+ i0.ɵɵelementStart(21, "div", 261);
1859
1741
  i0.ɵɵtext(22, "Time");
1860
1742
  i0.ɵɵelementEnd()();
1861
- i0.ɵɵelementStart(23, "div", 283)(24, "div", 284);
1743
+ i0.ɵɵelementStart(23, "div", 259)(24, "div", 260);
1862
1744
  i0.ɵɵtext(25);
1863
1745
  i0.ɵɵelementEnd();
1864
- i0.ɵɵelementStart(26, "div", 285);
1746
+ i0.ɵɵelementStart(26, "div", 261);
1865
1747
  i0.ɵɵtext(27, "Relative");
1866
1748
  i0.ɵɵelementEnd()()();
1867
- i0.ɵɵelementStart(28, "div", 244)(29, "h4");
1868
- i0.ɵɵelement(30, "i", 266);
1749
+ i0.ɵɵelementStart(28, "div", 219)(29, "h4");
1750
+ i0.ɵɵelement(30, "i", 242);
1869
1751
  i0.ɵɵtext(31, " Operation");
1870
1752
  i0.ɵɵelementEnd();
1871
- i0.ɵɵelementStart(32, "div", 286)(33, "div", 287)(34, "span", 288);
1753
+ i0.ɵɵelementStart(32, "div", 262)(33, "div", 263)(34, "span", 264);
1872
1754
  i0.ɵɵtext(35, "Operation:");
1873
1755
  i0.ɵɵelementEnd();
1874
- i0.ɵɵelementStart(36, "span", 289);
1756
+ i0.ɵɵelementStart(36, "span", 265);
1875
1757
  i0.ɵɵtext(37);
1876
1758
  i0.ɵɵelementEnd()();
1877
- i0.ɵɵconditionalCreate(38, SystemDiagnosticsComponent_Conditional_62_Conditional_38_Template, 5, 1, "div", 287);
1878
- i0.ɵɵconditionalCreate(39, SystemDiagnosticsComponent_Conditional_62_Conditional_39_Template, 5, 1, "div", 287);
1759
+ i0.ɵɵconditionalCreate(38, SystemDiagnosticsComponent_Conditional_27_Conditional_38_Template, 5, 1, "div", 263);
1760
+ i0.ɵɵconditionalCreate(39, SystemDiagnosticsComponent_Conditional_27_Conditional_39_Template, 5, 1, "div", 263);
1879
1761
  i0.ɵɵelementEnd()();
1880
- i0.ɵɵelementStart(40, "div", 244)(41, "h4");
1881
- i0.ɵɵelement(42, "i", 290);
1762
+ i0.ɵɵelementStart(40, "div", 219)(41, "h4");
1763
+ i0.ɵɵelement(42, "i", 266);
1882
1764
  i0.ɵɵtext(43, " Parameters");
1883
1765
  i0.ɵɵelementEnd();
1884
- i0.ɵɵelementStart(44, "div", 291);
1885
- i0.ɵɵrepeaterCreate(45, SystemDiagnosticsComponent_Conditional_62_For_46_Template, 5, 2, "div", 292, _forTrack6);
1766
+ i0.ɵɵelementStart(44, "div", 267);
1767
+ i0.ɵɵrepeaterCreate(45, SystemDiagnosticsComponent_Conditional_27_For_46_Template, 5, 2, "div", 268, _forTrack6);
1886
1768
  i0.ɵɵelementEnd()();
1887
- i0.ɵɵconditionalCreate(47, SystemDiagnosticsComponent_Conditional_62_Conditional_47_Template, 24, 14, "div", 244);
1888
- i0.ɵɵelementStart(48, "div", 293)(49, "button", 294);
1889
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_62_Template_button_click_49_listener() { i0.ɵɵrestoreView(_r40); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.copyEventToClipboard(ctx_r0.eventDetailPanel.event)); });
1890
- i0.ɵɵelement(50, "i", 23);
1769
+ i0.ɵɵconditionalCreate(47, SystemDiagnosticsComponent_Conditional_27_Conditional_47_Template, 24, 14, "div", 219);
1770
+ i0.ɵɵelementStart(48, "div", 269)(49, "button", 270);
1771
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_27_Template_button_click_49_listener() { i0.ɵɵrestoreView(_r40); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.copyEventToClipboard(ctx_r1.eventDetailPanel.event)); });
1772
+ i0.ɵɵelement(50, "i", 47);
1891
1773
  i0.ɵɵtext(51, " Copy JSON ");
1892
1774
  i0.ɵɵelementEnd();
1893
- i0.ɵɵconditionalCreate(52, SystemDiagnosticsComponent_Conditional_62_Conditional_52_Template, 3, 0, "button", 295);
1775
+ i0.ɵɵconditionalCreate(52, SystemDiagnosticsComponent_Conditional_27_Conditional_52_Template, 3, 0, "button", 271);
1894
1776
  i0.ɵɵelementEnd()()();
1895
1777
  } if (rf & 2) {
1896
- const ctx_r0 = i0.ɵɵnextContext();
1778
+ const ctx_r1 = i0.ɵɵnextContext();
1897
1779
  i0.ɵɵadvance();
1898
- i0.ɵɵclassProp("open", ctx_r0.eventDetailPanel.isOpen);
1780
+ i0.ɵɵclassProp("open", ctx_r1.eventDetailPanel.isOpen);
1899
1781
  i0.ɵɵadvance(3);
1900
- i0.ɵɵclassMap("cat-" + ctx_r0.eventDetailPanel.event.category.toLowerCase());
1782
+ i0.ɵɵclassMap("cat-" + ctx_r1.eventDetailPanel.event.category.toLowerCase());
1901
1783
  i0.ɵɵadvance();
1902
- i0.ɵɵtextInterpolate1(" ", ctx_r0.eventDetailPanel.event.category, " ");
1784
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.eventDetailPanel.event.category, " ");
1903
1785
  i0.ɵɵadvance(8);
1904
- i0.ɵɵclassProp("slow", (ctx_r0.eventDetailPanel.event.elapsedMs || 0) >= ctx_r0.slowQueryThresholdMs);
1786
+ i0.ɵɵclassProp("slow", (ctx_r1.eventDetailPanel.event.elapsedMs || 0) >= ctx_r1.slowQueryThresholdMs);
1905
1787
  i0.ɵɵadvance();
1906
- i0.ɵɵtextInterpolate1(" ", ctx_r0.eventDetailPanel.event.elapsedMs !== undefined ? i0.ɵɵpipeBind2(15, 15, ctx_r0.eventDetailPanel.event.elapsedMs, "1.0-0") + "ms" : "In Progress", " ");
1788
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.eventDetailPanel.event.elapsedMs !== undefined ? i0.ɵɵpipeBind2(15, 15, ctx_r1.eventDetailPanel.event.elapsedMs, "1.0-0") + "ms" : "In Progress", " ");
1907
1789
  i0.ɵɵadvance(6);
1908
- i0.ɵɵtextInterpolate(ctx_r0.formatTimestamp(ctx_r0.eventDetailPanel.event.timestamp));
1790
+ i0.ɵɵtextInterpolate(ctx_r1.formatTimestamp(ctx_r1.eventDetailPanel.event.timestamp));
1909
1791
  i0.ɵɵadvance(5);
1910
- i0.ɵɵtextInterpolate1("+", ctx_r0.formatRelativeTime(ctx_r0.eventDetailPanel.event.startTime - ctx_r0.telemetryBootTime));
1792
+ i0.ɵɵtextInterpolate1("+", ctx_r1.formatRelativeTime(ctx_r1.eventDetailPanel.event.startTime - ctx_r1.telemetryBootTime));
1911
1793
  i0.ɵɵadvance(12);
1912
- i0.ɵɵtextInterpolate(ctx_r0.eventDetailPanel.event.operation);
1794
+ i0.ɵɵtextInterpolate(ctx_r1.eventDetailPanel.event.operation);
1913
1795
  i0.ɵɵadvance();
1914
- i0.ɵɵconditional(ctx_r0.eventDetailPanel.event.entityName ? 38 : -1);
1796
+ i0.ɵɵconditional(ctx_r1.eventDetailPanel.event.entityName ? 38 : -1);
1915
1797
  i0.ɵɵadvance();
1916
- i0.ɵɵconditional(ctx_r0.eventDetailPanel.event.filter ? 39 : -1);
1798
+ i0.ɵɵconditional(ctx_r1.eventDetailPanel.event.filter ? 39 : -1);
1917
1799
  i0.ɵɵadvance(6);
1918
- i0.ɵɵrepeater(ctx_r0.getEventParams(ctx_r0.eventDetailPanel.event));
1800
+ i0.ɵɵrepeater(ctx_r1.getEventParams(ctx_r1.eventDetailPanel.event));
1919
1801
  i0.ɵɵadvance(2);
1920
- i0.ɵɵconditional(ctx_r0.eventDetailPanel.relatedPattern ? 47 : -1);
1802
+ i0.ɵɵconditional(ctx_r1.eventDetailPanel.relatedPattern ? 47 : -1);
1921
1803
  i0.ɵɵadvance(5);
1922
- i0.ɵɵconditional(ctx_r0.eventDetailPanel.event.entityName ? 52 : -1);
1804
+ i0.ɵɵconditional(ctx_r1.eventDetailPanel.event.entityName ? 52 : -1);
1923
1805
  } }
1924
- function SystemDiagnosticsComponent_Conditional_63_Conditional_30_Template(rf, ctx) { if (rf & 1) {
1925
- i0.ɵɵelementStart(0, "div", 309)(1, "span", 150);
1806
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_30_Template(rf, ctx) { if (rf & 1) {
1807
+ i0.ɵɵelementStart(0, "div", 285)(1, "span", 125);
1926
1808
  i0.ɵɵtext(2, "Last Loaded");
1927
1809
  i0.ɵɵelementEnd();
1928
- i0.ɵɵelementStart(3, "span", 149);
1810
+ i0.ɵɵelementStart(3, "span", 124);
1929
1811
  i0.ɵɵtext(4);
1930
1812
  i0.ɵɵelementEnd()();
1931
1813
  } if (rf & 2) {
1932
- const ctx_r0 = i0.ɵɵnextContext(2);
1814
+ const ctx_r1 = i0.ɵɵnextContext(2);
1933
1815
  i0.ɵɵadvance(4);
1934
- i0.ɵɵtextInterpolate(ctx_r0.formatTime(ctx_r0.engineDetailPanel.engine.lastLoadedAt));
1816
+ i0.ɵɵtextInterpolate(ctx_r1.formatTime(ctx_r1.engineDetailPanel.engine.lastLoadedAt));
1935
1817
  } }
1936
- function SystemDiagnosticsComponent_Conditional_63_Conditional_35_Template(rf, ctx) { if (rf & 1) {
1937
- i0.ɵɵelementStart(0, "div", 190);
1938
- i0.ɵɵelement(1, "i", 59);
1818
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_35_Template(rf, ctx) { if (rf & 1) {
1819
+ i0.ɵɵelementStart(0, "div", 165);
1820
+ i0.ɵɵelement(1, "i", 30);
1939
1821
  i0.ɵɵelementStart(2, "p");
1940
1822
  i0.ɵɵtext(3, "No config items found");
1941
1823
  i0.ɵɵelementEnd()();
1942
1824
  } }
1943
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1944
- i0.ɵɵelementStart(0, "div", 323)(1, "span", 245);
1825
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1826
+ i0.ɵɵelementStart(0, "div", 299)(1, "span", 220);
1945
1827
  i0.ɵɵtext(2, "Filter:");
1946
1828
  i0.ɵɵelementEnd();
1947
- i0.ɵɵelementStart(3, "code", 324);
1829
+ i0.ɵɵelementStart(3, "code", 300);
1948
1830
  i0.ɵɵtext(4);
1949
1831
  i0.ɵɵelementEnd()();
1950
1832
  } if (rf & 2) {
@@ -1952,11 +1834,11 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditio
1952
1834
  i0.ɵɵadvance(4);
1953
1835
  i0.ɵɵtextInterpolate(item_r45.filter);
1954
1836
  } }
1955
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1956
- i0.ɵɵelementStart(0, "div", 323)(1, "span", 245);
1837
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1838
+ i0.ɵɵelementStart(0, "div", 299)(1, "span", 220);
1957
1839
  i0.ɵɵtext(2, "Order By:");
1958
1840
  i0.ɵɵelementEnd();
1959
- i0.ɵɵelementStart(3, "code", 324);
1841
+ i0.ɵɵelementStart(3, "code", 300);
1960
1842
  i0.ɵɵtext(4);
1961
1843
  i0.ɵɵelementEnd()();
1962
1844
  } if (rf & 2) {
@@ -1964,11 +1846,11 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditio
1964
1846
  i0.ɵɵadvance(4);
1965
1847
  i0.ɵɵtextInterpolate(item_r45.orderBy);
1966
1848
  } }
1967
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1968
- i0.ɵɵelementStart(0, "div", 325)(1, "span", 245);
1849
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1850
+ i0.ɵɵelementStart(0, "div", 301)(1, "span", 220);
1969
1851
  i0.ɵɵtext(2, "Error:");
1970
1852
  i0.ɵɵelementEnd();
1971
- i0.ɵɵelementStart(3, "span", 327);
1853
+ i0.ɵɵelementStart(3, "span", 303);
1972
1854
  i0.ɵɵtext(4);
1973
1855
  i0.ɵɵelementEnd()();
1974
1856
  } if (rf & 2) {
@@ -1976,28 +1858,28 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditio
1976
1858
  i0.ɵɵadvance(4);
1977
1859
  i0.ɵɵtextInterpolate(item_r45.errorMessage);
1978
1860
  } }
1979
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1980
- i0.ɵɵelement(0, "i", 336);
1861
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1862
+ i0.ɵɵelement(0, "i", 312);
1981
1863
  } }
1982
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1983
- i0.ɵɵelement(0, "i", 337);
1864
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1865
+ i0.ɵɵelement(0, "i", 313);
1984
1866
  } }
1985
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1986
- i0.ɵɵelement(0, "i", 336);
1867
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1868
+ i0.ɵɵelement(0, "i", 312);
1987
1869
  } }
1988
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1989
- i0.ɵɵelement(0, "i", 35);
1870
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1871
+ i0.ɵɵelement(0, "i", 21);
1990
1872
  } }
1991
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1873
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1992
1874
  const _r46 = i0.ɵɵgetCurrentView();
1993
- i0.ɵɵelementStart(0, "button", 335);
1994
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r46); const item_r45 = i0.ɵɵnextContext(3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.loadMoreData(item_r45)); });
1995
- i0.ɵɵconditionalCreate(1, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_1_Template, 1, 0, "i", 336)(2, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_2_Template, 1, 0, "i", 337);
1875
+ i0.ɵɵelementStart(0, "button", 311);
1876
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r46); const item_r45 = i0.ɵɵnextContext(3).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.loadMoreData(item_r45)); });
1877
+ i0.ɵɵconditionalCreate(1, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_1_Template, 1, 0, "i", 312)(2, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_2_Template, 1, 0, "i", 313);
1996
1878
  i0.ɵɵtext(3, " Load More ");
1997
1879
  i0.ɵɵelementEnd();
1998
- i0.ɵɵelementStart(4, "button", 338);
1999
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r46); const item_r45 = i0.ɵɵnextContext(3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.loadAllData(item_r45)); });
2000
- i0.ɵɵconditionalCreate(5, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_5_Template, 1, 0, "i", 336)(6, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_6_Template, 1, 0, "i", 35);
1880
+ i0.ɵɵelementStart(4, "button", 314);
1881
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r46); const item_r45 = i0.ɵɵnextContext(3).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.loadAllData(item_r45)); });
1882
+ i0.ɵɵconditionalCreate(5, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_5_Template, 1, 0, "i", 312)(6, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Conditional_6_Template, 1, 0, "i", 21);
2001
1883
  i0.ɵɵtext(7, " Load All ");
2002
1884
  i0.ɵɵelementEnd();
2003
1885
  } if (rf & 2) {
@@ -2010,13 +1892,13 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditio
2010
1892
  i0.ɵɵadvance();
2011
1893
  i0.ɵɵconditional(item_r45.isLoadingMore ? 5 : 6);
2012
1894
  } }
2013
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_6_Template(rf, ctx) { if (rf & 1) {
2014
- i0.ɵɵelementStart(0, "span", 331);
2015
- i0.ɵɵelement(1, "i", 339);
1895
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1896
+ i0.ɵɵelementStart(0, "span", 307);
1897
+ i0.ɵɵelement(1, "i", 315);
2016
1898
  i0.ɵɵtext(2, " All Loaded ");
2017
1899
  i0.ɵɵelementEnd();
2018
1900
  } }
2019
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_13_Template(rf, ctx) { if (rf & 1) {
1901
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_For_13_Template(rf, ctx) { if (rf & 1) {
2020
1902
  i0.ɵɵelementStart(0, "th");
2021
1903
  i0.ɵɵtext(1);
2022
1904
  i0.ɵɵelementEnd();
@@ -2025,58 +1907,58 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditio
2025
1907
  i0.ɵɵadvance();
2026
1908
  i0.ɵɵtextInterpolate(col_r47);
2027
1909
  } }
2028
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1910
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Conditional_2_Template(rf, ctx) { if (rf & 1) {
2029
1911
  const _r48 = i0.ɵɵgetCurrentView();
2030
- i0.ɵɵelementStart(0, "button", 342);
2031
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r48); const row_r49 = i0.ɵɵnextContext().$implicit; const item_r45 = i0.ɵɵnextContext(3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openEntityRecord(item_r45.entityName, row_r49)); });
2032
- i0.ɵɵelement(1, "i", 343);
1912
+ i0.ɵɵelementStart(0, "button", 318);
1913
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r48); const row_r49 = i0.ɵɵnextContext().$implicit; const item_r45 = i0.ɵɵnextContext(3).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openEntityRecord(item_r45.entityName, row_r49)); });
1914
+ i0.ɵɵelement(1, "i", 319);
2033
1915
  i0.ɵɵelementEnd();
2034
1916
  } }
2035
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_For_4_Template(rf, ctx) { if (rf & 1) {
2036
- i0.ɵɵelementStart(0, "td", 341);
1917
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_For_4_Template(rf, ctx) { if (rf & 1) {
1918
+ i0.ɵɵelementStart(0, "td", 317);
2037
1919
  i0.ɵɵtext(1);
2038
1920
  i0.ɵɵelementEnd();
2039
1921
  } if (rf & 2) {
2040
1922
  const col_r50 = ctx.$implicit;
2041
1923
  const row_r49 = i0.ɵɵnextContext().$implicit;
2042
- const ctx_r0 = i0.ɵɵnextContext(6);
2043
- i0.ɵɵproperty("title", ctx_r0.getSampleDataValue(row_r49, col_r50));
1924
+ const ctx_r1 = i0.ɵɵnextContext(6);
1925
+ i0.ɵɵproperty("title", ctx_r1.getSampleDataValue(row_r49, col_r50));
2044
1926
  i0.ɵɵadvance();
2045
- i0.ɵɵtextInterpolate(ctx_r0.truncateString(ctx_r0.getSampleDataValue(row_r49, col_r50), 30));
1927
+ i0.ɵɵtextInterpolate(ctx_r1.truncateString(ctx_r1.getSampleDataValue(row_r49, col_r50), 30));
2046
1928
  } }
2047
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Template(rf, ctx) { if (rf & 1) {
2048
- i0.ɵɵelementStart(0, "tr")(1, "td", 334);
2049
- i0.ɵɵconditionalCreate(2, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Conditional_2_Template, 2, 0, "button", 340);
1929
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Template(rf, ctx) { if (rf & 1) {
1930
+ i0.ɵɵelementStart(0, "tr")(1, "td", 310);
1931
+ i0.ɵɵconditionalCreate(2, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Conditional_2_Template, 2, 0, "button", 316);
2050
1932
  i0.ɵɵelementEnd();
2051
- i0.ɵɵrepeaterCreate(3, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_For_4_Template, 2, 2, "td", 341, i0.ɵɵrepeaterTrackByIdentity);
1933
+ i0.ɵɵrepeaterCreate(3, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_For_4_Template, 2, 2, "td", 317, i0.ɵɵrepeaterTrackByIdentity);
2052
1934
  i0.ɵɵelementEnd();
2053
1935
  } if (rf & 2) {
2054
1936
  const row_r49 = ctx.$implicit;
2055
1937
  const item_r45 = i0.ɵɵnextContext(3).$implicit;
2056
- const ctx_r0 = i0.ɵɵnextContext(3);
1938
+ const ctx_r1 = i0.ɵɵnextContext(3);
2057
1939
  i0.ɵɵadvance(2);
2058
- i0.ɵɵconditional(item_r45.entityName && ctx_r0.getRecordId(row_r49) ? 2 : -1);
1940
+ i0.ɵɵconditional(item_r45.entityName && ctx_r1.getRecordId(row_r49) ? 2 : -1);
2059
1941
  i0.ɵɵadvance();
2060
- i0.ɵɵrepeater(ctx_r0.getSampleDataColumns(item_r45));
1942
+ i0.ɵɵrepeater(ctx_r1.getSampleDataColumns(item_r45));
2061
1943
  } }
2062
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Template(rf, ctx) { if (rf & 1) {
2063
- i0.ɵɵelementStart(0, "div", 326)(1, "div", 328)(2, "span", 329);
1944
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Template(rf, ctx) { if (rf & 1) {
1945
+ i0.ɵɵelementStart(0, "div", 302)(1, "div", 304)(2, "span", 305);
2064
1946
  i0.ɵɵtext(3);
2065
1947
  i0.ɵɵelementEnd();
2066
- i0.ɵɵelementStart(4, "div", 330);
2067
- i0.ɵɵconditionalCreate(5, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template, 8, 4);
2068
- i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_6_Template, 3, 0, "span", 331);
1948
+ i0.ɵɵelementStart(4, "div", 306);
1949
+ i0.ɵɵconditionalCreate(5, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_5_Template, 8, 4);
1950
+ i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Conditional_6_Template, 3, 0, "span", 307);
2069
1951
  i0.ɵɵelementEnd()();
2070
- i0.ɵɵelementStart(7, "div", 332)(8, "table", 333)(9, "thead")(10, "tr");
2071
- i0.ɵɵelement(11, "th", 334);
2072
- i0.ɵɵrepeaterCreate(12, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_13_Template, 2, 1, "th", null, i0.ɵɵrepeaterTrackByIdentity);
1952
+ i0.ɵɵelementStart(7, "div", 308)(8, "table", 309)(9, "thead")(10, "tr");
1953
+ i0.ɵɵelement(11, "th", 310);
1954
+ i0.ɵɵrepeaterCreate(12, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_For_13_Template, 2, 1, "th", null, i0.ɵɵrepeaterTrackByIdentity);
2073
1955
  i0.ɵɵelementEnd()();
2074
1956
  i0.ɵɵelementStart(14, "tbody");
2075
- i0.ɵɵrepeaterCreate(15, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Template, 5, 1, "tr", null, i0.ɵɵrepeaterTrackByIndex);
1957
+ i0.ɵɵrepeaterCreate(15, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_For_16_Template, 5, 1, "tr", null, i0.ɵɵrepeaterTrackByIndex);
2076
1958
  i0.ɵɵelementEnd()()()();
2077
1959
  } if (rf & 2) {
2078
1960
  const item_r45 = i0.ɵɵnextContext(2).$implicit;
2079
- const ctx_r0 = i0.ɵɵnextContext(3);
1961
+ const ctx_r1 = i0.ɵɵnextContext(3);
2080
1962
  i0.ɵɵadvance(3);
2081
1963
  i0.ɵɵtextInterpolate2("Data (", item_r45.displayedData.length, " of ", item_r45.itemCount, ")");
2082
1964
  i0.ɵɵadvance(2);
@@ -2084,21 +1966,21 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditio
2084
1966
  i0.ɵɵadvance();
2085
1967
  i0.ɵɵconditional(item_r45.allDataLoaded ? 6 : -1);
2086
1968
  i0.ɵɵadvance(6);
2087
- i0.ɵɵrepeater(ctx_r0.getSampleDataColumns(item_r45));
1969
+ i0.ɵɵrepeater(ctx_r1.getSampleDataColumns(item_r45));
2088
1970
  i0.ɵɵadvance(3);
2089
1971
  i0.ɵɵrepeater(item_r45.displayedData);
2090
1972
  } }
2091
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
2092
- i0.ɵɵelementStart(0, "div", 322)(1, "div", 323)(2, "span", 245);
1973
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
1974
+ i0.ɵɵelementStart(0, "div", 298)(1, "div", 299)(2, "span", 220);
2093
1975
  i0.ɵɵtext(3, "Property:");
2094
1976
  i0.ɵɵelementEnd();
2095
- i0.ɵɵelementStart(4, "code", 324);
1977
+ i0.ɵɵelementStart(4, "code", 300);
2096
1978
  i0.ɵɵtext(5);
2097
1979
  i0.ɵɵelementEnd()();
2098
- i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_6_Template, 5, 1, "div", 323);
2099
- i0.ɵɵconditionalCreate(7, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_7_Template, 5, 1, "div", 323);
2100
- i0.ɵɵconditionalCreate(8, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_8_Template, 5, 1, "div", 325);
2101
- i0.ɵɵconditionalCreate(9, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Conditional_9_Template, 17, 4, "div", 326);
1980
+ i0.ɵɵconditionalCreate(6, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_6_Template, 5, 1, "div", 299);
1981
+ i0.ɵɵconditionalCreate(7, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_7_Template, 5, 1, "div", 299);
1982
+ i0.ɵɵconditionalCreate(8, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_8_Template, 5, 1, "div", 301);
1983
+ i0.ɵɵconditionalCreate(9, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Conditional_9_Template, 17, 4, "div", 302);
2102
1984
  i0.ɵɵelementEnd();
2103
1985
  } if (rf & 2) {
2104
1986
  const item_r45 = i0.ɵɵnextContext().$implicit;
@@ -2113,27 +1995,27 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditio
2113
1995
  i0.ɵɵadvance();
2114
1996
  i0.ɵɵconditional(item_r45.displayedData.length > 0 ? 9 : -1);
2115
1997
  } }
2116
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Template(rf, ctx) { if (rf & 1) {
1998
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Template(rf, ctx) { if (rf & 1) {
2117
1999
  const _r44 = i0.ɵɵgetCurrentView();
2118
- i0.ɵɵelementStart(0, "div", 314)(1, "div", 315);
2119
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Template_div_click_1_listener() { const item_r45 = i0.ɵɵrestoreView(_r44).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.toggleConfigItemExpanded(item_r45)); });
2120
- i0.ɵɵelementStart(2, "div", 316);
2121
- i0.ɵɵelement(3, "i", 317);
2122
- i0.ɵɵelementStart(4, "span", 318);
2000
+ i0.ɵɵelementStart(0, "div", 290)(1, "div", 291);
2001
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Template_div_click_1_listener() { const item_r45 = i0.ɵɵrestoreView(_r44).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleConfigItemExpanded(item_r45)); });
2002
+ i0.ɵɵelementStart(2, "div", 292);
2003
+ i0.ɵɵelement(3, "i", 293);
2004
+ i0.ɵɵelementStart(4, "span", 294);
2123
2005
  i0.ɵɵtext(5);
2124
2006
  i0.ɵɵelementEnd();
2125
- i0.ɵɵelementStart(6, "span", 319);
2007
+ i0.ɵɵelementStart(6, "span", 295);
2126
2008
  i0.ɵɵtext(7);
2127
2009
  i0.ɵɵelementEnd()();
2128
- i0.ɵɵelementStart(8, "div", 320)(9, "span", 321);
2010
+ i0.ɵɵelementStart(8, "div", 296)(9, "span", 297);
2129
2011
  i0.ɵɵtext(10);
2130
2012
  i0.ɵɵelementEnd();
2131
- i0.ɵɵelementStart(11, "span", 321);
2013
+ i0.ɵɵelementStart(11, "span", 297);
2132
2014
  i0.ɵɵtext(12);
2133
2015
  i0.ɵɵelementEnd();
2134
- i0.ɵɵelement(13, "i", 235);
2016
+ i0.ɵɵelement(13, "i", 210);
2135
2017
  i0.ɵɵelementEnd()();
2136
- i0.ɵɵconditionalCreate(14, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Conditional_14_Template, 10, 5, "div", 322);
2018
+ i0.ɵɵconditionalCreate(14, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Conditional_14_Template, 10, 5, "div", 298);
2137
2019
  i0.ɵɵelementEnd();
2138
2020
  } if (rf & 2) {
2139
2021
  const item_r45 = ctx.$implicit;
@@ -2156,84 +2038,84 @@ function SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Template
2156
2038
  i0.ɵɵadvance();
2157
2039
  i0.ɵɵconditional(item_r45.expanded ? 14 : -1);
2158
2040
  } }
2159
- function SystemDiagnosticsComponent_Conditional_63_Conditional_36_Template(rf, ctx) { if (rf & 1) {
2160
- i0.ɵɵelementStart(0, "div", 312);
2161
- i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_63_Conditional_36_For_2_Template, 15, 22, "div", 313, _forTrack7);
2041
+ function SystemDiagnosticsComponent_Conditional_28_Conditional_36_Template(rf, ctx) { if (rf & 1) {
2042
+ i0.ɵɵelementStart(0, "div", 288);
2043
+ i0.ɵɵrepeaterCreate(1, SystemDiagnosticsComponent_Conditional_28_Conditional_36_For_2_Template, 15, 22, "div", 289, _forTrack7);
2162
2044
  i0.ɵɵelementEnd();
2163
2045
  } if (rf & 2) {
2164
- const ctx_r0 = i0.ɵɵnextContext(2);
2046
+ const ctx_r1 = i0.ɵɵnextContext(2);
2165
2047
  i0.ɵɵadvance();
2166
- i0.ɵɵrepeater(ctx_r0.engineDetailPanel.configItems);
2048
+ i0.ɵɵrepeater(ctx_r1.engineDetailPanel.configItems);
2167
2049
  } }
2168
- function SystemDiagnosticsComponent_Conditional_63_Template(rf, ctx) { if (rf & 1) {
2050
+ function SystemDiagnosticsComponent_Conditional_28_Template(rf, ctx) { if (rf & 1) {
2169
2051
  const _r43 = i0.ɵɵgetCurrentView();
2170
- i0.ɵɵelementStart(0, "div", 304);
2171
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_63_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r43); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.closeEngineDetailPanel()); });
2052
+ i0.ɵɵelementStart(0, "div", 280);
2053
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_28_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r43); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeEngineDetailPanel()); });
2172
2054
  i0.ɵɵelementEnd();
2173
- i0.ɵɵelementStart(1, "div", 305)(2, "div", 52)(3, "div", 279);
2174
- i0.ɵɵelement(4, "i", 21);
2055
+ i0.ɵɵelementStart(1, "div", 281)(2, "div", 22)(3, "div", 255);
2056
+ i0.ɵɵelement(4, "i", 23);
2175
2057
  i0.ɵɵelementStart(5, "h3");
2176
2058
  i0.ɵɵtext(6);
2177
2059
  i0.ɵɵelementEnd()();
2178
- i0.ɵɵelementStart(7, "div", 306)(8, "button", 307);
2179
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_63_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r43); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.refreshEngineInDetailPanel()); });
2180
- i0.ɵɵelement(9, "i", 55);
2060
+ i0.ɵɵelementStart(7, "div", 282)(8, "button", 283);
2061
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_28_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r43); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.refreshEngineInDetailPanel()); });
2062
+ i0.ɵɵelement(9, "i", 26);
2181
2063
  i0.ɵɵelementEnd();
2182
- i0.ɵɵelementStart(10, "button", 280);
2183
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_63_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r43); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.closeEngineDetailPanel()); });
2184
- i0.ɵɵelement(11, "i", 116);
2064
+ i0.ɵɵelementStart(10, "button", 256);
2065
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Conditional_28_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r43); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closeEngineDetailPanel()); });
2066
+ i0.ɵɵelement(11, "i", 91);
2185
2067
  i0.ɵɵelementEnd()()();
2186
- i0.ɵɵelementStart(12, "div", 281)(13, "div", 308)(14, "div", 309)(15, "span", 150);
2068
+ i0.ɵɵelementStart(12, "div", 257)(13, "div", 284)(14, "div", 285)(15, "span", 125);
2187
2069
  i0.ɵɵtext(16, "Status");
2188
2070
  i0.ɵɵelementEnd();
2189
- i0.ɵɵelementStart(17, "span", 149);
2190
- i0.ɵɵelement(18, "span", 310);
2071
+ i0.ɵɵelementStart(17, "span", 124);
2072
+ i0.ɵɵelement(18, "span", 286);
2191
2073
  i0.ɵɵtext(19);
2192
2074
  i0.ɵɵelementEnd()();
2193
- i0.ɵɵelementStart(20, "div", 309)(21, "span", 150);
2075
+ i0.ɵɵelementStart(20, "div", 285)(21, "span", 125);
2194
2076
  i0.ɵɵtext(22, "Memory");
2195
2077
  i0.ɵɵelementEnd();
2196
- i0.ɵɵelementStart(23, "span", 149);
2078
+ i0.ɵɵelementStart(23, "span", 124);
2197
2079
  i0.ɵɵtext(24);
2198
2080
  i0.ɵɵelementEnd()();
2199
- i0.ɵɵelementStart(25, "div", 309)(26, "span", 150);
2081
+ i0.ɵɵelementStart(25, "div", 285)(26, "span", 125);
2200
2082
  i0.ɵɵtext(27, "Items");
2201
2083
  i0.ɵɵelementEnd();
2202
- i0.ɵɵelementStart(28, "span", 149);
2084
+ i0.ɵɵelementStart(28, "span", 124);
2203
2085
  i0.ɵɵtext(29);
2204
2086
  i0.ɵɵelementEnd()();
2205
- i0.ɵɵconditionalCreate(30, SystemDiagnosticsComponent_Conditional_63_Conditional_30_Template, 5, 1, "div", 309);
2087
+ i0.ɵɵconditionalCreate(30, SystemDiagnosticsComponent_Conditional_28_Conditional_30_Template, 5, 1, "div", 285);
2206
2088
  i0.ɵɵelementEnd();
2207
- i0.ɵɵelementStart(31, "div", 311)(32, "h4");
2208
- i0.ɵɵelement(33, "i", 27);
2089
+ i0.ɵɵelementStart(31, "div", 287)(32, "h4");
2090
+ i0.ɵɵelement(33, "i", 232);
2209
2091
  i0.ɵɵtext(34);
2210
2092
  i0.ɵɵelementEnd();
2211
- i0.ɵɵconditionalCreate(35, SystemDiagnosticsComponent_Conditional_63_Conditional_35_Template, 4, 0, "div", 190)(36, SystemDiagnosticsComponent_Conditional_63_Conditional_36_Template, 3, 0, "div", 312);
2093
+ i0.ɵɵconditionalCreate(35, SystemDiagnosticsComponent_Conditional_28_Conditional_35_Template, 4, 0, "div", 165)(36, SystemDiagnosticsComponent_Conditional_28_Conditional_36_Template, 3, 0, "div", 288);
2212
2094
  i0.ɵɵelementEnd()()();
2213
2095
  } if (rf & 2) {
2214
- const ctx_r0 = i0.ɵɵnextContext();
2096
+ const ctx_r1 = i0.ɵɵnextContext();
2215
2097
  i0.ɵɵadvance();
2216
- i0.ɵɵclassProp("open", ctx_r0.engineDetailPanel.isOpen);
2098
+ i0.ɵɵclassProp("open", ctx_r1.engineDetailPanel.isOpen);
2217
2099
  i0.ɵɵadvance(5);
2218
- i0.ɵɵtextInterpolate(ctx_r0.engineDetailPanel.engine.className);
2100
+ i0.ɵɵtextInterpolate(ctx_r1.engineDetailPanel.engine.className);
2219
2101
  i0.ɵɵadvance(2);
2220
- i0.ɵɵproperty("disabled", ctx_r0.engineDetailPanel.isRefreshing);
2102
+ i0.ɵɵproperty("disabled", ctx_r1.engineDetailPanel.isRefreshing);
2221
2103
  i0.ɵɵadvance();
2222
- i0.ɵɵclassProp("spinning", ctx_r0.engineDetailPanel.isRefreshing);
2104
+ i0.ɵɵclassProp("spinning", ctx_r1.engineDetailPanel.isRefreshing);
2223
2105
  i0.ɵɵadvance(9);
2224
- i0.ɵɵclassProp("status-loaded", ctx_r0.engineDetailPanel.engine.isLoaded);
2106
+ i0.ɵɵclassProp("status-loaded", ctx_r1.engineDetailPanel.engine.isLoaded);
2225
2107
  i0.ɵɵadvance();
2226
- i0.ɵɵtextInterpolate1(" ", ctx_r0.engineDetailPanel.engine.isLoaded ? "Loaded" : "Not Loaded", " ");
2108
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.engineDetailPanel.engine.isLoaded ? "Loaded" : "Not Loaded", " ");
2227
2109
  i0.ɵɵadvance(5);
2228
- i0.ɵɵtextInterpolate(ctx_r0.engineDetailPanel.engine.memoryDisplay);
2110
+ i0.ɵɵtextInterpolate(ctx_r1.engineDetailPanel.engine.memoryDisplay);
2229
2111
  i0.ɵɵadvance(5);
2230
- i0.ɵɵtextInterpolate(ctx_r0.engineDetailPanel.engine.itemCount.toLocaleString());
2112
+ i0.ɵɵtextInterpolate(ctx_r1.engineDetailPanel.engine.itemCount.toLocaleString());
2231
2113
  i0.ɵɵadvance();
2232
- i0.ɵɵconditional(ctx_r0.engineDetailPanel.engine.lastLoadedAt ? 30 : -1);
2114
+ i0.ɵɵconditional(ctx_r1.engineDetailPanel.engine.lastLoadedAt ? 30 : -1);
2233
2115
  i0.ɵɵadvance(4);
2234
- i0.ɵɵtextInterpolate1(" Data Configs (", ctx_r0.engineDetailPanel.configItems.length, ") ");
2116
+ i0.ɵɵtextInterpolate1(" Data Configs (", ctx_r1.engineDetailPanel.configItems.length, ") ");
2235
2117
  i0.ɵɵadvance();
2236
- i0.ɵɵconditional(ctx_r0.engineDetailPanel.configItems.length === 0 ? 35 : 36);
2118
+ i0.ɵɵconditional(ctx_r1.engineDetailPanel.configItems.length === 0 ? 35 : 36);
2237
2119
  } }
2238
2120
  /**
2239
2121
  * Settings key for persisting user preferences
@@ -2264,7 +2146,6 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
2264
2146
  activeSection = 'engines';
2265
2147
  lastUpdated = new Date();
2266
2148
  isRefreshingEngines = false;
2267
- kpiCardsCollapsed = false;
2268
2149
  // Data
2269
2150
  engineStats = null;
2270
2151
  engines = [];
@@ -2388,6 +2269,50 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
2388
2269
  this.cdr.markForCheck();
2389
2270
  this.saveUserPreferencesDebounced();
2390
2271
  }
2272
+ /**
2273
+ * Adapter for `<mj-tab-nav>`'s string-typed `(TabChange)` output.
2274
+ * Narrows the emitted key to the typed `activeSection` union before
2275
+ * delegating to `setActiveSection`.
2276
+ */
2277
+ onSectionTabChange(key) {
2278
+ if (key === 'engines' || key === 'redundant' || key === 'performance' || key === 'cache') {
2279
+ this.setActiveSection(key);
2280
+ }
2281
+ }
2282
+ /**
2283
+ * L2 section tabs for `<mj-tab-nav>` in the interior chrome's [toolbar] slot.
2284
+ * Badges are dynamic (engine count, redundant-load count w/ warning variant,
2285
+ * telemetry event count, cache entry count).
2286
+ */
2287
+ get diagnosticsTabs() {
2288
+ return [
2289
+ {
2290
+ key: 'engines',
2291
+ icon: 'fa-solid fa-cogs',
2292
+ label: 'Engine Registry',
2293
+ badge: this.engineStats?.totalEngines ?? 0
2294
+ },
2295
+ {
2296
+ key: 'redundant',
2297
+ icon: 'fa-solid fa-copy',
2298
+ label: 'Redundant Loading',
2299
+ badge: this.redundantLoads.length,
2300
+ badgeVariant: this.redundantLoads.length > 0 ? 'warning' : 'success'
2301
+ },
2302
+ {
2303
+ key: 'performance',
2304
+ icon: 'fa-solid fa-chart-line',
2305
+ label: 'Performance',
2306
+ badge: this.telemetrySummary?.totalEvents ?? 0
2307
+ },
2308
+ {
2309
+ key: 'cache',
2310
+ icon: 'fa-solid fa-database',
2311
+ label: 'Local Cache',
2312
+ badge: this.cacheStats?.totalEntries ?? 0
2313
+ }
2314
+ ];
2315
+ }
2391
2316
  toggleAutoRefresh() {
2392
2317
  if (this.autoRefresh) {
2393
2318
  // Start auto-refresh interval
@@ -2401,11 +2326,6 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
2401
2326
  }
2402
2327
  this.saveUserPreferencesDebounced();
2403
2328
  }
2404
- toggleKpiCards() {
2405
- this.kpiCardsCollapsed = !this.kpiCardsCollapsed;
2406
- this.cdr.markForCheck();
2407
- this.saveUserPreferencesDebounced();
2408
- }
2409
2329
  async refreshData() {
2410
2330
  this.isLoading = true;
2411
2331
  this.cdr.markForCheck();
@@ -4498,9 +4418,6 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
4498
4418
  this.searchQuery = params['search'];
4499
4419
  }
4500
4420
  // KPI cards collapsed: ?kpi=collapsed|expanded
4501
- if (params['kpi']) {
4502
- this.kpiCardsCollapsed = params['kpi'] === 'collapsed';
4503
- }
4504
4421
  this.cdr.markForCheck();
4505
4422
  }
4506
4423
  /**
@@ -4513,8 +4430,7 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
4513
4430
  tab: this.perfTab !== 'monitor' ? this.perfTab : null,
4514
4431
  source: this.telemetrySource !== 'client' ? this.telemetrySource : null,
4515
4432
  category: this.categoryFilter !== 'all' ? this.categoryFilter : null,
4516
- search: this.searchQuery.trim() || null,
4517
- kpi: this.kpiCardsCollapsed ? 'collapsed' : null
4433
+ search: this.searchQuery.trim() || null
4518
4434
  };
4519
4435
  // Use NavigationService to update query params properly
4520
4436
  this.navigationService.UpdateActiveTabQueryParams(queryParams);
@@ -4551,8 +4467,6 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
4551
4467
  * Apply loaded user preferences to component state
4552
4468
  */
4553
4469
  applyUserPreferences(prefs) {
4554
- if (prefs.kpiCardsCollapsed !== undefined)
4555
- this.kpiCardsCollapsed = prefs.kpiCardsCollapsed;
4556
4470
  if (prefs.activeSection !== undefined)
4557
4471
  this.activeSection = prefs.activeSection;
4558
4472
  if (prefs.perfTab !== undefined)
@@ -4574,7 +4488,6 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
4574
4488
  */
4575
4489
  getCurrentPreferences() {
4576
4490
  return {
4577
- kpiCardsCollapsed: this.kpiCardsCollapsed,
4578
4491
  activeSection: this.activeSection,
4579
4492
  perfTab: this.perfTab,
4580
4493
  telemetrySource: this.telemetrySource,
@@ -4642,137 +4555,73 @@ let SystemDiagnosticsComponent = class SystemDiagnosticsComponent extends BaseRe
4642
4555
  } if (rf & 2) {
4643
4556
  let _t;
4644
4557
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.perfChartRef = _t.first);
4645
- } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 64, vars: 36, consts: [["perfChart", ""], [1, "system-diagnostics"], [1, "diagnostics-header"], [1, "header-title"], [1, "fa-solid", "fa-stethoscope"], [1, "header-controls"], [1, "auto-refresh-control"], ["type", "checkbox", 3, "ngModelChange", "change", "ngModel"], [1, "refresh-indicator"], [1, "refresh-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-refresh"], [1, "overview-cards-container"], [1, "kpi-toggle-btn", 3, "click", "title"], [1, "fa-solid"], [1, "overview-cards"], [1, "overview-cards-mini"], [1, "main-content"], [1, "left-nav"], [1, "nav-section"], [1, "nav-section-title"], [1, "nav-item", 3, "click"], [1, "fa-solid", "fa-cogs"], [1, "nav-badge"], [1, "fa-solid", "fa-copy"], [1, "nav-badge", "nav-badge--warning"], [1, "nav-badge", "nav-badge--success"], [1, "fa-solid", "fa-chart-line"], [1, "fa-solid", "fa-database"], [1, "content-area"], [1, "section-panel"], [1, "section-panel", "perf-panel"], [1, "footer"], [1, "last-updated"], [1, "fa-solid", "fa-clock"], [1, "export-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-download"], [1, "fa-solid", "fa-sync-alt", "spinning"], [1, "overview-card"], [1, "card-icon", "card-icon--engines"], [1, "card-content"], [1, "card-value"], [1, "card-label"], [1, "card-subtitle"], [1, "card-icon", "card-icon--memory"], [1, "fa-solid", "fa-microchip"], [1, "card-icon"], ["title", "Registered Engines", 1, "mini-kpi"], [1, "mini-value"], [1, "mini-label"], [1, "mini-divider"], ["title", "Engine Memory", 1, "mini-kpi"], ["title", "Redundant Loads", 1, "mini-kpi"], [1, "panel-header"], [1, "panel-actions"], [1, "action-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-sync"], [1, "section-panel-content"], [1, "empty-state"], [1, "engine-grid"], [1, "fa-solid", "fa-inbox"], [1, "empty-hint"], [1, "engine-card", 3, "loaded"], [1, "engine-card"], [1, "engine-header"], [1, "engine-name", 3, "title"], [1, "engine-status"], [1, "engine-stats"], [1, "stat-item"], [1, "stat-label"], [1, "stat-value"], [1, "fa-solid", "fa-layer-group"], [1, "engine-actions"], ["title", "Refresh this engine", 1, "engine-action-btn", 3, "click", "disabled"], ["title", "View engine details", 1, "engine-action-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-arrow-right"], [1, "info-banner"], [1, "fa-solid", "fa-info-circle"], [1, "empty-state", "success-state"], [1, "fa-solid", "fa-check-circle"], [1, "redundant-loads-table-wrapper"], [1, "redundant-loads-table"], [1, "text-right"], [1, "recommendation-banner"], [1, "fa-solid", "fa-lightbulb"], [1, "entity-name"], [1, "engines-cell"], [1, "engine-chips"], [1, "engine-chip"], [1, "text-right", "count-cell"], [1, "count-badge"], [1, "source-toggle"], [1, "source-btn", 3, "click"], [1, "fa-solid", "fa-browser"], [1, "fa-solid", "fa-server"], [1, "action-divider"], [1, "status-indicator", 3, "enabled", "disabled"], [1, "loading-indicator"], [1, "error-banner"], [1, "perf-tabs"], [1, "perf-tab", 3, "click"], [1, "fa-solid", "fa-chart-area"], [1, "fa-solid", "fa-gauge"], [1, "tab-badge", "warning"], [1, "fa-solid", "fa-timeline"], [1, "tab-badge"], [1, "fa-solid", "fa-fingerprint"], [1, "tab-badge", "insight"], [1, "info-banner", "warning-banner"], [1, "perfmon-section"], [1, "action-btn", 3, "click"], [1, "fa-solid", "fa-trash"], [1, "status-indicator"], ["title", "Configure via mj.config.cjs telemetry section", 1, "config-note"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "dismiss-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "perfmon-header"], [1, "perfmon-legend"], [1, "legend-item", "runview"], [1, "legend-dot"], [1, "legend-item", "runquery"], [1, "legend-item", "engine"], [1, "legend-item", "ai"], [1, "perfmon-controls"], ["title", "Chart Interaction Mode", 1, "mode-toggle"], ["title", "Pointer mode - click events to view details", 1, "mode-btn", 3, "click"], [1, "fa-solid", "fa-arrow-pointer"], ["title", "Select mode - drag to zoom into a time range", 1, "mode-btn", 3, "click"], [1, "fa-solid", "fa-vector-square"], ["title", "Pan mode - drag to pan the chart", 1, "mode-btn", 3, "click"], [1, "fa-solid", "fa-hand"], [1, "control-divider"], ["title", "Zoom In", 1, "chart-control-btn", 3, "click"], [1, "fa-solid", "fa-search-plus"], ["title", "Zoom Out", 1, "chart-control-btn", 3, "click"], [1, "fa-solid", "fa-search-minus"], ["title", "Reset Zoom", 1, "chart-control-btn", 3, "click"], [1, "fa-solid", "fa-expand"], ["title", "Automatically compress gaps with no activity", 1, "compress-toggle"], [1, "perfmon-chart-container"], [1, "perfmon-y-axis"], [1, "axis-label"], [1, "perfmon-chart"], [1, "perfmon-footer"], [1, "footer-note"], [1, "footer-stats"], [1, "telemetry-summary"], [1, "summary-card"], [1, "summary-value"], [1, "summary-label"], [1, "category-breakdown"], [1, "slow-queries-section"], [1, "success-banner"], [1, "category-grid"], [1, "category-item"], [1, "category-item", 3, "click"], [1, "category-name"], [1, "category-events"], [1, "category-avg"], [1, "fa-solid", "fa-turtle"], [1, "slow-queries-list"], [1, "slow-query-item", "clickable", 3, "cache-hit"], [1, "slow-query-item", "clickable", 3, "click"], [1, "slow-query-main"], [1, "category-chip", "small"], [1, "slow-query-entity"], ["title", "Data served from local cache", 1, "cache-hit-badge", "small"], [1, "slow-query-time"], [1, "slow-query-entities"], [1, "slow-query-pills"], [1, "slow-query-filter"], [1, "slow-query-timestamp"], [1, "fa-solid", "fa-bolt"], [1, "entity-pill", "small"], [1, "entity-pill", "small", "more"], [1, "param-pill", "small", 3, "class", "title"], [1, "param-pill", "small", 3, "title"], [1, "pill-label"], [1, "pill-value"], [1, "filter-bar", "compact"], [1, "search-box"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search events...", 3, "ngModelChange", "ngModel"], [1, "clear-search"], [1, "filter-buttons"], [1, "filter-btn", 3, "click"], [1, "filter-btn", 3, "active"], [1, "timeline-section"], [1, "timeline-container"], [1, "empty-state", "small"], [1, "clear-search", 3, "click"], [1, "timeline-item", "clickable", 3, "class", "cache-hit"], [1, "timeline-item", "clickable", 3, "click"], [1, "timeline-marker"], [1, "marker-bolt"], [1, "marker-dot"], [1, "marker-line"], [1, "timeline-content"], [1, "timeline-header"], [1, "timeline-time"], ["title", "Data served from local cache", 1, "cache-hit-badge"], [1, "timeline-duration", 3, "slow"], [1, "timeline-body"], [1, "timeline-operation"], [1, "timeline-entity"], [1, "timeline-entities"], [1, "timeline-pills"], [1, "timeline-filter"], [1, "timeline-duration"], [1, "entity-pill"], [1, "entity-pill", "more"], [1, "param-pill", 3, "class", "title"], [1, "param-pill", 3, "title"], [1, "fa-solid", "fa-hourglass-start"], ["type", "text", "placeholder", "Search patterns...", 3, "ngModelChange", "ngModel"], [1, "patterns-section"], [1, "patterns-table-wrapper"], [1, "patterns-table", "sortable"], [1, "sortable-header", 3, "click"], [1, "sortable-header", "text-right", 3, "click"], [3, "duplicate-row", "slow-row"], [1, "category-chip"], [1, "operation-cell"], [1, "entity-cell"], [1, "filter-cell", 3, "title"], [1, "count-warning"], [1, "fa-solid", "fa-filter"], [1, "insights-section"], [1, "insights-list"], [1, "insight-card", "expandable", 3, "class", "expanded"], [1, "insight-card", "expandable"], [1, "insight-header", 3, "click"], [1, "insight-title"], [1, "insight-category"], [1, "fa-solid", "expand-icon"], [1, "insight-key-info"], [1, "key-info-item"], [1, "insight-message"], [1, "insight-suggestion"], [1, "insight-details"], [1, "key-label"], [1, "key-value", "entity-name"], [1, "key-value", "filter-code"], [1, "detail-section"], [1, "detail-label"], [1, "params-display"], [1, "param-row"], [1, "related-events"], [1, "related-event"], [1, "param-key"], [1, "param-value"], [1, "event-time"], [1, "event-duration"], [1, "event-entity"], [1, "event-filter"], [1, "fa-solid", "fa-check-circle", 2, "color", "var(--mj-status-success)"], [1, "cache-summary"], [1, "cache-type-breakdown"], [1, "type-grid"], [1, "type-item", 3, "click"], [1, "type-icon"], [1, "type-name"], [1, "type-count"], [1, "type-size"], [1, "fa-solid", "fa-table"], [1, "fa-solid", "fa-code"], [1, "cache-entries-section"], [1, "section-header"], [1, "filter-controls"], [1, "cache-entries-table-wrapper"], [1, "cache-entries-table"], [1, "table-footer"], [1, "cache-type-chip"], [1, "entry-name"], [1, "entry-fingerprint"], ["title", "Invalidate", 1, "icon-btn", 3, "click"], [1, "event-detail-overlay", 3, "click"], [1, "event-detail-panel"], [1, "panel-title"], [1, "close-btn", 3, "click"], [1, "panel-body"], [1, "detail-metrics"], [1, "metric"], [1, "metric-value"], [1, "metric-label"], [1, "detail-content"], [1, "detail-row"], [1, "detail-key"], [1, "detail-val"], [1, "fa-solid", "fa-sliders"], [1, "params-grid"], [1, "param-item"], [1, "detail-actions"], [1, "action-button", 3, "click"], [1, "action-button"], [1, "detail-val", "entity-highlight"], [1, "detail-val", "filter-val"], [1, "param-name"], [1, "param-val"], [1, "pattern-summary"], [1, "pattern-stat"], [1, "stat-val"], [1, "pattern-warning"], [1, "engine-detail-overlay", 3, "click"], [1, "engine-detail-panel"], [1, "panel-header-actions"], ["title", "Refresh engine", 1, "icon-btn", 3, "click", "disabled"], [1, "engine-summary-section"], [1, "summary-stat"], [1, "status-dot"], [1, "config-items-section"], [1, "config-items-list"], [1, "config-item", 3, "expanded"], [1, "config-item"], [1, "config-item-header", 3, "click"], [1, "config-item-info"], [1, "fa-solid", "config-health-icon", 3, "title"], [1, "config-type-chip"], [1, "config-name"], [1, "config-item-stats"], [1, "config-stat"], [1, "config-item-details"], [1, "config-detail-row"], [1, "detail-value"], [1, "config-detail-row", "config-detail-row--error"], [1, "sample-data-section"], [1, "detail-value", "detail-value--error"], [1, "sample-header"], [1, "sample-title"], [1, "sample-header-actions"], [1, "all-loaded-badge"], [1, "sample-data-table-wrapper"], [1, "sample-data-table"], [1, "action-col"], ["title", "Load more records", 1, "load-more-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "spinning"], [1, "fa-solid", "fa-plus"], ["title", "Load all records", 1, "load-all-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-check"], ["title", "Open record", 1, "open-record-btn"], [3, "title"], ["title", "Open record", 1, "open-record-btn", 3, "click"], [1, "fa-solid", "fa-external-link-alt"]], template: function SystemDiagnosticsComponent_Template(rf, ctx) { if (rf & 1) {
4646
- i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "div", 3);
4647
- i0.ɵɵelement(3, "i", 4);
4648
- i0.ɵɵelementStart(4, "h2");
4649
- i0.ɵɵtext(5, "System Diagnostics");
4558
+ } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 29, vars: 21, consts: [["perfChart", ""], ["Role", "region", "AriaLabel", "System diagnostics", "Title", "System Diagnostics", "Subtitle", "Engine registry, cache, and performance telemetry"], ["meta", ""], ["Label", "engines", 3, "Count"], ["Label", "memory", 3, "Count"], ["Label", "redundant", 3, "Count", "Variant"], ["toolbar", ""], [3, "TabChange", "Tabs", "ActiveKey"], ["actions", ""], [1, "auto-refresh-toggle"], ["type", "checkbox", 3, "ngModelChange", "change", "ngModel"], ["Label", "Refresh Now", 3, "Clicked", "Loading", "ShowLabel"], [3, "Padding"], [1, "system-diagnostics"], [1, "content-area"], [1, "section-panel"], [1, "section-panel", "perf-panel"], [1, "footer"], [1, "last-updated"], [1, "fa-solid", "fa-clock"], [1, "export-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-download"], [1, "panel-header"], [1, "fa-solid", "fa-cogs"], [1, "panel-actions"], [1, "action-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-sync"], [1, "section-panel-content"], [1, "empty-state"], [1, "engine-grid"], [1, "fa-solid", "fa-inbox"], [1, "empty-hint"], [1, "engine-card", 3, "loaded"], [1, "engine-card"], [1, "engine-header"], [1, "engine-name", 3, "title"], [1, "engine-status"], [1, "engine-stats"], [1, "stat-item"], [1, "fa-solid", "fa-microchip"], [1, "stat-label"], [1, "stat-value"], [1, "fa-solid", "fa-layer-group"], [1, "engine-actions"], ["title", "Refresh this engine", 1, "engine-action-btn", 3, "click", "disabled"], ["title", "View engine details", 1, "engine-action-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-arrow-right"], [1, "fa-solid", "fa-copy"], [1, "info-banner"], [1, "fa-solid", "fa-info-circle"], [1, "empty-state", "success-state"], [1, "fa-solid", "fa-check-circle"], [1, "redundant-loads-table-wrapper"], [1, "redundant-loads-table"], [1, "text-right"], [1, "recommendation-banner"], [1, "fa-solid", "fa-lightbulb"], [1, "entity-name"], [1, "engines-cell"], [1, "engine-chips"], [1, "engine-chip"], [1, "text-right", "count-cell"], [1, "count-badge"], [1, "fa-solid", "fa-chart-line"], [1, "source-toggle"], [1, "source-btn", 3, "click"], [1, "fa-solid", "fa-browser"], [1, "fa-solid", "fa-server"], [1, "action-divider"], [1, "status-indicator", 3, "enabled", "disabled"], [1, "loading-indicator"], [1, "error-banner"], [1, "perf-tabs"], [1, "perf-tab", 3, "click"], [1, "fa-solid", "fa-chart-area"], [1, "fa-solid", "fa-gauge"], [1, "tab-badge", "warning"], [1, "fa-solid", "fa-timeline"], [1, "tab-badge"], [1, "fa-solid", "fa-fingerprint"], [1, "tab-badge", "insight"], [1, "info-banner", "warning-banner"], [1, "perfmon-section"], [1, "action-btn", 3, "click"], [1, "fa-solid"], [1, "fa-solid", "fa-trash"], [1, "status-indicator"], ["title", "Configure via mj.config.cjs telemetry section", 1, "config-note"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "dismiss-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "perfmon-header"], [1, "perfmon-legend"], [1, "legend-item", "runview"], [1, "legend-dot"], [1, "legend-item", "runquery"], [1, "legend-item", "engine"], [1, "legend-item", "ai"], [1, "perfmon-controls"], ["title", "Chart Interaction Mode", 1, "mode-toggle"], ["title", "Pointer mode - click events to view details", 1, "mode-btn", 3, "click"], [1, "fa-solid", "fa-arrow-pointer"], ["title", "Select mode - drag to zoom into a time range", 1, "mode-btn", 3, "click"], [1, "fa-solid", "fa-vector-square"], ["title", "Pan mode - drag to pan the chart", 1, "mode-btn", 3, "click"], [1, "fa-solid", "fa-hand"], [1, "control-divider"], ["title", "Zoom In", 1, "chart-control-btn", 3, "click"], [1, "fa-solid", "fa-search-plus"], ["title", "Zoom Out", 1, "chart-control-btn", 3, "click"], [1, "fa-solid", "fa-search-minus"], ["title", "Reset Zoom", 1, "chart-control-btn", 3, "click"], [1, "fa-solid", "fa-expand"], ["title", "Automatically compress gaps with no activity", 1, "compress-toggle"], [1, "perfmon-chart-container"], [1, "perfmon-y-axis"], [1, "axis-label"], [1, "perfmon-chart"], [1, "perfmon-footer"], [1, "footer-note"], [1, "footer-stats"], [1, "telemetry-summary"], [1, "summary-card"], [1, "summary-value"], [1, "summary-label"], [1, "category-breakdown"], [1, "slow-queries-section"], [1, "success-banner"], [1, "category-grid"], [1, "category-item"], [1, "category-item", 3, "click"], [1, "category-name"], [1, "category-events"], [1, "category-avg"], [1, "fa-solid", "fa-turtle"], [1, "slow-queries-list"], [1, "slow-query-item", "clickable", 3, "cache-hit"], [1, "slow-query-item", "clickable", 3, "click"], [1, "slow-query-main"], [1, "category-chip", "small"], [1, "slow-query-entity"], ["title", "Data served from local cache", 1, "cache-hit-badge", "small"], [1, "slow-query-time"], [1, "slow-query-entities"], [1, "slow-query-pills"], [1, "slow-query-filter"], [1, "slow-query-timestamp"], [1, "fa-solid", "fa-bolt"], [1, "entity-pill", "small"], [1, "entity-pill", "small", "more"], [1, "param-pill", "small", 3, "class", "title"], [1, "param-pill", "small", 3, "title"], [1, "pill-label"], [1, "pill-value"], [1, "filter-bar", "compact"], [1, "search-box"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search events...", 3, "ngModelChange", "ngModel"], [1, "clear-search"], [1, "filter-buttons"], [1, "filter-btn", 3, "click"], [1, "filter-btn", 3, "active"], [1, "timeline-section"], [1, "timeline-container"], [1, "empty-state", "small"], [1, "clear-search", 3, "click"], [1, "timeline-item", "clickable", 3, "class", "cache-hit"], [1, "timeline-item", "clickable", 3, "click"], [1, "timeline-marker"], [1, "marker-bolt"], [1, "marker-dot"], [1, "marker-line"], [1, "timeline-content"], [1, "timeline-header"], [1, "timeline-time"], ["title", "Data served from local cache", 1, "cache-hit-badge"], [1, "timeline-duration", 3, "slow"], [1, "timeline-body"], [1, "timeline-operation"], [1, "timeline-entity"], [1, "timeline-entities"], [1, "timeline-pills"], [1, "timeline-filter"], [1, "timeline-duration"], [1, "entity-pill"], [1, "entity-pill", "more"], [1, "param-pill", 3, "class", "title"], [1, "param-pill", 3, "title"], [1, "fa-solid", "fa-hourglass-start"], ["type", "text", "placeholder", "Search patterns...", 3, "ngModelChange", "ngModel"], [1, "patterns-section"], [1, "patterns-table-wrapper"], [1, "patterns-table", "sortable"], [1, "sortable-header", 3, "click"], [1, "sortable-header", "text-right", 3, "click"], [3, "duplicate-row", "slow-row"], [1, "category-chip"], [1, "operation-cell"], [1, "entity-cell"], [1, "filter-cell", 3, "title"], [1, "count-warning"], [1, "fa-solid", "fa-filter"], [1, "insights-section"], [1, "insights-list"], [1, "insight-card", "expandable", 3, "class", "expanded"], [1, "insight-card", "expandable"], [1, "insight-header", 3, "click"], [1, "insight-title"], [1, "insight-category"], [1, "fa-solid", "expand-icon"], [1, "insight-key-info"], [1, "key-info-item"], [1, "insight-message"], [1, "insight-suggestion"], [1, "insight-details"], [1, "key-label"], [1, "key-value", "entity-name"], [1, "key-value", "filter-code"], [1, "detail-section"], [1, "detail-label"], [1, "params-display"], [1, "param-row"], [1, "related-events"], [1, "related-event"], [1, "param-key"], [1, "param-value"], [1, "event-time"], [1, "event-duration"], [1, "event-entity"], [1, "event-filter"], [1, "fa-solid", "fa-check-circle", 2, "color", "var(--mj-status-success)"], [1, "fa-solid", "fa-database"], [1, "cache-summary"], [1, "cache-type-breakdown"], [1, "type-grid"], [1, "type-item", 3, "click"], [1, "type-icon"], [1, "type-name"], [1, "type-count"], [1, "type-size"], [1, "fa-solid", "fa-table"], [1, "fa-solid", "fa-code"], [1, "cache-entries-section"], [1, "section-header"], [1, "filter-controls"], [1, "cache-entries-table-wrapper"], [1, "cache-entries-table"], [1, "table-footer"], [1, "cache-type-chip"], [1, "entry-name"], [1, "entry-fingerprint"], ["title", "Invalidate", 1, "icon-btn", 3, "click"], [1, "event-detail-overlay", 3, "click"], [1, "event-detail-panel"], [1, "panel-title"], [1, "close-btn", 3, "click"], [1, "panel-body"], [1, "detail-metrics"], [1, "metric"], [1, "metric-value"], [1, "metric-label"], [1, "detail-content"], [1, "detail-row"], [1, "detail-key"], [1, "detail-val"], [1, "fa-solid", "fa-sliders"], [1, "params-grid"], [1, "param-item"], [1, "detail-actions"], [1, "action-button", 3, "click"], [1, "action-button"], [1, "detail-val", "entity-highlight"], [1, "detail-val", "filter-val"], [1, "param-name"], [1, "param-val"], [1, "pattern-summary"], [1, "pattern-stat"], [1, "stat-val"], [1, "pattern-warning"], [1, "engine-detail-overlay", 3, "click"], [1, "engine-detail-panel"], [1, "panel-header-actions"], ["title", "Refresh engine", 1, "icon-btn", 3, "click", "disabled"], [1, "engine-summary-section"], [1, "summary-stat"], [1, "status-dot"], [1, "config-items-section"], [1, "config-items-list"], [1, "config-item", 3, "expanded"], [1, "config-item"], [1, "config-item-header", 3, "click"], [1, "config-item-info"], [1, "fa-solid", "config-health-icon", 3, "title"], [1, "config-type-chip"], [1, "config-name"], [1, "config-item-stats"], [1, "config-stat"], [1, "config-item-details"], [1, "config-detail-row"], [1, "detail-value"], [1, "config-detail-row", "config-detail-row--error"], [1, "sample-data-section"], [1, "detail-value", "detail-value--error"], [1, "sample-header"], [1, "sample-title"], [1, "sample-header-actions"], [1, "all-loaded-badge"], [1, "sample-data-table-wrapper"], [1, "sample-data-table"], [1, "action-col"], ["title", "Load more records", 1, "load-more-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "spinning"], [1, "fa-solid", "fa-plus"], ["title", "Load all records", 1, "load-all-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-check"], ["title", "Open record", 1, "open-record-btn"], [3, "title"], ["title", "Open record", 1, "open-record-btn", 3, "click"], [1, "fa-solid", "fa-external-link-alt"]], template: function SystemDiagnosticsComponent_Template(rf, ctx) { if (rf & 1) {
4559
+ i0.ɵɵelementStart(0, "mj-page-header-interior", 1)(1, "div", 2);
4560
+ i0.ɵɵelement(2, "mj-stat-badge", 3)(3, "mj-stat-badge", 4)(4, "mj-stat-badge", 5);
4561
+ i0.ɵɵelementEnd();
4562
+ i0.ɵɵelementStart(5, "div", 6)(6, "mj-tab-nav", 7);
4563
+ i0.ɵɵlistener("TabChange", function SystemDiagnosticsComponent_Template_mj_tab_nav_TabChange_6_listener($event) { return ctx.onSectionTabChange($event); });
4650
4564
  i0.ɵɵelementEnd()();
4651
- i0.ɵɵelementStart(6, "div", 5)(7, "div", 6)(8, "label")(9, "input", 7);
4565
+ i0.ɵɵelementStart(7, "div", 8)(8, "label", 9)(9, "input", 10);
4652
4566
  i0.ɵɵtwoWayListener("ngModelChange", function SystemDiagnosticsComponent_Template_input_ngModelChange_9_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.autoRefresh, $event) || (ctx.autoRefresh = $event); return $event; });
4653
4567
  i0.ɵɵlistener("change", function SystemDiagnosticsComponent_Template_input_change_9_listener() { return ctx.toggleAutoRefresh(); });
4654
4568
  i0.ɵɵelementEnd();
4655
4569
  i0.ɵɵtext(10, " Auto-refresh ");
4656
4570
  i0.ɵɵelementEnd();
4657
- i0.ɵɵconditionalCreate(11, SystemDiagnosticsComponent_Conditional_11_Template, 3, 0, "span", 8);
4658
- i0.ɵɵelementEnd();
4659
- i0.ɵɵelementStart(12, "button", 9);
4660
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_button_click_12_listener() { return ctx.refreshData(); });
4661
- i0.ɵɵelement(13, "i", 10);
4662
- i0.ɵɵtext(14, " Refresh Now ");
4571
+ i0.ɵɵelementStart(11, "mj-refresh-button", 11);
4572
+ i0.ɵɵlistener("Clicked", function SystemDiagnosticsComponent_Template_mj_refresh_button_Clicked_11_listener() { return ctx.refreshData(); });
4663
4573
  i0.ɵɵelementEnd()()();
4664
- i0.ɵɵelementStart(15, "div", 11)(16, "button", 12);
4665
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_button_click_16_listener() { return ctx.toggleKpiCards(); });
4666
- i0.ɵɵelement(17, "i", 13);
4574
+ i0.ɵɵelementStart(12, "mj-page-body-interior", 12)(13, "div", 13)(14, "div", 14);
4575
+ i0.ɵɵconditionalCreate(15, SystemDiagnosticsComponent_Conditional_15_Template, 12, 4, "div", 15);
4576
+ i0.ɵɵconditionalCreate(16, SystemDiagnosticsComponent_Conditional_16_Template, 14, 1, "div", 15);
4577
+ i0.ɵɵconditionalCreate(17, SystemDiagnosticsComponent_Conditional_17_Template, 52, 27, "div", 16);
4578
+ i0.ɵɵconditionalCreate(18, SystemDiagnosticsComponent_Conditional_18_Template, 12, 2, "div", 15);
4667
4579
  i0.ɵɵelementEnd();
4668
- i0.ɵɵconditionalCreate(18, SystemDiagnosticsComponent_Conditional_18_Template, 32, 9, "div", 14)(19, SystemDiagnosticsComponent_Conditional_19_Template, 21, 5, "div", 15);
4580
+ i0.ɵɵelementStart(19, "div", 17)(20, "span", 18);
4581
+ i0.ɵɵelement(21, "i", 19);
4582
+ i0.ɵɵtext(22);
4583
+ i0.ɵɵpipe(23, "date");
4669
4584
  i0.ɵɵelementEnd();
4670
- i0.ɵɵelementStart(20, "div", 16)(21, "div", 17)(22, "div", 18)(23, "div", 19);
4671
- i0.ɵɵtext(24, "Diagnostics");
4672
- i0.ɵɵelementEnd();
4673
- i0.ɵɵelementStart(25, "div", 20);
4674
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_div_click_25_listener() { return ctx.setActiveSection("engines"); });
4675
- i0.ɵɵelement(26, "i", 21);
4676
- i0.ɵɵelementStart(27, "span");
4677
- i0.ɵɵtext(28, "Engine Registry");
4678
- i0.ɵɵelementEnd();
4679
- i0.ɵɵelementStart(29, "span", 22);
4680
- i0.ɵɵtext(30);
4681
- i0.ɵɵelementEnd()();
4682
- i0.ɵɵelementStart(31, "div", 20);
4683
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_div_click_31_listener() { return ctx.setActiveSection("redundant"); });
4684
- i0.ɵɵelement(32, "i", 23);
4685
- i0.ɵɵelementStart(33, "span");
4686
- i0.ɵɵtext(34, "Redundant Loading");
4687
- i0.ɵɵelementEnd();
4688
- i0.ɵɵconditionalCreate(35, SystemDiagnosticsComponent_Conditional_35_Template, 2, 1, "span", 24)(36, SystemDiagnosticsComponent_Conditional_36_Template, 2, 0, "span", 25);
4689
- i0.ɵɵelementEnd();
4690
- i0.ɵɵelementStart(37, "div", 20);
4691
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_div_click_37_listener() { return ctx.setActiveSection("performance"); });
4692
- i0.ɵɵelement(38, "i", 26);
4693
- i0.ɵɵelementStart(39, "span");
4694
- i0.ɵɵtext(40, "Performance");
4695
- i0.ɵɵelementEnd();
4696
- i0.ɵɵelementStart(41, "span", 22);
4697
- i0.ɵɵtext(42);
4698
- i0.ɵɵelementEnd()();
4699
- i0.ɵɵelementStart(43, "div", 20);
4700
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_div_click_43_listener() { return ctx.setActiveSection("cache"); });
4701
- i0.ɵɵelement(44, "i", 27);
4702
- i0.ɵɵelementStart(45, "span");
4703
- i0.ɵɵtext(46, "Local Cache");
4704
- i0.ɵɵelementEnd();
4705
- i0.ɵɵelementStart(47, "span", 22);
4706
- i0.ɵɵtext(48);
4707
- i0.ɵɵelementEnd()()()();
4708
- i0.ɵɵelementStart(49, "div", 28);
4709
- i0.ɵɵconditionalCreate(50, SystemDiagnosticsComponent_Conditional_50_Template, 12, 4, "div", 29);
4710
- i0.ɵɵconditionalCreate(51, SystemDiagnosticsComponent_Conditional_51_Template, 14, 1, "div", 29);
4711
- i0.ɵɵconditionalCreate(52, SystemDiagnosticsComponent_Conditional_52_Template, 52, 27, "div", 30);
4712
- i0.ɵɵconditionalCreate(53, SystemDiagnosticsComponent_Conditional_53_Template, 12, 2, "div", 29);
4713
- i0.ɵɵelementEnd()();
4714
- i0.ɵɵelementStart(54, "div", 31)(55, "span", 32);
4715
- i0.ɵɵelement(56, "i", 33);
4716
- i0.ɵɵtext(57);
4717
- i0.ɵɵpipe(58, "date");
4718
- i0.ɵɵelementEnd();
4719
- i0.ɵɵelementStart(59, "button", 34);
4720
- i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_button_click_59_listener() { return ctx.exportTelemetryData(); });
4721
- i0.ɵɵelement(60, "i", 35);
4722
- i0.ɵɵtext(61, " Export JSON ");
4585
+ i0.ɵɵelementStart(24, "button", 20);
4586
+ i0.ɵɵlistener("click", function SystemDiagnosticsComponent_Template_button_click_24_listener() { return ctx.exportTelemetryData(); });
4587
+ i0.ɵɵelement(25, "i", 21);
4588
+ i0.ɵɵtext(26, " Export JSON ");
4723
4589
  i0.ɵɵelementEnd()()();
4724
- i0.ɵɵconditionalCreate(62, SystemDiagnosticsComponent_Conditional_62_Template, 53, 18);
4725
- i0.ɵɵconditionalCreate(63, SystemDiagnosticsComponent_Conditional_63_Template, 37, 14);
4590
+ i0.ɵɵconditionalCreate(27, SystemDiagnosticsComponent_Conditional_27_Template, 53, 18);
4591
+ i0.ɵɵconditionalCreate(28, SystemDiagnosticsComponent_Conditional_28_Template, 37, 14);
4592
+ i0.ɵɵelementEnd();
4726
4593
  } if (rf & 2) {
4727
- i0.ɵɵadvance(9);
4728
- i0.ɵɵtwoWayProperty("ngModel", ctx.autoRefresh);
4729
4594
  i0.ɵɵadvance(2);
4730
- i0.ɵɵconditional(ctx.autoRefresh ? 11 : -1);
4595
+ i0.ɵɵproperty("Count", (ctx.engineStats == null ? null : ctx.engineStats.totalEngines) || 0);
4731
4596
  i0.ɵɵadvance();
4732
- i0.ɵɵproperty("disabled", ctx.isLoading);
4597
+ i0.ɵɵproperty("Count", ctx.formatBytes((ctx.engineStats == null ? null : ctx.engineStats.totalEstimatedMemoryBytes) || 0));
4733
4598
  i0.ɵɵadvance();
4734
- i0.ɵɵclassProp("spinning", ctx.isLoading);
4599
+ i0.ɵɵproperty("Count", ctx.redundantLoads.length)("Variant", ctx.redundantLoads.length > 0 ? "warning" : "default");
4735
4600
  i0.ɵɵadvance(2);
4736
- i0.ɵɵclassProp("collapsed", ctx.kpiCardsCollapsed);
4737
- i0.ɵɵadvance();
4738
- i0.ɵɵproperty("title", ctx.kpiCardsCollapsed ? "Expand KPI cards" : "Collapse KPI cards");
4739
- i0.ɵɵadvance();
4740
- i0.ɵɵclassProp("fa-chevron-up", !ctx.kpiCardsCollapsed)("fa-chevron-down", ctx.kpiCardsCollapsed);
4741
- i0.ɵɵadvance();
4742
- i0.ɵɵconditional(!ctx.kpiCardsCollapsed ? 18 : 19);
4743
- i0.ɵɵadvance(7);
4744
- i0.ɵɵclassProp("active", ctx.activeSection === "engines");
4745
- i0.ɵɵadvance(5);
4746
- i0.ɵɵtextInterpolate((ctx.engineStats == null ? null : ctx.engineStats.totalEngines) || 0);
4747
- i0.ɵɵadvance();
4748
- i0.ɵɵclassProp("active", ctx.activeSection === "redundant");
4749
- i0.ɵɵadvance(4);
4750
- i0.ɵɵconditional(ctx.redundantLoads.length > 0 ? 35 : 36);
4601
+ i0.ɵɵproperty("Tabs", ctx.diagnosticsTabs)("ActiveKey", ctx.activeSection);
4602
+ i0.ɵɵadvance(3);
4603
+ i0.ɵɵtwoWayProperty("ngModel", ctx.autoRefresh);
4751
4604
  i0.ɵɵadvance(2);
4752
- i0.ɵɵclassProp("active", ctx.activeSection === "performance");
4753
- i0.ɵɵadvance(5);
4754
- i0.ɵɵtextInterpolate((ctx.telemetrySummary == null ? null : ctx.telemetrySummary.totalEvents) || 0);
4605
+ i0.ɵɵproperty("Loading", ctx.isLoading)("ShowLabel", true);
4755
4606
  i0.ɵɵadvance();
4756
- i0.ɵɵclassProp("active", ctx.activeSection === "cache");
4757
- i0.ɵɵadvance(5);
4758
- i0.ɵɵtextInterpolate((ctx.cacheStats == null ? null : ctx.cacheStats.totalEntries) || 0);
4759
- i0.ɵɵadvance(2);
4760
- i0.ɵɵconditional(ctx.activeSection === "engines" ? 50 : -1);
4607
+ i0.ɵɵproperty("Padding", false);
4608
+ i0.ɵɵadvance(3);
4609
+ i0.ɵɵconditional(ctx.activeSection === "engines" ? 15 : -1);
4761
4610
  i0.ɵɵadvance();
4762
- i0.ɵɵconditional(ctx.activeSection === "redundant" ? 51 : -1);
4611
+ i0.ɵɵconditional(ctx.activeSection === "redundant" ? 16 : -1);
4763
4612
  i0.ɵɵadvance();
4764
- i0.ɵɵconditional(ctx.activeSection === "performance" ? 52 : -1);
4613
+ i0.ɵɵconditional(ctx.activeSection === "performance" ? 17 : -1);
4765
4614
  i0.ɵɵadvance();
4766
- i0.ɵɵconditional(ctx.activeSection === "cache" ? 53 : -1);
4615
+ i0.ɵɵconditional(ctx.activeSection === "cache" ? 18 : -1);
4767
4616
  i0.ɵɵadvance(4);
4768
- i0.ɵɵtextInterpolate1(" Last updated: ", i0.ɵɵpipeBind2(58, 33, ctx.lastUpdated, "medium"), " ");
4617
+ i0.ɵɵtextInterpolate1(" Last updated: ", i0.ɵɵpipeBind2(23, 18, ctx.lastUpdated, "medium"), " ");
4769
4618
  i0.ɵɵadvance(2);
4770
4619
  i0.ɵɵproperty("disabled", !ctx.telemetryEnabled || ctx.telemetryEvents.length === 0);
4771
4620
  i0.ɵɵadvance(3);
4772
- i0.ɵɵconditional(ctx.eventDetailPanel.isOpen && ctx.eventDetailPanel.event ? 62 : -1);
4621
+ i0.ɵɵconditional(ctx.eventDetailPanel.isOpen && ctx.eventDetailPanel.event ? 27 : -1);
4773
4622
  i0.ɵɵadvance();
4774
- i0.ɵɵconditional(ctx.engineDetailPanel.isOpen && ctx.engineDetailPanel.engine ? 63 : -1);
4775
- } }, dependencies: [i2.DefaultValueAccessor, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.NgModel, i3.DecimalPipe, i3.DatePipe], styles: [".system-diagnostics[_ngcontent-%COMP%] {\n padding: 0;\n background: var(--mj-bg-surface-sunken);\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n\n\n.diagnostics-header[_ngcontent-%COMP%] {\n background: var(--mj-bg-page);\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n flex-shrink: 0;\n}\n\n.header-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.header-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 24px;\n color: var(--mj-status-success);\n}\n\n.header-title[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 22px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.header-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 20px;\n}\n\n.auto-refresh-control[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.auto-refresh-control[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n}\n\n.auto-refresh-control[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.refresh-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--mj-status-success);\n font-size: 12px;\n}\n\n.refresh-btn[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n border: none;\n padding: 10px 20px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n}\n\n.refresh-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-color-success-800);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-status-success) 30%, transparent);\n}\n\n.refresh-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.spinning[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n\n\n.overview-cards-container[_ngcontent-%COMP%] {\n position: relative;\n background: var(--mj-bg-page);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n transition: all 0.3s ease;\n}\n\n.overview-cards-container.collapsed[_ngcontent-%COMP%] {\n padding: 0;\n}\n\n.kpi-toggle-btn[_ngcontent-%COMP%] {\n position: absolute;\n right: 24px;\n top: 50%;\n transform: translateY(-50%);\n width: 28px;\n height: 28px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n transition: all 0.2s ease;\n z-index: 10;\n}\n\n.kpi-toggle-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.overview-cards-container.collapsed[_ngcontent-%COMP%] .kpi-toggle-btn[_ngcontent-%COMP%] {\n top: 50%;\n}\n\n\n\n.overview-cards[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n padding: 20px 24px;\n padding-right: 60px;\n background: var(--mj-bg-page);\n flex-shrink: 0;\n}\n\n\n\n.overview-cards-mini[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 24px;\n padding: 10px 60px 10px 24px;\n background: var(--mj-bg-page);\n}\n\n.mini-kpi[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-secondary);\n}\n\n.mini-kpi[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-color-indigo-500);\n}\n\n.mini-kpi.warning[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n}\n\n.mini-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.mini-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.mini-divider[_ngcontent-%COMP%] {\n width: 1px;\n height: 20px;\n background: var(--mj-border-default);\n}\n\n.overview-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-radius: var(--mj-radius-lg);\n border: 1px solid var(--mj-border-default);\n box-shadow: var(--mj-shadow-md);\n}\n\n.card-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n border-radius: var(--mj-radius-lg);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.25rem;\n flex-shrink: 0;\n}\n\n.card-icon--engines[_ngcontent-%COMP%] {\n background: var(--mj-color-accent-300);\n color: var(--mj-brand-primary);\n}\n\n.card-icon--memory[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.card-icon--warning[_ngcontent-%COMP%] {\n background: var(--mj-color-error-100);\n color: var(--mj-status-error);\n}\n\n.card-icon--success[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n color: var(--mj-status-success);\n}\n\n.card-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.card-value[_ngcontent-%COMP%] {\n font-size: 1.75rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n line-height: 1;\n letter-spacing: -0.02em;\n}\n\n.card-label[_ngcontent-%COMP%] {\n font-size: 0.75rem;\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin-top: 0.25rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n}\n\n.card-subtitle[_ngcontent-%COMP%] {\n font-size: 0.6875rem;\n color: var(--mj-text-muted);\n margin-top: 0.125rem;\n}\n\n\n\n.main-content[_ngcontent-%COMP%] {\n display: flex;\n flex: 1;\n min-height: 0;\n}\n\n\n\n.left-nav[_ngcontent-%COMP%] {\n width: 240px;\n background: var(--mj-bg-page);\n border-right: 1px solid var(--mj-border-default);\n padding: 16px 0;\n flex-shrink: 0;\n}\n\n.nav-section[_ngcontent-%COMP%] {\n padding: 0 12px;\n}\n\n.nav-section-title[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n padding: 8px 12px;\n margin-bottom: 4px;\n}\n\n.nav-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n color: var(--mj-text-secondary);\n font-size: 14px;\n transition: all 0.2s ease;\n margin-bottom: 4px;\n}\n\n.nav-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.nav-item.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.nav-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n width: 18px;\n text-align: center;\n font-size: 15px;\n}\n\n.nav-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-of-type {\n flex: 1;\n}\n\n.nav-badge[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 11px;\n font-weight: 600;\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n min-width: 24px;\n text-align: center;\n}\n\n.nav-item.active[_ngcontent-%COMP%] .nav-badge[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.nav-badge--warning[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-500) !important;\n color: white !important;\n}\n\n.nav-badge--success[_ngcontent-%COMP%] {\n background: var(--mj-status-success) !important;\n color: white !important;\n}\n\n\n\n.content-area[_ngcontent-%COMP%] {\n flex: 1;\n padding: 24px;\n overflow: hidden;\n min-width: 0;\n display: flex;\n flex-direction: column;\n}\n\n.section-panel[_ngcontent-%COMP%] {\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-lg);\n box-shadow: var(--mj-shadow-md);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n\n.section-panel-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n padding: 20px 24px;\n}\n\n.panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n}\n\n.panel-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.panel-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.panel-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.action-divider[_ngcontent-%COMP%] {\n width: 1px;\n height: 24px;\n background: var(--mj-border-default);\n}\n\n.source-toggle[_ngcontent-%COMP%] {\n display: flex;\n background: var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n}\n\n.source-btn[_ngcontent-%COMP%] {\n background: transparent;\n border: none;\n padding: 6px 12px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.15s ease;\n}\n\n.source-btn[_ngcontent-%COMP%]:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.source-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n}\n\n.source-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.loading-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n color: var(--mj-status-success);\n}\n\n.error-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n background: var(--mj-color-error-100);\n border: 1px solid var(--mj-color-error-100);\n border-radius: var(--mj-radius-md);\n color: var(--mj-status-error);\n font-size: 13px;\n margin-bottom: 16px;\n}\n\n.error-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.error-banner[_ngcontent-%COMP%] .dismiss-btn[_ngcontent-%COMP%] {\n margin-left: auto;\n background: transparent;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px;\n}\n\n.error-banner[_ngcontent-%COMP%] .dismiss-btn[_ngcontent-%COMP%]:hover {\n color: var(--mj-status-error);\n}\n\n.action-btn[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: none;\n padding: 8px 16px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s ease;\n}\n\n.action-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.action-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n\n\n.status-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n}\n\n.status-indicator.enabled[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n color: var(--mj-status-success);\n}\n\n.status-indicator.disabled[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-text-muted) 10%, transparent);\n color: var(--mj-text-muted);\n}\n\n.status-indicator[_ngcontent-%COMP%] .config-note[_ngcontent-%COMP%] {\n font-size: 11px;\n opacity: 0.7;\n margin-left: 4px;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n color: var(--mj-border-default);\n}\n\n.empty-state.success-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n color: var(--mj-text-secondary);\n}\n\n.empty-hint[_ngcontent-%COMP%] {\n font-size: 13px;\n margin-top: 8px;\n}\n\n\n\n.engine-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 16px;\n}\n\n.engine-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-lg);\n padding: 16px 20px;\n border: 2px solid transparent;\n transition: all 0.2s ease;\n}\n\n.engine-card.loaded[_ngcontent-%COMP%] {\n border-color: var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.engine-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--mj-shadow-lg);\n}\n\n.engine-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.engine-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 180px;\n flex: 1;\n min-width: 0;\n}\n\n.engine-status[_ngcontent-%COMP%] {\n flex-shrink: 0;\n font-size: 11px;\n font-weight: 600;\n padding: 4px 10px;\n border-radius: var(--mj-radius-lg);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-loaded[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n color: var(--mj-color-success-800);\n}\n\n.status-pending[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-800);\n}\n\n.engine-stats[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.stat-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.stat-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n width: 16px;\n color: var(--mj-text-muted);\n}\n\n.engine-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid rgba(0, 0, 0, 0.08);\n}\n\n.engine-action-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border: none;\n border-radius: var(--mj-radius-md);\n background: rgba(0, 0, 0, 0.05);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.engine-action-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-status-success);\n color: white;\n}\n\n.engine-action-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.stat-label[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n.stat-value[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n\n\n.info-banner[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-accent-300);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-brand-primary);\n margin-bottom: 20px;\n}\n\n.info-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-top: 2px;\n flex-shrink: 0;\n}\n\n\n\n.recommendation-banner[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-color-warning-800);\n margin-top: 20px;\n}\n\n.recommendation-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-top: 2px;\n flex-shrink: 0;\n color: var(--mj-color-warning-500);\n}\n\n\n\n.redundant-loads-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 12px 16px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] th.text-right[_ngcontent-%COMP%] {\n text-align: right;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] td.text-right[_ngcontent-%COMP%] {\n text-align: right;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] .entity-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.engine-chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.engine-chip[_ngcontent-%COMP%] {\n padding: 4px 10px;\n background: var(--mj-color-indigo-500);\n color: white;\n font-size: 11px;\n border-radius: var(--mj-radius-lg);\n font-weight: 500;\n}\n\n.count-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 4px 12px;\n background: var(--mj-color-warning-500);\n color: white;\n font-size: 12px;\n font-weight: 600;\n border-radius: var(--mj-radius-lg);\n}\n\n\n\n.footer[_ngcontent-%COMP%] {\n padding: 12px 24px;\n background: var(--mj-bg-page);\n border-top: 1px solid var(--mj-border-default);\n text-align: right;\n flex-shrink: 0;\n}\n\n.last-updated[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n\n\n.warning-banner[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50) !important;\n color: var(--mj-color-warning-800) !important;\n}\n\n.warning-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n}\n\n.telemetry-summary[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.summary-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n text-align: center;\n}\n\n.summary-value[_ngcontent-%COMP%] {\n font-size: 28px;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.summary-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n}\n\n.category-breakdown[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.category-breakdown[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.category-grid[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.category-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-full);\n font-size: 13px;\n}\n\n.category-name[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.category-events[_ngcontent-%COMP%] {\n background: var(--mj-color-indigo-500);\n color: white;\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 600;\n}\n\n.category-avg[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 11px;\n}\n\n.insights-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.insights-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.insights-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n}\n\n.insights-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.insight-card[_ngcontent-%COMP%] {\n padding: 16px;\n border-radius: var(--mj-radius-md);\n border-left: 4px solid var(--mj-border-default);\n}\n\n.insight-card.severity-info[_ngcontent-%COMP%] {\n background: var(--mj-color-accent-300);\n border-left-color: var(--mj-brand-primary);\n}\n\n.insight-card.severity-warning[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n border-left-color: var(--mj-color-warning-500);\n}\n\n.insight-card.severity-optimization[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n border-left-color: var(--mj-status-success);\n}\n\n.insight-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 8px;\n}\n\n.insight-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.severity-info[_ngcontent-%COMP%] .insight-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n.severity-warning[_ngcontent-%COMP%] .insight-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-color-warning-500); }\n.severity-optimization[_ngcontent-%COMP%] .insight-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n\n.insight-title[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n flex: 1;\n}\n\n.insight-category[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 2px 8px;\n background: rgba(0, 0, 0, 0.1);\n border-radius: var(--mj-radius-lg);\n color: var(--mj-text-secondary);\n}\n\n.insight-message[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n}\n\n.insight-suggestion[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.insight-suggestion[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n font-size: 10px;\n}\n\n.patterns-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.patterns-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-indigo-500);\n}\n\n.patterns-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.patterns-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.patterns-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 12px 16px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.patterns-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.patterns-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n.patterns-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.duplicate-row[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n}\n\n.duplicate-row[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-warning-50) !important;\n}\n\n.category-chip[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 3px 10px;\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.cat-runview[_ngcontent-%COMP%] { background: var(--mj-color-info-100); color: var(--mj-color-info-700); }\n.cat-runquery[_ngcontent-%COMP%] { background: var(--mj-color-violet-100); color: var(--mj-color-violet-700); }\n.cat-engine[_ngcontent-%COMP%] { background: var(--mj-color-success-100); color: var(--mj-color-success-700); }\n.cat-ai[_ngcontent-%COMP%] { background: var(--mj-color-warning-50); color: var(--mj-color-warning-700); }\n.cat-cache[_ngcontent-%COMP%] { background: var(--mj-color-error-100); color: var(--mj-status-error); }\n.cat-network[_ngcontent-%COMP%] { background: var(--mj-color-tertiary-100); color: var(--mj-color-tertiary-700); }\n.cat-custom[_ngcontent-%COMP%] { background: var(--mj-color-neutral-100); color: var(--mj-color-neutral-600); }\n\n.operation-cell[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 12px;\n}\n\n.entity-cell[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.count-warning[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 8px;\n background: var(--mj-color-warning-500);\n color: white;\n border-radius: var(--mj-radius-lg);\n font-weight: 600;\n}\n\n.action-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n}\n\n\n\n.slow-queries-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n border-left: 4px solid var(--mj-color-warning-500);\n}\n\n.slow-queries-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-color-warning-800);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.slow-queries-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n}\n\n.slow-queries-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.slow-query-item[_ngcontent-%COMP%] {\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-md);\n padding: 10px 12px;\n border: 1px solid var(--mj-color-warning-50);\n transition: all 0.15s ease;\n}\n\n.slow-query-item.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.slow-query-item.clickable[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-warning-50);\n border-color: var(--mj-color-warning-500);\n transform: translateX(2px);\n}\n\n.slow-query-main[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.slow-query-entity[_ngcontent-%COMP%] {\n flex: 1;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.slow-query-time[_ngcontent-%COMP%] {\n font-weight: 700;\n color: var(--mj-color-warning-800);\n font-size: 14px;\n}\n\n.slow-query-filter[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n font-family: monospace;\n}\n\n.slow-query-timestamp[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n}\n\n\n\n.view-toggle[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n margin-bottom: 16px;\n}\n\n.toggle-btn[_ngcontent-%COMP%] {\n padding: 8px 16px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s ease;\n}\n\n.toggle-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.toggle-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-color-indigo-500);\n color: white;\n border-color: var(--mj-color-indigo-500);\n}\n\n\n\n.insight-card.expandable[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.insight-card.expandable[_ngcontent-%COMP%]:hover {\n box-shadow: var(--mj-shadow-md);\n}\n\n.insight-card[_ngcontent-%COMP%] .expand-icon[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 12px;\n margin-left: auto;\n}\n\n.insight-card.expanded[_ngcontent-%COMP%] {\n border-width: 2px;\n}\n\n.insight-details[_ngcontent-%COMP%] {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.detail-section[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n margin-bottom: 4px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.related-events[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.related-event[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 6px 10px;\n background: rgba(0, 0, 0, 0.03);\n border-radius: 4px;\n font-size: 12px;\n}\n\n.event-time[_ngcontent-%COMP%] {\n font-family: monospace;\n color: var(--mj-text-secondary);\n}\n\n.event-duration[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.event-filter[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-family: monospace;\n font-size: 11px;\n}\n\n\n\n.timeline-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-indigo-500);\n}\n\n.timeline-container[_ngcontent-%COMP%] {\n position: relative;\n padding-left: 24px;\n max-height: 400px;\n overflow-y: auto;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-bottom: 12px;\n position: relative;\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n position: absolute;\n left: -24px;\n top: 0;\n bottom: 0;\n}\n\n.marker-dot[_ngcontent-%COMP%] {\n width: 10px;\n height: 10px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-color-indigo-500);\n z-index: 1;\n}\n\n.marker-line[_ngcontent-%COMP%] {\n width: 2px;\n flex: 1;\n background: var(--mj-border-default);\n margin-top: 4px;\n}\n\n.timeline-item[_ngcontent-%COMP%]:last-child .marker-line[_ngcontent-%COMP%] {\n display: none;\n}\n\n.tl-runview[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-color-info-700); }\n.tl-runquery[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-color-violet-700); }\n.tl-engine[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-color-success-700); }\n.tl-ai[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-color-warning-700); }\n.tl-cache[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n\n\n\n.marker-bolt[_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n color: var(--mj-color-warning-500);\n font-size: 14px;\n margin-left: -4px;\n}\n\n.marker-bolt[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n filter: drop-shadow(0 0 3px color-mix(in srgb, var(--mj-color-warning-500) 60%, transparent));\n}\n\n\n\n.tl-runview.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-color-info-700); }\n.tl-runquery.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-color-violet-700); }\n.tl-engine.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-color-success-700); }\n.tl-ai.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-color-warning-700); }\n.tl-cache.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n\n\n.cache-hit-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: linear-gradient(135deg, var(--mj-color-warning-100) 0%, var(--mj-color-warning-200) 100%);\n border: 1px solid var(--mj-color-warning-500);\n border-radius: var(--mj-radius-lg);\n font-size: 9px;\n font-weight: 700;\n color: var(--mj-color-warning-800);\n letter-spacing: 0.5px;\n}\n\n.cache-hit-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 8px;\n color: var(--mj-color-warning-500);\n}\n\n\n\n.timeline-item.cache-hit[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--mj-color-warning-50) 0%, var(--mj-color-warning-100) 100%);\n border: 1px solid var(--mj-color-warning-300);\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n flex: 1;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 10px 14px;\n}\n\n.timeline-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 4px;\n}\n\n.timeline-time[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.timeline-duration[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.timeline-duration.slow[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-800);\n background: var(--mj-color-warning-50);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.timeline-body[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-operation[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.timeline-entity[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.timeline-filter[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-family: monospace;\n margin-top: 4px;\n}\n\n\n\n.timeline-entities[_ngcontent-%COMP%], \n.slow-query-entities[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 4px;\n}\n\n.entity-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n background: var(--mj-color-info-100);\n border: 1px solid var(--mj-brand-primary);\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 500;\n color: var(--mj-color-info-700);\n}\n\n.entity-pill.small[_ngcontent-%COMP%] {\n padding: 1px 6px;\n font-size: 10px;\n}\n\n.entity-pill.more[_ngcontent-%COMP%] {\n background: var(--mj-color-neutral-100);\n border-color: var(--mj-color-neutral-200);\n color: var(--mj-color-neutral-600);\n font-style: italic;\n}\n\n\n\n.timeline-pills[_ngcontent-%COMP%], \n.slow-query-pills[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-top: 6px;\n}\n\n.param-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-family: monospace;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.param-pill.small[_ngcontent-%COMP%] {\n padding: 2px 6px;\n font-size: 9px;\n max-width: 150px;\n}\n\n.param-pill[_ngcontent-%COMP%] .pill-label[_ngcontent-%COMP%] {\n font-weight: 600;\n opacity: 0.8;\n}\n\n.param-pill[_ngcontent-%COMP%] .pill-value[_ngcontent-%COMP%] {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n\n\n.param-pill.pill-filter[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n border: 1px solid var(--mj-color-warning-300);\n color: var(--mj-color-warning-700);\n}\n\n.param-pill.pill-order[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n border: 1px solid var(--mj-color-success-300);\n color: var(--mj-color-success-700);\n}\n\n.param-pill.pill-result[_ngcontent-%COMP%] {\n background: var(--mj-color-violet-100);\n border: 1px solid var(--mj-color-violet-300);\n color: var(--mj-color-violet-700);\n}\n\n.param-pill.pill-limit[_ngcontent-%COMP%] {\n background: var(--mj-color-info-100);\n border: 1px solid var(--mj-brand-primary);\n color: var(--mj-color-info-700);\n}\n\n.param-pill.pill-batch[_ngcontent-%COMP%] {\n background: var(--mj-color-error-100);\n border: 1px solid var(--mj-color-error-300);\n color: var(--mj-status-error);\n}\n\n.param-pill.pill-info[_ngcontent-%COMP%] {\n background: var(--mj-color-neutral-100);\n border: 1px solid var(--mj-color-neutral-200);\n color: var(--mj-color-neutral-600);\n}\n\n\n\n.slow-query-item.cache-hit[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--mj-color-warning-50) 0%, var(--mj-color-warning-100) 100%);\n border-color: var(--mj-color-warning-300);\n}\n\n.cache-hit-badge.small[_ngcontent-%COMP%] {\n padding: 1px 6px;\n font-size: 8px;\n}\n\n\n\n.filter-bar[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-bottom: 16px;\n padding: 12px 16px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n}\n\n.search-box[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 200px;\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.search-box[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n position: absolute;\n left: 12px;\n color: var(--mj-text-muted);\n}\n\n.search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px 36px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n background: var(--mj-bg-page);\n}\n\n.search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-color-indigo-500);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--mj-color-indigo-500) 20%, transparent);\n}\n\n.clear-search[_ngcontent-%COMP%] {\n position: absolute;\n right: 8px;\n background: none;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px;\n}\n\n.clear-search[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n}\n\n.filter-buttons[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.filter-btn[_ngcontent-%COMP%] {\n padding: 6px 14px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-full);\n font-size: 12px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.filter-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n}\n\n.filter-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-color-indigo-500);\n color: white;\n border-color: var(--mj-color-indigo-500);\n}\n\n\n\n.sortable-header[_ngcontent-%COMP%] {\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n}\n\n.sortable-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n}\n\n.sortable-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-left: 6px;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.sortable-header[_ngcontent-%COMP%] i.fa-sort-up[_ngcontent-%COMP%], \n.sortable-header[_ngcontent-%COMP%] i.fa-sort-down[_ngcontent-%COMP%] {\n color: var(--mj-color-indigo-500);\n}\n\n\n\n.filter-cell[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-secondary);\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.slow-row[_ngcontent-%COMP%] {\n background: var(--mj-color-error-100);\n}\n\n.slow-row[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-error-100) !important;\n}\n\n.slow-value[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n font-weight: 600;\n}\n\n\n\n.category-chip.small[_ngcontent-%COMP%] {\n font-size: 9px;\n padding: 2px 6px;\n}\n\n\n\n.empty-state.small[_ngcontent-%COMP%] {\n padding: 30px 20px;\n}\n\n.empty-state.small[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n margin-bottom: 12px;\n}\n\n.empty-state.small[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.perf-tabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n padding: 12px 24px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.perf-tab[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n border: none;\n background: transparent;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.perf-tab[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.perf-tab.active[_ngcontent-%COMP%] {\n background: var(--mj-bg-page);\n color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.perf-tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.tab-badge[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 10px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: var(--mj-radius-md);\n min-width: 18px;\n text-align: center;\n}\n\n.perf-tab.active[_ngcontent-%COMP%] .tab-badge[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n color: var(--mj-color-success-800);\n}\n\n.tab-badge.warning[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.tab-badge.insight[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.perf-panel[_ngcontent-%COMP%] .section-panel-content[_ngcontent-%COMP%] {\n padding: 20px 24px;\n}\n\n\n\n.success-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-success-100);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-color-success-800);\n margin-top: 16px;\n}\n\n.success-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-status-success);\n}\n\n\n\n.filter-bar.compact[_ngcontent-%COMP%] {\n padding: 10px 14px;\n margin-bottom: 12px;\n}\n\n\n\n.category-item[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.category-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-accent-300);\n transform: translateY(-1px);\n}\n\n\n\n.insight-key-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 10px 12px;\n background: rgba(0, 0, 0, 0.03);\n border-radius: var(--mj-radius-md);\n margin: 8px 0;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.key-info-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n font-size: 12px;\n}\n\n.key-label[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 500;\n min-width: 50px;\n flex-shrink: 0;\n}\n\n.key-value[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.key-value.entity-name[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.key-value.filter-code[_ngcontent-%COMP%] {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n background: rgba(0, 0, 0, 0.06);\n padding: 2px 6px;\n border-radius: 3px;\n color: var(--mj-text-primary);\n}\n\n\n\n.params-display[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 10px;\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.param-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n padding: 4px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.param-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.param-key[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-weight: 500;\n min-width: 100px;\n flex-shrink: 0;\n}\n\n.param-value[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.event-entity[_ngcontent-%COMP%] {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 11px;\n font-weight: 500;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.perfmon-section[_ngcontent-%COMP%] {\n \n\n --perfmon-bg: var(--mj-bg-surface-card);\n --perfmon-bg-deep: var(--mj-bg-surface-sunken);\n --perfmon-border: var(--mj-border-default);\n --perfmon-border-medium: var(--mj-border-strong);\n --perfmon-border-light: var(--mj-border-strong);\n --perfmon-text-faint: var(--mj-text-disabled);\n --perfmon-text-muted: var(--mj-text-muted);\n --perfmon-text-secondary: var(--mj-text-secondary);\n --perfmon-control-bg: var(--mj-bg-surface-sunken);\n --perfmon-control-bg-hover: var(--mj-bg-surface-hover);\n --perfmon-mode-bg: var(--mj-bg-surface-sunken);\n --perfmon-overlay-light: color-mix(in srgb, var(--mj-text-primary) 5%, transparent);\n --perfmon-overlay-medium: color-mix(in srgb, var(--mj-text-primary) 15%, transparent);\n --perfmon-overlay-strong: color-mix(in srgb, var(--mj-text-primary) 25%, transparent);\n --perfmon-tooltip-bg: var(--mj-bg-overlay);\n\n \n\n --perfmon-accent: #00ff88;\n --perfmon-accent-dim: #00cc6a;\n --perfmon-series-runview: #00bcd4;\n --perfmon-series-runquery: #e040fb;\n --perfmon-series-engine: #00ff88;\n --perfmon-series-ai: #ff9800;\n\n background: var(--perfmon-bg);\n border-radius: 8px;\n padding: 16px;\n margin-bottom: 24px;\n}\n\n.perfmon-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.perfmon-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--perfmon-accent);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.perfmon-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--perfmon-accent);\n}\n\n.perfmon-legend[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: 11px;\n}\n\n.legend-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--perfmon-text-muted);\n}\n\n.legend-dot[_ngcontent-%COMP%] {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n}\n\n.legend-item.runview[_ngcontent-%COMP%] .legend-dot[_ngcontent-%COMP%] { background: var(--perfmon-series-runview); }\n.legend-item.runquery[_ngcontent-%COMP%] .legend-dot[_ngcontent-%COMP%] { background: var(--perfmon-series-runquery); }\n.legend-item.engine[_ngcontent-%COMP%] .legend-dot[_ngcontent-%COMP%] { background: var(--perfmon-series-engine); }\n.legend-item.ai[_ngcontent-%COMP%] .legend-dot[_ngcontent-%COMP%] { background: var(--perfmon-series-ai); }\n\n.perfmon-chart-container[_ngcontent-%COMP%] {\n display: flex;\n background: var(--perfmon-bg-deep);\n border: 1px solid var(--perfmon-border);\n border-radius: 4px;\n position: relative;\n}\n\n.perfmon-y-axis[_ngcontent-%COMP%] {\n width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid var(--perfmon-border);\n}\n\n.perfmon-y-axis[_ngcontent-%COMP%] .axis-label[_ngcontent-%COMP%] {\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n font-size: 10px;\n color: var(--perfmon-text-faint);\n text-transform: uppercase;\n letter-spacing: 1px;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] {\n flex: 1;\n height: 300px;\n position: relative;\n overflow: hidden;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n}\n\n.perfmon-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--perfmon-border);\n}\n\n.footer-note[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--perfmon-text-faint);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.footer-note[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--perfmon-accent);\n}\n\n.footer-stats[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--perfmon-accent);\n font-family: monospace;\n}\n\n\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.grid-line) {\n stroke: var(--perfmon-border);\n stroke-dasharray: 2,2;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.axis-line) {\n stroke: var(--perfmon-border-light);\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.axis-text) {\n fill: var(--perfmon-text-muted);\n font-size: 10px;\n font-family: monospace;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.event-point) {\n cursor: pointer;\n transition: r 0.15s ease;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.event-point:hover) {\n r: 6;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.tooltip) {\n pointer-events: none;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.tooltip-bg) {\n fill: var(--perfmon-tooltip-bg);\n rx: 4;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.tooltip-text) {\n fill: var(--mj-bg-surface);\n font-size: 11px;\n font-family: monospace;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.area-fill) {\n opacity: 0.15;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.line-path) {\n fill: none;\n stroke-width: 1.5;\n opacity: 0.8;\n}\n\n\n\n.perfmon-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n padding: 8px 12px;\n background: var(--perfmon-overlay-light);\n border-radius: 6px;\n border: 1px solid var(--perfmon-border);\n}\n\n.chart-control-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n background: var(--perfmon-control-bg);\n color: var(--perfmon-text-muted);\n border: 1px solid var(--perfmon-border-medium);\n border-radius: 4px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.chart-control-btn[_ngcontent-%COMP%]:hover {\n background: var(--perfmon-control-bg-hover);\n color: var(--perfmon-accent);\n border-color: var(--perfmon-accent);\n}\n\n.chart-control-btn[_ngcontent-%COMP%]:active {\n transform: scale(0.95);\n}\n\n.chart-control-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.mode-toggle[_ngcontent-%COMP%] {\n display: flex;\n background: var(--perfmon-mode-bg);\n border-radius: 4px;\n overflow: hidden;\n border: 1px solid var(--perfmon-border-medium);\n}\n\n.mode-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 28px;\n padding: 0;\n background: transparent;\n color: var(--perfmon-text-faint);\n border: none;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.mode-btn[_ngcontent-%COMP%]:first-child {\n border-right: 1px solid var(--perfmon-border);\n}\n\n.mode-btn[_ngcontent-%COMP%]:hover {\n color: var(--perfmon-text-secondary);\n background: var(--perfmon-overlay-light);\n}\n\n.mode-btn.active[_ngcontent-%COMP%] {\n background: var(--perfmon-accent);\n color: var(--perfmon-mode-bg);\n}\n\n.mode-btn.active[_ngcontent-%COMP%]:hover {\n background: var(--perfmon-accent-dim);\n}\n\n.mode-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.control-divider[_ngcontent-%COMP%] {\n width: 1px;\n height: 24px;\n background: var(--perfmon-border-medium);\n margin: 0 4px;\n}\n\n.compress-toggle[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 12px;\n color: var(--perfmon-text-muted);\n user-select: none;\n}\n\n.compress-toggle[_ngcontent-%COMP%]:hover {\n color: var(--perfmon-accent);\n}\n\n.compress-toggle[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n width: 14px;\n height: 14px;\n accent-color: var(--perfmon-accent);\n cursor: pointer;\n}\n\n.compress-toggle[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\n.zoom-level[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--perfmon-text-faint);\n font-family: monospace;\n margin-left: 8px;\n}\n\n\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-indicator) {\n cursor: pointer;\n transition: opacity 0.15s ease;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-indicator:hover) {\n opacity: 0.8;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-text) {\n fill: var(--perfmon-text-faint);\n font-size: 10px;\n font-family: monospace;\n pointer-events: none;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-expand-btn) {\n cursor: pointer;\n opacity: 0.6;\n transition: opacity 0.15s ease;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-expand-btn:hover) {\n opacity: 1;\n}\n\n\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.selection-overlay) {\n pointer-events: all;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.selection-rect) {\n pointer-events: none;\n}\n\n\n\n.zoom-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 11px;\n color: var(--perfmon-text-muted);\n font-family: monospace;\n}\n\n.zoom-info[_ngcontent-%COMP%] .zoom-level[_ngcontent-%COMP%] {\n color: var(--perfmon-accent);\n}\n\n.zoom-info[_ngcontent-%COMP%] .time-range[_ngcontent-%COMP%] {\n color: var(--perfmon-text-faint);\n}\n\n\n\n@media (max-width: 1024px) {\n .main-content[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .left-nav[_ngcontent-%COMP%] {\n width: 100%;\n border-right: none;\n border-bottom: 1px solid var(--mj-border-default);\n padding: 12px;\n }\n\n .nav-section[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n overflow-x: auto;\n padding: 0;\n }\n\n .nav-section-title[_ngcontent-%COMP%] {\n display: none;\n }\n\n .nav-item[_ngcontent-%COMP%] {\n white-space: nowrap;\n padding: 10px 16px;\n }\n}\n\n@media (max-width: 768px) {\n .diagnostics-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .header-controls[_ngcontent-%COMP%] {\n width: 100%;\n flex-wrap: wrap;\n }\n\n .overview-cards[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .engine-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .perfmon-legend[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n gap: 8px;\n }\n}\n\n\n\n.export-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 14px;\n background: var(--mj-status-success);\n color: white;\n border: none;\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.export-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-color-success-800);\n transform: translateY(-1px);\n}\n\n.export-btn[_ngcontent-%COMP%]:disabled {\n background: var(--mj-border-default);\n cursor: not-allowed;\n}\n\n.footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n\n\n.event-detail-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.event-detail-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: 0;\n width: 450px;\n max-width: 90vw;\n height: 100vh;\n background: var(--mj-bg-page);\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: _ngcontent-%COMP%_slideIn 0.25s ease;\n}\n\n@keyframes _ngcontent-%COMP%_slideIn {\n from { transform: translateX(100%); }\n to { transform: translateX(0); }\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%] {\n background: none;\n border: none;\n font-size: 18px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .panel-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n\n\n.detail-metrics[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px;\n margin-bottom: 24px;\n}\n\n.detail-metrics[_ngcontent-%COMP%] .metric[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n text-align: center;\n}\n\n.detail-metrics[_ngcontent-%COMP%] .metric-value[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-family: monospace;\n}\n\n.detail-metrics[_ngcontent-%COMP%] .metric-value.slow[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.detail-metrics[_ngcontent-%COMP%] .metric-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n\n\n.event-detail-panel[_ngcontent-%COMP%] .detail-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .detail-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 12px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .detail-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n font-size: 14px;\n}\n\n.detail-content[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n}\n\n.detail-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.detail-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.detail-key[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n font-weight: 500;\n min-width: 80px;\n flex-shrink: 0;\n}\n\n.detail-val[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.detail-val.entity-highlight[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.detail-val.filter-val[_ngcontent-%COMP%] {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n background: rgba(0, 0, 0, 0.05);\n padding: 4px 8px;\n border-radius: 4px;\n}\n\n\n\n.params-grid[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.param-item[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 6px 0;\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 12px;\n}\n\n.param-item[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.param-name[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-weight: 500;\n min-width: 100px;\n flex-shrink: 0;\n font-family: monospace;\n}\n\n.param-val[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n\n\n.pattern-summary[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n}\n\n.pattern-stat[_ngcontent-%COMP%] {\n text-align: center;\n}\n\n.pattern-stat[_ngcontent-%COMP%] .stat-val[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-family: monospace;\n}\n\n.pattern-stat[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-top: 4px;\n}\n\n.pattern-warning[_ngcontent-%COMP%] {\n margin-top: 12px;\n padding: 12px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n color: var(--mj-color-warning-800);\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.pattern-warning[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n margin-top: 2px;\n}\n\n\n\n.detail-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.action-button[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 10px 16px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-primary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.action-button[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-default);\n}\n\n.action-button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n}\n\n\n\n.timeline-item.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item.clickable[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-status-success) 5%, transparent);\n}\n\n.timeline-item.clickable[_ngcontent-%COMP%]:hover .marker-dot[_ngcontent-%COMP%] {\n transform: scale(1.3);\n}\n\n\n\n\n\n\n.engine-detail-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: 0;\n width: 550px;\n max-width: 95vw;\n height: 100vh;\n background: var(--mj-bg-page);\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: _ngcontent-%COMP%_slideIn 0.25s ease;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: linear-gradient(135deg, var(--mj-status-success) 0%, var(--mj-color-success-800) 100%);\n color: white;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: white;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-header-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .icon-btn[_ngcontent-%COMP%] {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: white;\n width: 36px;\n height: 36px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .icon-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .icon-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%] {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: white;\n width: 36px;\n height: 36px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 18px;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%]:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n\n\n.engine-summary-section[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 12px;\n margin-bottom: 24px;\n}\n\n.engine-summary-section[_ngcontent-%COMP%] .summary-stat[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px 16px;\n}\n\n.engine-summary-section[_ngcontent-%COMP%] .summary-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 4px;\n}\n\n.engine-summary-section[_ngcontent-%COMP%] .summary-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.status-dot[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-color-warning-500);\n}\n\n.status-dot.status-loaded[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n\n\n\n.config-items-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.config-items-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.config-items-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.config-item[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-item.expanded[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.config-item-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.2s ease;\n}\n\n.config-item-header[_ngcontent-%COMP%]:hover {\n background: rgba(0, 0, 0, 0.02);\n}\n\n.config-item-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n flex: 1;\n min-width: 0;\n}\n\n.config-type-chip[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n flex-shrink: 0;\n}\n\n.config-type-chip.type-entity[_ngcontent-%COMP%] {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n}\n\n.config-type-chip.type-dataset[_ngcontent-%COMP%] {\n background: var(--mj-color-violet-100);\n color: var(--mj-color-violet-700);\n}\n\n.config-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.config-item-stats[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-stat[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n transition: transform 0.2s ease;\n}\n\n.config-item.expanded[_ngcontent-%COMP%] .expand-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.config-item-details[_ngcontent-%COMP%] {\n padding: 0 16px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n}\n\n.config-detail-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 10px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.config-detail-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.config-detail-row[_ngcontent-%COMP%] .detail-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n min-width: 70px;\n flex-shrink: 0;\n}\n\n.config-detail-row[_ngcontent-%COMP%] .detail-value[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-primary);\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n background: var(--mj-bg-surface-sunken);\n padding: 2px 6px;\n border-radius: 4px;\n word-break: break-all;\n}\n\n\n\n.config-health-icon[_ngcontent-%COMP%] {\n font-size: 12px;\n flex-shrink: 0;\n}\n.config-health-icon.health-success[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n.config-health-icon.health-failure[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n.config-detail-row--error[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 6%, transparent);\n border-radius: 4px;\n padding: 4px 8px;\n}\n.detail-value--error[_ngcontent-%COMP%] {\n color: var(--mj-status-error-text) !important;\n background: none !important;\n font-family: inherit !important;\n word-break: break-word;\n}\n\n\n\n.sample-data-section[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.sample-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.sample-title[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.sample-header-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.load-more-btn[_ngcontent-%COMP%], \n.load-all-btn[_ngcontent-%COMP%] {\n background: none;\n border: 1px solid var(--mj-color-indigo-500);\n color: var(--mj-color-indigo-500);\n font-size: 11px;\n padding: 4px 10px;\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.2s ease;\n}\n\n.load-more-btn[_ngcontent-%COMP%]:hover:not(:disabled), \n.load-all-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-color-indigo-500);\n color: white;\n}\n\n.load-more-btn[_ngcontent-%COMP%]:disabled, \n.load-all-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.all-loaded-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n color: var(--mj-status-success);\n padding: 4px 10px;\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n border-radius: 4px;\n}\n\n.action-col[_ngcontent-%COMP%] {\n width: 36px;\n min-width: 36px;\n max-width: 36px;\n padding: 4px !important;\n text-align: center;\n}\n\n.open-record-btn[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n border: none;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-color-indigo-500);\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n transition: all 0.2s ease;\n}\n\n.open-record-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-indigo-500);\n color: white;\n}\n\n.sample-data-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.sample-data-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 11px;\n}\n\n.sample-data-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 8px 10px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.sample-data-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 8px 10px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n max-width: 150px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sample-data-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n.sample-data-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n\n\n.empty-state.small[_ngcontent-%COMP%] {\n padding: 30px 20px;\n}\n\n.empty-state.small[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n}\n\n.empty-state.small[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.spinning[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n\n\n\n\n\n.cache-summary[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-bottom: 24px;\n flex-wrap: wrap;\n}\n\n.cache-type-breakdown[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.cache-type-breakdown[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.type-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.type-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--mj-bg-page);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.type-item[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.type-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-md);\n font-size: 18px;\n color: var(--mj-text-secondary);\n}\n\n.type-name[_ngcontent-%COMP%] {\n flex: 1;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.type-count[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-status-success);\n}\n\n.type-size[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-left: 8px;\n}\n\n.cache-entries-section[_ngcontent-%COMP%] {\n margin-top: 24px;\n}\n\n.cache-entries-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.cache-entries-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.filter-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.cache-entries-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.cache-entries-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.cache-entries-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n padding: 12px 16px;\n text-align: left;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n font-weight: 600;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.cache-entries-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 10px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n vertical-align: middle;\n}\n\n.cache-entries-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.cache-entries-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n.cache-type-chip[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.cache-type-chip.type-dataset[_ngcontent-%COMP%] {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n}\n\n.cache-type-chip.type-runview[_ngcontent-%COMP%] {\n background: var(--mj-color-tertiary-100);\n color: var(--mj-color-tertiary-700);\n}\n\n.cache-type-chip.type-runquery[_ngcontent-%COMP%] {\n background: var(--mj-color-violet-100);\n color: var(--mj-color-violet-700);\n}\n\n.entry-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.entry-fingerprint[_ngcontent-%COMP%] {\n display: block;\n font-size: 10px;\n color: var(--mj-text-muted);\n margin-top: 2px;\n background: var(--mj-bg-surface-sunken);\n padding: 2px 6px;\n border-radius: 3px;\n}\n\n.icon-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.icon-btn[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-status-error);\n color: var(--mj-status-error);\n background: var(--mj-status-error-bg);\n}\n\n.table-footer[_ngcontent-%COMP%] {\n padding: 12px 16px;\n text-align: center;\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n border-top: 1px solid var(--mj-border-default);\n}"], changeDetection: 0 });
4623
+ i0.ɵɵconditional(ctx.engineDetailPanel.isOpen && ctx.engineDetailPanel.engine ? 28 : -1);
4624
+ } }, dependencies: [i2.DefaultValueAccessor, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.NgModel, i3.MJPageHeaderInteriorComponent, i3.MJPageBodyInteriorComponent, i3.MJStatBadgeComponent, i3.MJRefreshButtonComponent, i3.MJTabNavComponent, i4.DecimalPipe, i4.DatePipe], styles: ["\n\n\n\n\n\n[_nghost-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n background: var(--mj-bg-page);\n}\n\n.system-diagnostics[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n display: flex;\n flex-direction: column;\n}\n\n\n\n.auto-refresh-toggle[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 13px;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.auto-refresh-toggle[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n width: 14px;\n height: 14px;\n cursor: pointer;\n}\n\n.spinning[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.content-area[_ngcontent-%COMP%] {\n flex: 1;\n padding: 24px;\n overflow: hidden;\n min-width: 0;\n display: flex;\n flex-direction: column;\n}\n\n.section-panel[_ngcontent-%COMP%] {\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-lg);\n box-shadow: var(--mj-shadow-md);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n\n.section-panel-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n padding: 20px 24px;\n}\n\n.panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n}\n\n.panel-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.panel-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.panel-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.action-divider[_ngcontent-%COMP%] {\n width: 1px;\n height: 24px;\n background: var(--mj-border-default);\n}\n\n.source-toggle[_ngcontent-%COMP%] {\n display: flex;\n background: var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n}\n\n.source-btn[_ngcontent-%COMP%] {\n background: transparent;\n border: none;\n padding: 6px 12px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.15s ease;\n}\n\n.source-btn[_ngcontent-%COMP%]:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.source-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n}\n\n.source-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n.loading-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n color: var(--mj-status-success);\n}\n\n.error-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n background: var(--mj-color-error-100);\n border: 1px solid var(--mj-color-error-100);\n border-radius: var(--mj-radius-md);\n color: var(--mj-status-error);\n font-size: 13px;\n margin-bottom: 16px;\n}\n\n.error-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.error-banner[_ngcontent-%COMP%] .dismiss-btn[_ngcontent-%COMP%] {\n margin-left: auto;\n background: transparent;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px;\n}\n\n.error-banner[_ngcontent-%COMP%] .dismiss-btn[_ngcontent-%COMP%]:hover {\n color: var(--mj-status-error);\n}\n\n.action-btn[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: none;\n padding: 8px 16px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s ease;\n}\n\n.action-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.action-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n\n\n.status-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n}\n\n.status-indicator.enabled[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n color: var(--mj-status-success);\n}\n\n.status-indicator.disabled[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-text-muted) 10%, transparent);\n color: var(--mj-text-muted);\n}\n\n.status-indicator[_ngcontent-%COMP%] .config-note[_ngcontent-%COMP%] {\n font-size: 11px;\n opacity: 0.7;\n margin-left: 4px;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n color: var(--mj-border-default);\n}\n\n.empty-state.success-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n color: var(--mj-text-secondary);\n}\n\n.empty-hint[_ngcontent-%COMP%] {\n font-size: 13px;\n margin-top: 8px;\n}\n\n\n\n.engine-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 16px;\n}\n\n.engine-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-lg);\n padding: 16px 20px;\n border: 2px solid transparent;\n transition: all 0.2s ease;\n}\n\n.engine-card.loaded[_ngcontent-%COMP%] {\n border-color: var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.engine-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--mj-shadow-lg);\n}\n\n.engine-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.engine-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 180px;\n flex: 1;\n min-width: 0;\n}\n\n.engine-status[_ngcontent-%COMP%] {\n flex-shrink: 0;\n font-size: 11px;\n font-weight: 600;\n padding: 4px 10px;\n border-radius: var(--mj-radius-lg);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-loaded[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n color: var(--mj-color-success-800);\n}\n\n.status-pending[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-800);\n}\n\n.engine-stats[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.stat-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.stat-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n width: 16px;\n color: var(--mj-text-muted);\n}\n\n.engine-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid rgba(0, 0, 0, 0.08);\n}\n\n.engine-action-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n border: none;\n border-radius: var(--mj-radius-md);\n background: rgba(0, 0, 0, 0.05);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.engine-action-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-status-success);\n color: white;\n}\n\n.engine-action-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.stat-label[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n.stat-value[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n\n\n.info-banner[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-accent-300);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-brand-primary);\n margin-bottom: 20px;\n}\n\n.info-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-top: 2px;\n flex-shrink: 0;\n}\n\n\n\n.recommendation-banner[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-color-warning-800);\n margin-top: 20px;\n}\n\n.recommendation-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-top: 2px;\n flex-shrink: 0;\n color: var(--mj-color-warning-500);\n}\n\n\n\n.redundant-loads-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 12px 16px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] th.text-right[_ngcontent-%COMP%] {\n text-align: right;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] td.text-right[_ngcontent-%COMP%] {\n text-align: right;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.redundant-loads-table[_ngcontent-%COMP%] .entity-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.engine-chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.engine-chip[_ngcontent-%COMP%] {\n padding: 4px 10px;\n background: var(--mj-color-indigo-500);\n color: white;\n font-size: 11px;\n border-radius: var(--mj-radius-lg);\n font-weight: 500;\n}\n\n.count-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 4px 12px;\n background: var(--mj-color-warning-500);\n color: white;\n font-size: 12px;\n font-weight: 600;\n border-radius: var(--mj-radius-lg);\n}\n\n\n\n.footer[_ngcontent-%COMP%] {\n padding: 12px 24px;\n background: var(--mj-bg-page);\n border-top: 1px solid var(--mj-border-default);\n text-align: right;\n flex-shrink: 0;\n}\n\n.last-updated[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n\n\n.warning-banner[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50) !important;\n color: var(--mj-color-warning-800) !important;\n}\n\n.warning-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n}\n\n.telemetry-summary[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.summary-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n text-align: center;\n}\n\n.summary-value[_ngcontent-%COMP%] {\n font-size: 28px;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.summary-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n}\n\n.category-breakdown[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.category-breakdown[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.category-grid[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.category-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-full);\n font-size: 13px;\n}\n\n.category-name[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.category-events[_ngcontent-%COMP%] {\n background: var(--mj-color-indigo-500);\n color: white;\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 600;\n}\n\n.category-avg[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 11px;\n}\n\n.insights-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.insights-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.insights-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n}\n\n.insights-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.insight-card[_ngcontent-%COMP%] {\n padding: 16px;\n border-radius: var(--mj-radius-md);\n border-left: 4px solid var(--mj-border-default);\n}\n\n.insight-card.severity-info[_ngcontent-%COMP%] {\n background: var(--mj-color-accent-300);\n border-left-color: var(--mj-brand-primary);\n}\n\n.insight-card.severity-warning[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n border-left-color: var(--mj-color-warning-500);\n}\n\n.insight-card.severity-optimization[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n border-left-color: var(--mj-status-success);\n}\n\n.insight-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 8px;\n}\n\n.insight-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.severity-info[_ngcontent-%COMP%] .insight-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n.severity-warning[_ngcontent-%COMP%] .insight-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-color-warning-500); }\n.severity-optimization[_ngcontent-%COMP%] .insight-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n\n.insight-title[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n flex: 1;\n}\n\n.insight-category[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 2px 8px;\n background: rgba(0, 0, 0, 0.1);\n border-radius: var(--mj-radius-lg);\n color: var(--mj-text-secondary);\n}\n\n.insight-message[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n}\n\n.insight-suggestion[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.insight-suggestion[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n font-size: 10px;\n}\n\n.patterns-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.patterns-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-indigo-500);\n}\n\n.patterns-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.patterns-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.patterns-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 12px 16px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.patterns-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.patterns-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n.patterns-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.duplicate-row[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n}\n\n.duplicate-row[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-warning-50) !important;\n}\n\n.category-chip[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 3px 10px;\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.cat-runview[_ngcontent-%COMP%] { background: var(--mj-color-info-100); color: var(--mj-color-info-700); }\n.cat-runquery[_ngcontent-%COMP%] { background: var(--mj-color-violet-100); color: var(--mj-color-violet-700); }\n.cat-engine[_ngcontent-%COMP%] { background: var(--mj-color-success-100); color: var(--mj-color-success-700); }\n.cat-ai[_ngcontent-%COMP%] { background: var(--mj-color-warning-50); color: var(--mj-color-warning-700); }\n.cat-cache[_ngcontent-%COMP%] { background: var(--mj-color-error-100); color: var(--mj-status-error); }\n.cat-network[_ngcontent-%COMP%] { background: var(--mj-color-tertiary-100); color: var(--mj-color-tertiary-700); }\n.cat-custom[_ngcontent-%COMP%] { background: var(--mj-color-neutral-100); color: var(--mj-color-neutral-600); }\n\n.operation-cell[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 12px;\n}\n\n.entity-cell[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n.count-warning[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 8px;\n background: var(--mj-color-warning-500);\n color: white;\n border-radius: var(--mj-radius-lg);\n font-weight: 600;\n}\n\n.action-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: white;\n}\n\n\n\n.slow-queries-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n border-left: 4px solid var(--mj-color-warning-500);\n}\n\n.slow-queries-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-color-warning-800);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.slow-queries-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n}\n\n.slow-queries-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.slow-query-item[_ngcontent-%COMP%] {\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-md);\n padding: 10px 12px;\n border: 1px solid var(--mj-color-warning-50);\n transition: all 0.15s ease;\n}\n\n.slow-query-item.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.slow-query-item.clickable[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-warning-50);\n border-color: var(--mj-color-warning-500);\n transform: translateX(2px);\n}\n\n.slow-query-main[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.slow-query-entity[_ngcontent-%COMP%] {\n flex: 1;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.slow-query-time[_ngcontent-%COMP%] {\n font-weight: 700;\n color: var(--mj-color-warning-800);\n font-size: 14px;\n}\n\n.slow-query-filter[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n font-family: monospace;\n}\n\n.slow-query-timestamp[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n}\n\n\n\n.view-toggle[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n margin-bottom: 16px;\n}\n\n.toggle-btn[_ngcontent-%COMP%] {\n padding: 8px 16px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s ease;\n}\n\n.toggle-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.toggle-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-color-indigo-500);\n color: white;\n border-color: var(--mj-color-indigo-500);\n}\n\n\n\n.insight-card.expandable[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.insight-card.expandable[_ngcontent-%COMP%]:hover {\n box-shadow: var(--mj-shadow-md);\n}\n\n.insight-card[_ngcontent-%COMP%] .expand-icon[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: 12px;\n margin-left: auto;\n}\n\n.insight-card.expanded[_ngcontent-%COMP%] {\n border-width: 2px;\n}\n\n.insight-details[_ngcontent-%COMP%] {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.detail-section[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n margin-bottom: 4px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.related-events[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.related-event[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 6px 10px;\n background: rgba(0, 0, 0, 0.03);\n border-radius: 4px;\n font-size: 12px;\n}\n\n.event-time[_ngcontent-%COMP%] {\n font-family: monospace;\n color: var(--mj-text-secondary);\n}\n\n.event-duration[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.event-filter[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-family: monospace;\n font-size: 11px;\n}\n\n\n\n.timeline-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-indigo-500);\n}\n\n.timeline-container[_ngcontent-%COMP%] {\n position: relative;\n padding-left: 24px;\n max-height: 400px;\n overflow-y: auto;\n}\n\n.timeline-item[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-bottom: 12px;\n position: relative;\n}\n\n.timeline-marker[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n position: absolute;\n left: -24px;\n top: 0;\n bottom: 0;\n}\n\n.marker-dot[_ngcontent-%COMP%] {\n width: 10px;\n height: 10px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-color-indigo-500);\n z-index: 1;\n}\n\n.marker-line[_ngcontent-%COMP%] {\n width: 2px;\n flex: 1;\n background: var(--mj-border-default);\n margin-top: 4px;\n}\n\n.timeline-item[_ngcontent-%COMP%]:last-child .marker-line[_ngcontent-%COMP%] {\n display: none;\n}\n\n.tl-runview[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-color-info-700); }\n.tl-runquery[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-color-violet-700); }\n.tl-engine[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-color-success-700); }\n.tl-ai[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-color-warning-700); }\n.tl-cache[_ngcontent-%COMP%] .marker-dot[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n\n\n\n.marker-bolt[_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n color: var(--mj-color-warning-500);\n font-size: 14px;\n margin-left: -4px;\n}\n\n.marker-bolt[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n filter: drop-shadow(0 0 3px color-mix(in srgb, var(--mj-color-warning-500) 60%, transparent));\n}\n\n\n\n.tl-runview.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-color-info-700); }\n.tl-runquery.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-color-violet-700); }\n.tl-engine.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-color-success-700); }\n.tl-ai.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-color-warning-700); }\n.tl-cache.cache-hit[_ngcontent-%COMP%] .marker-bolt[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n\n\n.cache-hit-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: linear-gradient(135deg, var(--mj-color-warning-100) 0%, var(--mj-color-warning-200) 100%);\n border: 1px solid var(--mj-color-warning-500);\n border-radius: var(--mj-radius-lg);\n font-size: 9px;\n font-weight: 700;\n color: var(--mj-color-warning-800);\n letter-spacing: 0.5px;\n}\n\n.cache-hit-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 8px;\n color: var(--mj-color-warning-500);\n}\n\n\n\n.timeline-item.cache-hit[_ngcontent-%COMP%] .timeline-content[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--mj-color-warning-50) 0%, var(--mj-color-warning-100) 100%);\n border: 1px solid var(--mj-color-warning-300);\n}\n\n.timeline-content[_ngcontent-%COMP%] {\n flex: 1;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 10px 14px;\n}\n\n.timeline-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 4px;\n}\n\n.timeline-time[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.timeline-duration[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.timeline-duration.slow[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-800);\n background: var(--mj-color-warning-50);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.timeline-body[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-operation[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.timeline-entity[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.timeline-filter[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-family: monospace;\n margin-top: 4px;\n}\n\n\n\n.timeline-entities[_ngcontent-%COMP%], \n.slow-query-entities[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 4px;\n}\n\n.entity-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n background: var(--mj-color-info-100);\n border: 1px solid var(--mj-brand-primary);\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 500;\n color: var(--mj-color-info-700);\n}\n\n.entity-pill.small[_ngcontent-%COMP%] {\n padding: 1px 6px;\n font-size: 10px;\n}\n\n.entity-pill.more[_ngcontent-%COMP%] {\n background: var(--mj-color-neutral-100);\n border-color: var(--mj-color-neutral-200);\n color: var(--mj-color-neutral-600);\n font-style: italic;\n}\n\n\n\n.timeline-pills[_ngcontent-%COMP%], \n.slow-query-pills[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-top: 6px;\n}\n\n.param-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-family: monospace;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.param-pill.small[_ngcontent-%COMP%] {\n padding: 2px 6px;\n font-size: 9px;\n max-width: 150px;\n}\n\n.param-pill[_ngcontent-%COMP%] .pill-label[_ngcontent-%COMP%] {\n font-weight: 600;\n opacity: 0.8;\n}\n\n.param-pill[_ngcontent-%COMP%] .pill-value[_ngcontent-%COMP%] {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n\n\n.param-pill.pill-filter[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n border: 1px solid var(--mj-color-warning-300);\n color: var(--mj-color-warning-700);\n}\n\n.param-pill.pill-order[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n border: 1px solid var(--mj-color-success-300);\n color: var(--mj-color-success-700);\n}\n\n.param-pill.pill-result[_ngcontent-%COMP%] {\n background: var(--mj-color-violet-100);\n border: 1px solid var(--mj-color-violet-300);\n color: var(--mj-color-violet-700);\n}\n\n.param-pill.pill-limit[_ngcontent-%COMP%] {\n background: var(--mj-color-info-100);\n border: 1px solid var(--mj-brand-primary);\n color: var(--mj-color-info-700);\n}\n\n.param-pill.pill-batch[_ngcontent-%COMP%] {\n background: var(--mj-color-error-100);\n border: 1px solid var(--mj-color-error-300);\n color: var(--mj-status-error);\n}\n\n.param-pill.pill-info[_ngcontent-%COMP%] {\n background: var(--mj-color-neutral-100);\n border: 1px solid var(--mj-color-neutral-200);\n color: var(--mj-color-neutral-600);\n}\n\n\n\n.slow-query-item.cache-hit[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--mj-color-warning-50) 0%, var(--mj-color-warning-100) 100%);\n border-color: var(--mj-color-warning-300);\n}\n\n.cache-hit-badge.small[_ngcontent-%COMP%] {\n padding: 1px 6px;\n font-size: 8px;\n}\n\n\n\n.filter-bar[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-bottom: 16px;\n padding: 12px 16px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n}\n\n.search-box[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 200px;\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.search-box[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n position: absolute;\n left: 12px;\n color: var(--mj-text-muted);\n}\n\n.search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px 36px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n background: var(--mj-bg-page);\n}\n\n.search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-color-indigo-500);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--mj-color-indigo-500) 20%, transparent);\n}\n\n.clear-search[_ngcontent-%COMP%] {\n position: absolute;\n right: 8px;\n background: none;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px;\n}\n\n.clear-search[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-secondary);\n}\n\n.filter-buttons[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.filter-btn[_ngcontent-%COMP%] {\n padding: 6px 14px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-full);\n font-size: 12px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.filter-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n}\n\n.filter-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-color-indigo-500);\n color: white;\n border-color: var(--mj-color-indigo-500);\n}\n\n\n\n.sortable-header[_ngcontent-%COMP%] {\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n}\n\n.sortable-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface);\n}\n\n.sortable-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-left: 6px;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.sortable-header[_ngcontent-%COMP%] i.fa-sort-up[_ngcontent-%COMP%], \n.sortable-header[_ngcontent-%COMP%] i.fa-sort-down[_ngcontent-%COMP%] {\n color: var(--mj-color-indigo-500);\n}\n\n\n\n.filter-cell[_ngcontent-%COMP%] {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-secondary);\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.slow-row[_ngcontent-%COMP%] {\n background: var(--mj-color-error-100);\n}\n\n.slow-row[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-error-100) !important;\n}\n\n.slow-value[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n font-weight: 600;\n}\n\n\n\n.category-chip.small[_ngcontent-%COMP%] {\n font-size: 9px;\n padding: 2px 6px;\n}\n\n\n\n.empty-state.small[_ngcontent-%COMP%] {\n padding: 30px 20px;\n}\n\n.empty-state.small[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n margin-bottom: 12px;\n}\n\n.empty-state.small[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.perf-tabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n padding: 12px 24px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.perf-tab[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n border: none;\n background: transparent;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.perf-tab[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.perf-tab.active[_ngcontent-%COMP%] {\n background: var(--mj-bg-page);\n color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.perf-tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.tab-badge[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 10px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: var(--mj-radius-md);\n min-width: 18px;\n text-align: center;\n}\n\n.perf-tab.active[_ngcontent-%COMP%] .tab-badge[_ngcontent-%COMP%] {\n background: var(--mj-color-success-100);\n color: var(--mj-color-success-800);\n}\n\n.tab-badge.warning[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.tab-badge.insight[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.perf-panel[_ngcontent-%COMP%] .section-panel-content[_ngcontent-%COMP%] {\n padding: 20px 24px;\n}\n\n\n\n.success-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-success-100);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-color-success-800);\n margin-top: 16px;\n}\n\n.success-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-status-success);\n}\n\n\n\n.filter-bar.compact[_ngcontent-%COMP%] {\n padding: 10px 14px;\n margin-bottom: 12px;\n}\n\n\n\n.category-item[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.category-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-accent-300);\n transform: translateY(-1px);\n}\n\n\n\n.insight-key-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 10px 12px;\n background: rgba(0, 0, 0, 0.03);\n border-radius: var(--mj-radius-md);\n margin: 8px 0;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.key-info-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n font-size: 12px;\n}\n\n.key-label[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-weight: 500;\n min-width: 50px;\n flex-shrink: 0;\n}\n\n.key-value[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.key-value.entity-name[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.key-value.filter-code[_ngcontent-%COMP%] {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n background: rgba(0, 0, 0, 0.06);\n padding: 2px 6px;\n border-radius: 3px;\n color: var(--mj-text-primary);\n}\n\n\n\n.params-display[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 10px;\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.param-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n padding: 4px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.param-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.param-key[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-weight: 500;\n min-width: 100px;\n flex-shrink: 0;\n}\n\n.param-value[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.event-entity[_ngcontent-%COMP%] {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 11px;\n font-weight: 500;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.perfmon-section[_ngcontent-%COMP%] {\n \n\n --perfmon-bg: var(--mj-bg-surface-card);\n --perfmon-bg-deep: var(--mj-bg-surface-sunken);\n --perfmon-border: var(--mj-border-default);\n --perfmon-border-medium: var(--mj-border-strong);\n --perfmon-border-light: var(--mj-border-strong);\n --perfmon-text-faint: var(--mj-text-disabled);\n --perfmon-text-muted: var(--mj-text-muted);\n --perfmon-text-secondary: var(--mj-text-secondary);\n --perfmon-control-bg: var(--mj-bg-surface-sunken);\n --perfmon-control-bg-hover: var(--mj-bg-surface-hover);\n --perfmon-mode-bg: var(--mj-bg-surface-sunken);\n --perfmon-overlay-light: color-mix(in srgb, var(--mj-text-primary) 5%, transparent);\n --perfmon-overlay-medium: color-mix(in srgb, var(--mj-text-primary) 15%, transparent);\n --perfmon-overlay-strong: color-mix(in srgb, var(--mj-text-primary) 25%, transparent);\n --perfmon-tooltip-bg: var(--mj-bg-overlay);\n\n \n\n --perfmon-accent: #00ff88;\n --perfmon-accent-dim: #00cc6a;\n --perfmon-series-runview: #00bcd4;\n --perfmon-series-runquery: #e040fb;\n --perfmon-series-engine: #00ff88;\n --perfmon-series-ai: #ff9800;\n\n background: var(--perfmon-bg);\n border-radius: 8px;\n padding: 16px;\n margin-bottom: 24px;\n}\n\n.perfmon-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.perfmon-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--perfmon-accent);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.perfmon-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--perfmon-accent);\n}\n\n.perfmon-legend[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: 11px;\n}\n\n.legend-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--perfmon-text-muted);\n}\n\n.legend-dot[_ngcontent-%COMP%] {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n}\n\n.legend-item.runview[_ngcontent-%COMP%] .legend-dot[_ngcontent-%COMP%] { background: var(--perfmon-series-runview); }\n.legend-item.runquery[_ngcontent-%COMP%] .legend-dot[_ngcontent-%COMP%] { background: var(--perfmon-series-runquery); }\n.legend-item.engine[_ngcontent-%COMP%] .legend-dot[_ngcontent-%COMP%] { background: var(--perfmon-series-engine); }\n.legend-item.ai[_ngcontent-%COMP%] .legend-dot[_ngcontent-%COMP%] { background: var(--perfmon-series-ai); }\n\n.perfmon-chart-container[_ngcontent-%COMP%] {\n display: flex;\n background: var(--perfmon-bg-deep);\n border: 1px solid var(--perfmon-border);\n border-radius: 4px;\n position: relative;\n}\n\n.perfmon-y-axis[_ngcontent-%COMP%] {\n width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid var(--perfmon-border);\n}\n\n.perfmon-y-axis[_ngcontent-%COMP%] .axis-label[_ngcontent-%COMP%] {\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n font-size: 10px;\n color: var(--perfmon-text-faint);\n text-transform: uppercase;\n letter-spacing: 1px;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] {\n flex: 1;\n height: 300px;\n position: relative;\n overflow: hidden;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n}\n\n.perfmon-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--perfmon-border);\n}\n\n.footer-note[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--perfmon-text-faint);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.footer-note[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--perfmon-accent);\n}\n\n.footer-stats[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--perfmon-accent);\n font-family: monospace;\n}\n\n\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.grid-line) {\n stroke: var(--perfmon-border);\n stroke-dasharray: 2,2;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.axis-line) {\n stroke: var(--perfmon-border-light);\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.axis-text) {\n fill: var(--perfmon-text-muted);\n font-size: 10px;\n font-family: monospace;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.event-point) {\n cursor: pointer;\n transition: r 0.15s ease;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.event-point:hover) {\n r: 6;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.tooltip) {\n pointer-events: none;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.tooltip-bg) {\n fill: var(--perfmon-tooltip-bg);\n rx: 4;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.tooltip-text) {\n fill: var(--mj-bg-surface);\n font-size: 11px;\n font-family: monospace;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.area-fill) {\n opacity: 0.15;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.line-path) {\n fill: none;\n stroke-width: 1.5;\n opacity: 0.8;\n}\n\n\n\n.perfmon-controls[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n padding: 8px 12px;\n background: var(--perfmon-overlay-light);\n border-radius: 6px;\n border: 1px solid var(--perfmon-border);\n}\n\n.chart-control-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n background: var(--perfmon-control-bg);\n color: var(--perfmon-text-muted);\n border: 1px solid var(--perfmon-border-medium);\n border-radius: 4px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.chart-control-btn[_ngcontent-%COMP%]:hover {\n background: var(--perfmon-control-bg-hover);\n color: var(--perfmon-accent);\n border-color: var(--perfmon-accent);\n}\n\n.chart-control-btn[_ngcontent-%COMP%]:active {\n transform: scale(0.95);\n}\n\n.chart-control-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.mode-toggle[_ngcontent-%COMP%] {\n display: flex;\n background: var(--perfmon-mode-bg);\n border-radius: 4px;\n overflow: hidden;\n border: 1px solid var(--perfmon-border-medium);\n}\n\n.mode-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 28px;\n padding: 0;\n background: transparent;\n color: var(--perfmon-text-faint);\n border: none;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.mode-btn[_ngcontent-%COMP%]:first-child {\n border-right: 1px solid var(--perfmon-border);\n}\n\n.mode-btn[_ngcontent-%COMP%]:hover {\n color: var(--perfmon-text-secondary);\n background: var(--perfmon-overlay-light);\n}\n\n.mode-btn.active[_ngcontent-%COMP%] {\n background: var(--perfmon-accent);\n color: var(--perfmon-mode-bg);\n}\n\n.mode-btn.active[_ngcontent-%COMP%]:hover {\n background: var(--perfmon-accent-dim);\n}\n\n.mode-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.control-divider[_ngcontent-%COMP%] {\n width: 1px;\n height: 24px;\n background: var(--perfmon-border-medium);\n margin: 0 4px;\n}\n\n.compress-toggle[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 12px;\n color: var(--perfmon-text-muted);\n user-select: none;\n}\n\n.compress-toggle[_ngcontent-%COMP%]:hover {\n color: var(--perfmon-accent);\n}\n\n.compress-toggle[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n width: 14px;\n height: 14px;\n accent-color: var(--perfmon-accent);\n cursor: pointer;\n}\n\n.compress-toggle[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\n.zoom-level[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--perfmon-text-faint);\n font-family: monospace;\n margin-left: 8px;\n}\n\n\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-indicator) {\n cursor: pointer;\n transition: opacity 0.15s ease;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-indicator:hover) {\n opacity: 0.8;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-text) {\n fill: var(--perfmon-text-faint);\n font-size: 10px;\n font-family: monospace;\n pointer-events: none;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-expand-btn) {\n cursor: pointer;\n opacity: 0.6;\n transition: opacity 0.15s ease;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.gap-expand-btn:hover) {\n opacity: 1;\n}\n\n\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.selection-overlay) {\n pointer-events: all;\n}\n\n.perfmon-chart[_ngcontent-%COMP%] [_ngcontent-%COMP%]:deep(.selection-rect) {\n pointer-events: none;\n}\n\n\n\n.zoom-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 11px;\n color: var(--perfmon-text-muted);\n font-family: monospace;\n}\n\n.zoom-info[_ngcontent-%COMP%] .zoom-level[_ngcontent-%COMP%] {\n color: var(--perfmon-accent);\n}\n\n.zoom-info[_ngcontent-%COMP%] .time-range[_ngcontent-%COMP%] {\n color: var(--perfmon-text-faint);\n}\n\n\n\n@media (max-width: 1024px) {\n .main-content[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .left-nav[_ngcontent-%COMP%] {\n width: 100%;\n border-right: none;\n border-bottom: 1px solid var(--mj-border-default);\n padding: 12px;\n }\n\n .nav-section[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n overflow-x: auto;\n padding: 0;\n }\n\n .nav-section-title[_ngcontent-%COMP%] {\n display: none;\n }\n\n .nav-item[_ngcontent-%COMP%] {\n white-space: nowrap;\n padding: 10px 16px;\n }\n}\n\n@media (max-width: 768px) {\n .engine-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .perfmon-legend[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n gap: 8px;\n }\n}\n\n\n\n.export-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 14px;\n background: var(--mj-status-success);\n color: white;\n border: none;\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.export-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-color-success-800);\n transform: translateY(-1px);\n}\n\n.export-btn[_ngcontent-%COMP%]:disabled {\n background: var(--mj-border-default);\n cursor: not-allowed;\n}\n\n.footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n\n\n.event-detail-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.event-detail-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: 0;\n width: 450px;\n max-width: 90vw;\n height: 100vh;\n background: var(--mj-bg-page);\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: _ngcontent-%COMP%_slideIn 0.25s ease;\n}\n\n@keyframes _ngcontent-%COMP%_slideIn {\n from { transform: translateX(100%); }\n to { transform: translateX(0); }\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%] {\n background: none;\n border: none;\n font-size: 18px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .panel-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n\n\n.detail-metrics[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px;\n margin-bottom: 24px;\n}\n\n.detail-metrics[_ngcontent-%COMP%] .metric[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n text-align: center;\n}\n\n.detail-metrics[_ngcontent-%COMP%] .metric-value[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-family: monospace;\n}\n\n.detail-metrics[_ngcontent-%COMP%] .metric-value.slow[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.detail-metrics[_ngcontent-%COMP%] .metric-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n\n\n.event-detail-panel[_ngcontent-%COMP%] .detail-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .detail-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 12px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.event-detail-panel[_ngcontent-%COMP%] .detail-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n font-size: 14px;\n}\n\n.detail-content[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n}\n\n.detail-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.detail-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.detail-key[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n font-weight: 500;\n min-width: 80px;\n flex-shrink: 0;\n}\n\n.detail-val[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.detail-val.entity-highlight[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.detail-val.filter-val[_ngcontent-%COMP%] {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n background: rgba(0, 0, 0, 0.05);\n padding: 4px 8px;\n border-radius: 4px;\n}\n\n\n\n.params-grid[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.param-item[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 6px 0;\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 12px;\n}\n\n.param-item[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.param-name[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-weight: 500;\n min-width: 100px;\n flex-shrink: 0;\n font-family: monospace;\n}\n\n.param-val[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n\n\n.pattern-summary[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n}\n\n.pattern-stat[_ngcontent-%COMP%] {\n text-align: center;\n}\n\n.pattern-stat[_ngcontent-%COMP%] .stat-val[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-family: monospace;\n}\n\n.pattern-stat[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-top: 4px;\n}\n\n.pattern-warning[_ngcontent-%COMP%] {\n margin-top: 12px;\n padding: 12px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n color: var(--mj-color-warning-800);\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.pattern-warning[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-color-warning-500);\n margin-top: 2px;\n}\n\n\n\n.detail-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.action-button[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 10px 16px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-primary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.action-button[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-default);\n}\n\n.action-button[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n}\n\n\n\n.timeline-item.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item.clickable[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-status-success) 5%, transparent);\n}\n\n.timeline-item.clickable[_ngcontent-%COMP%]:hover .marker-dot[_ngcontent-%COMP%] {\n transform: scale(1.3);\n}\n\n\n\n\n\n\n.engine-detail-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: 0;\n width: 550px;\n max-width: 95vw;\n height: 100vh;\n background: var(--mj-bg-page);\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: _ngcontent-%COMP%_slideIn 0.25s ease;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: linear-gradient(135deg, var(--mj-status-success) 0%, var(--mj-color-success-800) 100%);\n color: white;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: white;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-header-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .icon-btn[_ngcontent-%COMP%] {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: white;\n width: 36px;\n height: 36px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .icon-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .icon-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%] {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: white;\n width: 36px;\n height: 36px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 18px;\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .close-btn[_ngcontent-%COMP%]:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.engine-detail-panel[_ngcontent-%COMP%] .panel-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n\n\n.engine-summary-section[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 12px;\n margin-bottom: 24px;\n}\n\n.engine-summary-section[_ngcontent-%COMP%] .summary-stat[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px 16px;\n}\n\n.engine-summary-section[_ngcontent-%COMP%] .summary-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 4px;\n}\n\n.engine-summary-section[_ngcontent-%COMP%] .summary-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.status-dot[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-color-warning-500);\n}\n\n.status-dot.status-loaded[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n\n\n\n.config-items-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.config-items-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.config-items-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.config-item[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-item.expanded[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.config-item-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.2s ease;\n}\n\n.config-item-header[_ngcontent-%COMP%]:hover {\n background: rgba(0, 0, 0, 0.02);\n}\n\n.config-item-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n flex: 1;\n min-width: 0;\n}\n\n.config-type-chip[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n flex-shrink: 0;\n}\n\n.config-type-chip.type-entity[_ngcontent-%COMP%] {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n}\n\n.config-type-chip.type-dataset[_ngcontent-%COMP%] {\n background: var(--mj-color-violet-100);\n color: var(--mj-color-violet-700);\n}\n\n.config-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.config-item-stats[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-stat[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.expand-icon[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n transition: transform 0.2s ease;\n}\n\n.config-item.expanded[_ngcontent-%COMP%] .expand-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.config-item-details[_ngcontent-%COMP%] {\n padding: 0 16px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n}\n\n.config-detail-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 10px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.config-detail-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.config-detail-row[_ngcontent-%COMP%] .detail-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n min-width: 70px;\n flex-shrink: 0;\n}\n\n.config-detail-row[_ngcontent-%COMP%] .detail-value[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-primary);\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n background: var(--mj-bg-surface-sunken);\n padding: 2px 6px;\n border-radius: 4px;\n word-break: break-all;\n}\n\n\n\n.config-health-icon[_ngcontent-%COMP%] {\n font-size: 12px;\n flex-shrink: 0;\n}\n.config-health-icon.health-success[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n.config-health-icon.health-failure[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n.config-detail-row--error[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 6%, transparent);\n border-radius: 4px;\n padding: 4px 8px;\n}\n.detail-value--error[_ngcontent-%COMP%] {\n color: var(--mj-status-error-text) !important;\n background: none !important;\n font-family: inherit !important;\n word-break: break-word;\n}\n\n\n\n.sample-data-section[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.sample-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.sample-title[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.sample-header-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.load-more-btn[_ngcontent-%COMP%], \n.load-all-btn[_ngcontent-%COMP%] {\n background: none;\n border: 1px solid var(--mj-color-indigo-500);\n color: var(--mj-color-indigo-500);\n font-size: 11px;\n padding: 4px 10px;\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.2s ease;\n}\n\n.load-more-btn[_ngcontent-%COMP%]:hover:not(:disabled), \n.load-all-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-color-indigo-500);\n color: white;\n}\n\n.load-more-btn[_ngcontent-%COMP%]:disabled, \n.load-all-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.all-loaded-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n color: var(--mj-status-success);\n padding: 4px 10px;\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n border-radius: 4px;\n}\n\n.action-col[_ngcontent-%COMP%] {\n width: 36px;\n min-width: 36px;\n max-width: 36px;\n padding: 4px !important;\n text-align: center;\n}\n\n.open-record-btn[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n border: none;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-color-indigo-500);\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n transition: all 0.2s ease;\n}\n\n.open-record-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-indigo-500);\n color: white;\n}\n\n.sample-data-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.sample-data-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 11px;\n}\n\n.sample-data-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n padding: 8px 10px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.sample-data-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 8px 10px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n max-width: 150px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sample-data-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n.sample-data-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n\n\n.empty-state.small[_ngcontent-%COMP%] {\n padding: 30px 20px;\n}\n\n.empty-state.small[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n}\n\n.empty-state.small[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n\n\n.spinning[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n}\n\n@keyframes _ngcontent-%COMP%_spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n\n\n\n\n\n.cache-summary[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n margin-bottom: 24px;\n flex-wrap: wrap;\n}\n\n.cache-type-breakdown[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n}\n\n.cache-type-breakdown[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.type-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.type-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--mj-bg-page);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.type-item[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.type-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-md);\n font-size: 18px;\n color: var(--mj-text-secondary);\n}\n\n.type-name[_ngcontent-%COMP%] {\n flex: 1;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.type-count[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-status-success);\n}\n\n.type-size[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-left: 8px;\n}\n\n.cache-entries-section[_ngcontent-%COMP%] {\n margin-top: 24px;\n}\n\n.cache-entries-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.cache-entries-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.filter-controls[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.cache-entries-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.cache-entries-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.cache-entries-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n padding: 12px 16px;\n text-align: left;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n font-weight: 600;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.cache-entries-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 10px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n vertical-align: middle;\n}\n\n.cache-entries-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.cache-entries-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n.cache-type-chip[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.cache-type-chip.type-dataset[_ngcontent-%COMP%] {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n}\n\n.cache-type-chip.type-runview[_ngcontent-%COMP%] {\n background: var(--mj-color-tertiary-100);\n color: var(--mj-color-tertiary-700);\n}\n\n.cache-type-chip.type-runquery[_ngcontent-%COMP%] {\n background: var(--mj-color-violet-100);\n color: var(--mj-color-violet-700);\n}\n\n.entry-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.entry-fingerprint[_ngcontent-%COMP%] {\n display: block;\n font-size: 10px;\n color: var(--mj-text-muted);\n margin-top: 2px;\n background: var(--mj-bg-surface-sunken);\n padding: 2px 6px;\n border-radius: 3px;\n}\n\n.icon-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.icon-btn[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-status-error);\n color: var(--mj-status-error);\n background: var(--mj-status-error-bg);\n}\n\n.table-footer[_ngcontent-%COMP%] {\n padding: 12px 16px;\n text-align: center;\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n border-top: 1px solid var(--mj-border-default);\n}"], changeDetection: 0 });
4776
4625
  };
4777
4626
  SystemDiagnosticsComponent = __decorate([
4778
4627
  RegisterClass(BaseResourceComponent, 'SystemDiagnosticsResource')
@@ -4781,156 +4630,52 @@ export { SystemDiagnosticsComponent };
4781
4630
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SystemDiagnosticsComponent, [{
4782
4631
  type: Component,
4783
4632
  args: [{ standalone: false, selector: 'app-system-diagnostics', changeDetection: ChangeDetectionStrategy.OnPush, template: `
4784
- <div class="system-diagnostics">
4785
- <!-- Header -->
4786
- <div class="diagnostics-header">
4787
- <div class="header-title">
4788
- <i class="fa-solid fa-stethoscope"></i>
4789
- <h2>System Diagnostics</h2>
4790
- </div>
4791
- <div class="header-controls">
4792
- <div class="auto-refresh-control">
4793
- <label>
4794
- <input type="checkbox" [(ngModel)]="autoRefresh" (change)="toggleAutoRefresh()">
4795
- Auto-refresh
4796
- </label>
4797
- @if (autoRefresh) {
4798
- <span class="refresh-indicator">
4799
- <i class="fa-solid fa-sync-alt spinning"></i>
4800
- Every 5s
4801
- </span>
4802
- }
4803
- </div>
4804
- <button class="refresh-btn" (click)="refreshData()" [disabled]="isLoading">
4805
- <i class="fa-solid fa-refresh" [class.spinning]="isLoading"></i>
4806
- Refresh Now
4807
- </button>
4808
- </div>
4633
+ <!--
4634
+ SystemDiagnostics renders inside Admin's "Monitoring" left-nav shell.
4635
+ L1 (outer Admin rail) is owned by the parent shell; here we use
4636
+ <mj-page-header-interior> with [toolbar]=<mj-tab-nav> to render the
4637
+ L2 section nav (Engine Registry / Redundant / Performance / Cache),
4638
+ and [actions]=auto-refresh + refresh button. The Performance section
4639
+ carries its own L3 perf-tabs strip inside its panel.
4640
+ See plans/explorer-chrome-conventions.md Section 10.
4641
+ -->
4642
+ <mj-page-header-interior
4643
+ Role="region"
4644
+ AriaLabel="System diagnostics"
4645
+ Title="System Diagnostics"
4646
+ Subtitle="Engine registry, cache, and performance telemetry">
4647
+ <div meta>
4648
+ <mj-stat-badge [Count]="engineStats?.totalEngines || 0" Label="engines"></mj-stat-badge>
4649
+ <mj-stat-badge [Count]="formatBytes(engineStats?.totalEstimatedMemoryBytes || 0)" Label="memory"></mj-stat-badge>
4650
+ <mj-stat-badge
4651
+ [Count]="redundantLoads.length"
4652
+ Label="redundant"
4653
+ [Variant]="redundantLoads.length > 0 ? 'warning' : 'default'">
4654
+ </mj-stat-badge>
4809
4655
  </div>
4810
-
4811
- <!-- Overview Cards (Collapsible) -->
4812
- <div class="overview-cards-container" [class.collapsed]="kpiCardsCollapsed">
4813
- <button class="kpi-toggle-btn" (click)="toggleKpiCards()" [title]="kpiCardsCollapsed ? 'Expand KPI cards' : 'Collapse KPI cards'">
4814
- <i class="fa-solid" [class.fa-chevron-up]="!kpiCardsCollapsed" [class.fa-chevron-down]="kpiCardsCollapsed"></i>
4815
- </button>
4816
-
4817
- @if (!kpiCardsCollapsed) {
4818
- <!-- Expanded View -->
4819
- <div class="overview-cards">
4820
- <div class="overview-card">
4821
- <div class="card-icon card-icon--engines">
4822
- <i class="fa-solid fa-cogs"></i>
4823
- </div>
4824
- <div class="card-content">
4825
- <div class="card-value">{{ engineStats?.totalEngines || 0 }}</div>
4826
- <div class="card-label">Registered Engines</div>
4827
- <div class="card-subtitle">{{ engineStats?.loadedEngines || 0 }} loaded</div>
4828
- </div>
4829
- </div>
4830
-
4831
- <div class="overview-card">
4832
- <div class="card-icon card-icon--memory">
4833
- <i class="fa-solid fa-microchip"></i>
4834
- </div>
4835
- <div class="card-content">
4836
- <div class="card-value">{{ formatBytes(engineStats?.totalEstimatedMemoryBytes || 0) }}</div>
4837
- <div class="card-label">Engine Memory</div>
4838
- <div class="card-subtitle">Estimated total</div>
4839
- </div>
4840
- </div>
4841
-
4842
- <div class="overview-card">
4843
- <div class="card-icon" [class.card-icon--warning]="redundantLoads.length > 0" [class.card-icon--success]="redundantLoads.length === 0">
4844
- <i class="fa-solid fa-copy"></i>
4845
- </div>
4846
- <div class="card-content">
4847
- <div class="card-value">{{ redundantLoads.length }}</div>
4848
- <div class="card-label">Redundant Loads</div>
4849
- <div class="card-subtitle">
4850
- @if (redundantLoads.length === 0) {
4851
- No redundant loading detected
4852
- } @else {
4853
- {{ redundantLoads.length }} entities loaded by multiple engines
4854
- }
4855
- </div>
4856
- </div>
4857
- </div>
4858
- </div>
4859
- } @else {
4860
- <!-- Collapsed View - Mini KPI bar -->
4861
- <div class="overview-cards-mini">
4862
- <div class="mini-kpi" title="Registered Engines">
4863
- <i class="fa-solid fa-cogs"></i>
4864
- <span class="mini-value">{{ engineStats?.totalEngines || 0 }}</span>
4865
- <span class="mini-label">Engines</span>
4866
- </div>
4867
- <div class="mini-divider"></div>
4868
- <div class="mini-kpi" title="Engine Memory">
4869
- <i class="fa-solid fa-microchip"></i>
4870
- <span class="mini-value">{{ formatBytes(engineStats?.totalEstimatedMemoryBytes || 0) }}</span>
4871
- <span class="mini-label">Memory</span>
4872
- </div>
4873
- <div class="mini-divider"></div>
4874
- <div class="mini-kpi" [class.warning]="redundantLoads.length > 0" title="Redundant Loads">
4875
- <i class="fa-solid fa-copy"></i>
4876
- <span class="mini-value">{{ redundantLoads.length }}</span>
4877
- <span class="mini-label">Redundant</span>
4878
- </div>
4879
- </div>
4880
- }
4656
+ <div toolbar>
4657
+ <mj-tab-nav
4658
+ [Tabs]="diagnosticsTabs"
4659
+ [ActiveKey]="activeSection"
4660
+ (TabChange)="onSectionTabChange($event)">
4661
+ </mj-tab-nav>
4881
4662
  </div>
4882
-
4883
- <!-- Main Content with Left Nav -->
4884
- <div class="main-content">
4885
- <!-- Left Navigation -->
4886
- <div class="left-nav">
4887
- <div class="nav-section">
4888
- <div class="nav-section-title">Diagnostics</div>
4889
- <div
4890
- class="nav-item"
4891
- [class.active]="activeSection === 'engines'"
4892
- (click)="setActiveSection('engines')"
4893
- >
4894
- <i class="fa-solid fa-cogs"></i>
4895
- <span>Engine Registry</span>
4896
- <span class="nav-badge">{{ engineStats?.totalEngines || 0 }}</span>
4897
- </div>
4898
- <div
4899
- class="nav-item"
4900
- [class.active]="activeSection === 'redundant'"
4901
- (click)="setActiveSection('redundant')"
4902
- >
4903
- <i class="fa-solid fa-copy"></i>
4904
- <span>Redundant Loading</span>
4905
- @if (redundantLoads.length > 0) {
4906
- <span class="nav-badge nav-badge--warning">{{ redundantLoads.length }}</span>
4907
- } @else {
4908
- <span class="nav-badge nav-badge--success">0</span>
4909
- }
4910
- </div>
4911
- <div
4912
- class="nav-item"
4913
- [class.active]="activeSection === 'performance'"
4914
- (click)="setActiveSection('performance')"
4915
- >
4916
- <i class="fa-solid fa-chart-line"></i>
4917
- <span>Performance</span>
4918
- <span class="nav-badge">{{ telemetrySummary?.totalEvents || 0 }}</span>
4919
- </div>
4920
- <div
4921
- class="nav-item"
4922
- [class.active]="activeSection === 'cache'"
4923
- (click)="setActiveSection('cache')"
4924
- >
4925
- <i class="fa-solid fa-database"></i>
4926
- <span>Local Cache</span>
4927
- <span class="nav-badge">{{ cacheStats?.totalEntries || 0 }}</span>
4928
- </div>
4929
- </div>
4930
- </div>
4931
-
4932
- <!-- Content Area -->
4933
- <div class="content-area">
4663
+ <div actions>
4664
+ <label class="auto-refresh-toggle">
4665
+ <input type="checkbox" [(ngModel)]="autoRefresh" (change)="toggleAutoRefresh()">
4666
+ Auto-refresh
4667
+ </label>
4668
+ <mj-refresh-button [Loading]="isLoading" Label="Refresh Now" [ShowLabel]="true" (Clicked)="refreshData()"></mj-refresh-button>
4669
+ </div>
4670
+ </mj-page-header-interior>
4671
+
4672
+ <mj-page-body-interior [Padding]="false">
4673
+ <div class="system-diagnostics">
4674
+
4675
+ <!-- KPI overview moved into chrome [meta] slot as <mj-stat-badge>s. -->
4676
+
4677
+ <!-- Section Content (L2 nav is rendered as horizontal tabs in the interior chrome above) -->
4678
+ <div class="content-area">
4934
4679
  <!-- Engine Registry Section -->
4935
4680
  @if (activeSection === 'engines') {
4936
4681
  <div class="section-panel">
@@ -5791,8 +5536,7 @@ export { SystemDiagnosticsComponent };
5791
5536
  </div>
5792
5537
  }
5793
5538
  </div>
5794
- </div>
5795
-
5539
+
5796
5540
  <!-- Last Updated -->
5797
5541
  <div class="footer">
5798
5542
  <span class="last-updated">
@@ -6097,10 +5841,11 @@ export { SystemDiagnosticsComponent };
6097
5841
  </div>
6098
5842
  </div>
6099
5843
  }
6100
- `, styles: [".system-diagnostics {\n padding: 0;\n background: var(--mj-bg-surface-sunken);\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n/* Header */\n.diagnostics-header {\n background: var(--mj-bg-page);\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n flex-shrink: 0;\n}\n\n.header-title {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.header-title i {\n font-size: 24px;\n color: var(--mj-status-success);\n}\n\n.header-title h2 {\n margin: 0;\n font-size: 22px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.header-controls {\n display: flex;\n align-items: center;\n gap: 20px;\n}\n\n.auto-refresh-control {\n display: flex;\n align-items: center;\n gap: 12px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.auto-refresh-control label {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n}\n\n.auto-refresh-control input[type=\"checkbox\"] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.refresh-indicator {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--mj-status-success);\n font-size: 12px;\n}\n\n.refresh-btn {\n background: var(--mj-status-success);\n color: white;\n border: none;\n padding: 10px 20px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 8px;\n transition: all 0.2s ease;\n}\n\n.refresh-btn:hover:not(:disabled) {\n background: var(--mj-color-success-800);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-status-success) 30%, transparent);\n}\n\n.refresh-btn:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.spinning {\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n/* Overview Cards Container (Collapsible) */\n.overview-cards-container {\n position: relative;\n background: var(--mj-bg-page);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n transition: all 0.3s ease;\n}\n\n.overview-cards-container.collapsed {\n padding: 0;\n}\n\n.kpi-toggle-btn {\n position: absolute;\n right: 24px;\n top: 50%;\n transform: translateY(-50%);\n width: 28px;\n height: 28px;\n border-radius: var(--mj-radius-full);\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n transition: all 0.2s ease;\n z-index: 10;\n}\n\n.kpi-toggle-btn:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.overview-cards-container.collapsed .kpi-toggle-btn {\n top: 50%;\n}\n\n/* Overview Cards */\n.overview-cards {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n padding: 20px 24px;\n padding-right: 60px;\n background: var(--mj-bg-page);\n flex-shrink: 0;\n}\n\n/* Mini KPI Bar (Collapsed State) */\n.overview-cards-mini {\n display: flex;\n align-items: center;\n gap: 24px;\n padding: 10px 60px 10px 24px;\n background: var(--mj-bg-page);\n}\n\n.mini-kpi {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--mj-text-secondary);\n}\n\n.mini-kpi i {\n font-size: 14px;\n color: var(--mj-color-indigo-500);\n}\n\n.mini-kpi.warning i {\n color: var(--mj-color-warning-500);\n}\n\n.mini-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.mini-label {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.mini-divider {\n width: 1px;\n height: 20px;\n background: var(--mj-border-default);\n}\n\n.overview-card {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-radius: var(--mj-radius-lg);\n border: 1px solid var(--mj-border-default);\n box-shadow: var(--mj-shadow-md);\n}\n\n.card-icon {\n width: 48px;\n height: 48px;\n border-radius: var(--mj-radius-lg);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.25rem;\n flex-shrink: 0;\n}\n\n.card-icon--engines {\n background: var(--mj-color-accent-300);\n color: var(--mj-brand-primary);\n}\n\n.card-icon--memory {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.card-icon--warning {\n background: var(--mj-color-error-100);\n color: var(--mj-status-error);\n}\n\n.card-icon--success {\n background: var(--mj-color-success-100);\n color: var(--mj-status-success);\n}\n\n.card-content {\n flex: 1;\n min-width: 0;\n}\n\n.card-value {\n font-size: 1.75rem;\n font-weight: 700;\n color: var(--mj-text-primary);\n line-height: 1;\n letter-spacing: -0.02em;\n}\n\n.card-label {\n font-size: 0.75rem;\n font-weight: 500;\n color: var(--mj-text-secondary);\n margin-top: 0.25rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n}\n\n.card-subtitle {\n font-size: 0.6875rem;\n color: var(--mj-text-muted);\n margin-top: 0.125rem;\n}\n\n/* Main Content */\n.main-content {\n display: flex;\n flex: 1;\n min-height: 0;\n}\n\n/* Left Navigation */\n.left-nav {\n width: 240px;\n background: var(--mj-bg-page);\n border-right: 1px solid var(--mj-border-default);\n padding: 16px 0;\n flex-shrink: 0;\n}\n\n.nav-section {\n padding: 0 12px;\n}\n\n.nav-section-title {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n padding: 8px 12px;\n margin-bottom: 4px;\n}\n\n.nav-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n color: var(--mj-text-secondary);\n font-size: 14px;\n transition: all 0.2s ease;\n margin-bottom: 4px;\n}\n\n.nav-item:hover {\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n}\n\n.nav-item.active {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.nav-item i {\n width: 18px;\n text-align: center;\n font-size: 15px;\n}\n\n.nav-item span:first-of-type {\n flex: 1;\n}\n\n.nav-badge {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 11px;\n font-weight: 600;\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n min-width: 24px;\n text-align: center;\n}\n\n.nav-item.active .nav-badge {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.nav-badge--warning {\n background: var(--mj-color-warning-500) !important;\n color: white !important;\n}\n\n.nav-badge--success {\n background: var(--mj-status-success) !important;\n color: white !important;\n}\n\n/* Content Area */\n.content-area {\n flex: 1;\n padding: 24px;\n overflow: hidden;\n min-width: 0;\n display: flex;\n flex-direction: column;\n}\n\n.section-panel {\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-lg);\n box-shadow: var(--mj-shadow-md);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n\n.section-panel-content {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n padding: 20px 24px;\n}\n\n.panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n}\n\n.panel-header h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.panel-header h3 i {\n color: var(--mj-status-success);\n}\n\n.panel-actions {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.action-divider {\n width: 1px;\n height: 24px;\n background: var(--mj-border-default);\n}\n\n.source-toggle {\n display: flex;\n background: var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n}\n\n.source-btn {\n background: transparent;\n border: none;\n padding: 6px 12px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.15s ease;\n}\n\n.source-btn:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.source-btn.active {\n background: var(--mj-status-success);\n color: white;\n}\n\n.source-btn i {\n font-size: 11px;\n}\n\n.loading-indicator {\n display: flex;\n align-items: center;\n color: var(--mj-status-success);\n}\n\n.error-banner {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n background: var(--mj-color-error-100);\n border: 1px solid var(--mj-color-error-100);\n border-radius: var(--mj-radius-md);\n color: var(--mj-status-error);\n font-size: 13px;\n margin-bottom: 16px;\n}\n\n.error-banner i {\n color: var(--mj-status-error);\n}\n\n.error-banner .dismiss-btn {\n margin-left: auto;\n background: transparent;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px;\n}\n\n.error-banner .dismiss-btn:hover {\n color: var(--mj-status-error);\n}\n\n.action-btn {\n background: var(--mj-bg-surface);\n border: none;\n padding: 8px 16px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s ease;\n}\n\n.action-btn:hover:not(:disabled) {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.action-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Status indicator for read-only server telemetry status */\n.status-indicator {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n}\n\n.status-indicator.enabled {\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n color: var(--mj-status-success);\n}\n\n.status-indicator.disabled {\n background: color-mix(in srgb, var(--mj-text-muted) 10%, transparent);\n color: var(--mj-text-muted);\n}\n\n.status-indicator .config-note {\n font-size: 11px;\n opacity: 0.7;\n margin-left: 4px;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i {\n font-size: 48px;\n margin-bottom: 16px;\n color: var(--mj-border-default);\n}\n\n.empty-state.success-state i {\n color: var(--mj-status-success);\n}\n\n.empty-state p {\n margin: 0;\n font-size: 16px;\n color: var(--mj-text-secondary);\n}\n\n.empty-hint {\n font-size: 13px;\n margin-top: 8px;\n}\n\n/* Engine Grid */\n.engine-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 16px;\n}\n\n.engine-card {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-lg);\n padding: 16px 20px;\n border: 2px solid transparent;\n transition: all 0.2s ease;\n}\n\n.engine-card.loaded {\n border-color: var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.engine-card:hover {\n transform: translateY(-2px);\n box-shadow: var(--mj-shadow-lg);\n}\n\n.engine-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.engine-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 180px;\n flex: 1;\n min-width: 0;\n}\n\n.engine-status {\n flex-shrink: 0;\n font-size: 11px;\n font-weight: 600;\n padding: 4px 10px;\n border-radius: var(--mj-radius-lg);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-loaded {\n background: var(--mj-color-success-100);\n color: var(--mj-color-success-800);\n}\n\n.status-pending {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-800);\n}\n\n.engine-stats {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.stat-item {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.stat-item i {\n width: 16px;\n color: var(--mj-text-muted);\n}\n\n.engine-actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid rgba(0, 0, 0, 0.08);\n}\n\n.engine-action-btn {\n width: 32px;\n height: 32px;\n border: none;\n border-radius: var(--mj-radius-md);\n background: rgba(0, 0, 0, 0.05);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.engine-action-btn:hover:not(:disabled) {\n background: var(--mj-status-success);\n color: white;\n}\n\n.engine-action-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.stat-label {\n color: var(--mj-text-muted);\n}\n\n.stat-value {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n/* Info Banner */\n.info-banner {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-accent-300);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-brand-primary);\n margin-bottom: 20px;\n}\n\n.info-banner i {\n margin-top: 2px;\n flex-shrink: 0;\n}\n\n/* Recommendation Banner */\n.recommendation-banner {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-color-warning-800);\n margin-top: 20px;\n}\n\n.recommendation-banner i {\n margin-top: 2px;\n flex-shrink: 0;\n color: var(--mj-color-warning-500);\n}\n\n/* Redundant Loads Table */\n.redundant-loads-table-wrapper {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.redundant-loads-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.redundant-loads-table th {\n background: var(--mj-bg-surface-sunken);\n padding: 12px 16px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.redundant-loads-table th.text-right {\n text-align: right;\n}\n\n.redundant-loads-table td {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.redundant-loads-table td.text-right {\n text-align: right;\n}\n\n.redundant-loads-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.redundant-loads-table tbody tr:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.redundant-loads-table .entity-name {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.engine-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.engine-chip {\n padding: 4px 10px;\n background: var(--mj-color-indigo-500);\n color: white;\n font-size: 11px;\n border-radius: var(--mj-radius-lg);\n font-weight: 500;\n}\n\n.count-badge {\n display: inline-block;\n padding: 4px 12px;\n background: var(--mj-color-warning-500);\n color: white;\n font-size: 12px;\n font-weight: 600;\n border-radius: var(--mj-radius-lg);\n}\n\n/* Footer */\n.footer {\n padding: 12px 24px;\n background: var(--mj-bg-page);\n border-top: 1px solid var(--mj-border-default);\n text-align: right;\n flex-shrink: 0;\n}\n\n.last-updated {\n font-size: 12px;\n color: var(--mj-text-muted);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n/* Performance Section Styles */\n.warning-banner {\n background: var(--mj-color-warning-50) !important;\n color: var(--mj-color-warning-800) !important;\n}\n\n.warning-banner i {\n color: var(--mj-color-warning-500);\n}\n\n.telemetry-summary {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.summary-card {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n text-align: center;\n}\n\n.summary-value {\n font-size: 28px;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.summary-label {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n}\n\n.category-breakdown {\n margin-bottom: 24px;\n}\n\n.category-breakdown h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.category-grid {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.category-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-full);\n font-size: 13px;\n}\n\n.category-name {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.category-events {\n background: var(--mj-color-indigo-500);\n color: white;\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 600;\n}\n\n.category-avg {\n color: var(--mj-text-muted);\n font-size: 11px;\n}\n\n.insights-section {\n margin-bottom: 24px;\n}\n\n.insights-section h4 {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.insights-section h4 i {\n color: var(--mj-color-warning-500);\n}\n\n.insights-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.insight-card {\n padding: 16px;\n border-radius: var(--mj-radius-md);\n border-left: 4px solid var(--mj-border-default);\n}\n\n.insight-card.severity-info {\n background: var(--mj-color-accent-300);\n border-left-color: var(--mj-brand-primary);\n}\n\n.insight-card.severity-warning {\n background: var(--mj-color-warning-50);\n border-left-color: var(--mj-color-warning-500);\n}\n\n.insight-card.severity-optimization {\n background: var(--mj-color-success-100);\n border-left-color: var(--mj-status-success);\n}\n\n.insight-header {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 8px;\n}\n\n.insight-header i {\n font-size: 16px;\n}\n\n.severity-info .insight-header i { color: var(--mj-brand-primary); }\n.severity-warning .insight-header i { color: var(--mj-color-warning-500); }\n.severity-optimization .insight-header i { color: var(--mj-status-success); }\n\n.insight-title {\n font-weight: 600;\n color: var(--mj-text-primary);\n flex: 1;\n}\n\n.insight-category {\n font-size: 11px;\n padding: 2px 8px;\n background: rgba(0, 0, 0, 0.1);\n border-radius: var(--mj-radius-lg);\n color: var(--mj-text-secondary);\n}\n\n.insight-message {\n font-size: 13px;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n}\n\n.insight-suggestion {\n font-size: 12px;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.insight-suggestion i {\n color: var(--mj-status-success);\n font-size: 10px;\n}\n\n.patterns-section h4 {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.patterns-section h4 i {\n color: var(--mj-color-indigo-500);\n}\n\n.patterns-table-wrapper {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.patterns-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.patterns-table th {\n background: var(--mj-bg-surface-sunken);\n padding: 12px 16px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.patterns-table td {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.patterns-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.patterns-table tbody tr:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.duplicate-row {\n background: var(--mj-color-warning-50);\n}\n\n.duplicate-row:hover {\n background: var(--mj-color-warning-50) !important;\n}\n\n.category-chip {\n display: inline-block;\n padding: 3px 10px;\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.cat-runview { background: var(--mj-color-info-100); color: var(--mj-color-info-700); }\n.cat-runquery { background: var(--mj-color-violet-100); color: var(--mj-color-violet-700); }\n.cat-engine { background: var(--mj-color-success-100); color: var(--mj-color-success-700); }\n.cat-ai { background: var(--mj-color-warning-50); color: var(--mj-color-warning-700); }\n.cat-cache { background: var(--mj-color-error-100); color: var(--mj-status-error); }\n.cat-network { background: var(--mj-color-tertiary-100); color: var(--mj-color-tertiary-700); }\n.cat-custom { background: var(--mj-color-neutral-100); color: var(--mj-color-neutral-600); }\n\n.operation-cell {\n font-family: monospace;\n font-size: 12px;\n}\n\n.entity-cell {\n font-weight: 500;\n}\n\n.count-warning {\n display: inline-block;\n padding: 2px 8px;\n background: var(--mj-color-warning-500);\n color: white;\n border-radius: var(--mj-radius-lg);\n font-weight: 600;\n}\n\n.action-btn.active {\n background: var(--mj-status-success);\n color: white;\n}\n\n/* Slow Queries Section */\n.slow-queries-section {\n margin-bottom: 24px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n border-left: 4px solid var(--mj-color-warning-500);\n}\n\n.slow-queries-section h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-color-warning-800);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.slow-queries-section h4 i {\n color: var(--mj-color-warning-500);\n}\n\n.slow-queries-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.slow-query-item {\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-md);\n padding: 10px 12px;\n border: 1px solid var(--mj-color-warning-50);\n transition: all 0.15s ease;\n}\n\n.slow-query-item.clickable {\n cursor: pointer;\n}\n\n.slow-query-item.clickable:hover {\n background: var(--mj-color-warning-50);\n border-color: var(--mj-color-warning-500);\n transform: translateX(2px);\n}\n\n.slow-query-main {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.slow-query-entity {\n flex: 1;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.slow-query-time {\n font-weight: 700;\n color: var(--mj-color-warning-800);\n font-size: 14px;\n}\n\n.slow-query-filter {\n font-size: 11px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n font-family: monospace;\n}\n\n.slow-query-timestamp {\n font-size: 11px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n}\n\n/* View Toggle */\n.view-toggle {\n display: flex;\n gap: 8px;\n margin-bottom: 16px;\n}\n\n.toggle-btn {\n padding: 8px 16px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s ease;\n}\n\n.toggle-btn:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.toggle-btn.active {\n background: var(--mj-color-indigo-500);\n color: white;\n border-color: var(--mj-color-indigo-500);\n}\n\n/* Expandable Insight Cards */\n.insight-card.expandable {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.insight-card.expandable:hover {\n box-shadow: var(--mj-shadow-md);\n}\n\n.insight-card .expand-icon {\n color: var(--mj-text-muted);\n font-size: 12px;\n margin-left: auto;\n}\n\n.insight-card.expanded {\n border-width: 2px;\n}\n\n.insight-details {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.detail-section {\n margin-bottom: 12px;\n}\n\n.detail-label {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n margin-bottom: 4px;\n}\n\n.detail-value {\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.related-events {\n display: flex;\n flex-direction: column;\n gap: 6px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.related-event {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 6px 10px;\n background: rgba(0, 0, 0, 0.03);\n border-radius: 4px;\n font-size: 12px;\n}\n\n.event-time {\n font-family: monospace;\n color: var(--mj-text-secondary);\n}\n\n.event-duration {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.event-filter {\n color: var(--mj-text-muted);\n font-family: monospace;\n font-size: 11px;\n}\n\n/* Timeline Section */\n.timeline-section h4 {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-section h4 i {\n color: var(--mj-color-indigo-500);\n}\n\n.timeline-container {\n position: relative;\n padding-left: 24px;\n max-height: 400px;\n overflow-y: auto;\n}\n\n.timeline-item {\n display: flex;\n gap: 16px;\n margin-bottom: 12px;\n position: relative;\n}\n\n.timeline-marker {\n display: flex;\n flex-direction: column;\n align-items: center;\n position: absolute;\n left: -24px;\n top: 0;\n bottom: 0;\n}\n\n.marker-dot {\n width: 10px;\n height: 10px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-color-indigo-500);\n z-index: 1;\n}\n\n.marker-line {\n width: 2px;\n flex: 1;\n background: var(--mj-border-default);\n margin-top: 4px;\n}\n\n.timeline-item:last-child .marker-line {\n display: none;\n}\n\n.tl-runview .marker-dot { background: var(--mj-color-info-700); }\n.tl-runquery .marker-dot { background: var(--mj-color-violet-700); }\n.tl-engine .marker-dot { background: var(--mj-color-success-700); }\n.tl-ai .marker-dot { background: var(--mj-color-warning-700); }\n.tl-cache .marker-dot { background: var(--mj-status-error); }\n\n/* Cache hit bolt marker */\n.marker-bolt {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n color: var(--mj-color-warning-500);\n font-size: 14px;\n margin-left: -4px;\n}\n\n.marker-bolt i {\n filter: drop-shadow(0 0 3px color-mix(in srgb, var(--mj-color-warning-500) 60%, transparent));\n}\n\n/* Category-specific bolt colors */\n.tl-runview.cache-hit .marker-bolt { color: var(--mj-color-info-700); }\n.tl-runquery.cache-hit .marker-bolt { color: var(--mj-color-violet-700); }\n.tl-engine.cache-hit .marker-bolt { color: var(--mj-color-success-700); }\n.tl-ai.cache-hit .marker-bolt { color: var(--mj-color-warning-700); }\n.tl-cache.cache-hit .marker-bolt { color: var(--mj-status-error); }\n\n/* Cache hit badge */\n.cache-hit-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: linear-gradient(135deg, var(--mj-color-warning-100) 0%, var(--mj-color-warning-200) 100%);\n border: 1px solid var(--mj-color-warning-500);\n border-radius: var(--mj-radius-lg);\n font-size: 9px;\n font-weight: 700;\n color: var(--mj-color-warning-800);\n letter-spacing: 0.5px;\n}\n\n.cache-hit-badge i {\n font-size: 8px;\n color: var(--mj-color-warning-500);\n}\n\n/* Highlighted background for cache hit items */\n.timeline-item.cache-hit .timeline-content {\n background: linear-gradient(135deg, var(--mj-color-warning-50) 0%, var(--mj-color-warning-100) 100%);\n border: 1px solid var(--mj-color-warning-300);\n}\n\n.timeline-content {\n flex: 1;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 10px 14px;\n}\n\n.timeline-header {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 4px;\n}\n\n.timeline-time {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.timeline-duration {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.timeline-duration.slow {\n color: var(--mj-color-warning-800);\n background: var(--mj-color-warning-50);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.timeline-body {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-operation {\n font-family: monospace;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.timeline-entity {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.timeline-filter {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-family: monospace;\n margin-top: 4px;\n}\n\n/* Entity Pills for RunViews batch operations */\n.timeline-entities,\n.slow-query-entities {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 4px;\n}\n\n.entity-pill {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n background: var(--mj-color-info-100);\n border: 1px solid var(--mj-brand-primary);\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 500;\n color: var(--mj-color-info-700);\n}\n\n.entity-pill.small {\n padding: 1px 6px;\n font-size: 10px;\n}\n\n.entity-pill.more {\n background: var(--mj-color-neutral-100);\n border-color: var(--mj-color-neutral-200);\n color: var(--mj-color-neutral-600);\n font-style: italic;\n}\n\n/* Parameter Pills */\n.timeline-pills,\n.slow-query-pills {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-top: 6px;\n}\n\n.param-pill {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-family: monospace;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.param-pill.small {\n padding: 2px 6px;\n font-size: 9px;\n max-width: 150px;\n}\n\n.param-pill .pill-label {\n font-weight: 600;\n opacity: 0.8;\n}\n\n.param-pill .pill-value {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* Pill type colors */\n.param-pill.pill-filter {\n background: var(--mj-color-warning-50);\n border: 1px solid var(--mj-color-warning-300);\n color: var(--mj-color-warning-700);\n}\n\n.param-pill.pill-order {\n background: var(--mj-color-success-100);\n border: 1px solid var(--mj-color-success-300);\n color: var(--mj-color-success-700);\n}\n\n.param-pill.pill-result {\n background: var(--mj-color-violet-100);\n border: 1px solid var(--mj-color-violet-300);\n color: var(--mj-color-violet-700);\n}\n\n.param-pill.pill-limit {\n background: var(--mj-color-info-100);\n border: 1px solid var(--mj-brand-primary);\n color: var(--mj-color-info-700);\n}\n\n.param-pill.pill-batch {\n background: var(--mj-color-error-100);\n border: 1px solid var(--mj-color-error-300);\n color: var(--mj-status-error);\n}\n\n.param-pill.pill-info {\n background: var(--mj-color-neutral-100);\n border: 1px solid var(--mj-color-neutral-200);\n color: var(--mj-color-neutral-600);\n}\n\n/* Slow query cache hit styling */\n.slow-query-item.cache-hit {\n background: linear-gradient(135deg, var(--mj-color-warning-50) 0%, var(--mj-color-warning-100) 100%);\n border-color: var(--mj-color-warning-300);\n}\n\n.cache-hit-badge.small {\n padding: 1px 6px;\n font-size: 8px;\n}\n\n/* Filter Bar */\n.filter-bar {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-bottom: 16px;\n padding: 12px 16px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n}\n\n.search-box {\n flex: 1;\n min-width: 200px;\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.search-box i {\n position: absolute;\n left: 12px;\n color: var(--mj-text-muted);\n}\n\n.search-box input {\n width: 100%;\n padding: 8px 36px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n background: var(--mj-bg-page);\n}\n\n.search-box input:focus {\n outline: none;\n border-color: var(--mj-color-indigo-500);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--mj-color-indigo-500) 20%, transparent);\n}\n\n.clear-search {\n position: absolute;\n right: 8px;\n background: none;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px;\n}\n\n.clear-search:hover {\n color: var(--mj-text-secondary);\n}\n\n.filter-buttons {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.filter-btn {\n padding: 6px 14px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-full);\n font-size: 12px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.filter-btn:hover {\n background: var(--mj-bg-surface);\n}\n\n.filter-btn.active {\n background: var(--mj-color-indigo-500);\n color: white;\n border-color: var(--mj-color-indigo-500);\n}\n\n/* Sortable Table Headers */\n.sortable-header {\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n}\n\n.sortable-header:hover {\n background: var(--mj-bg-surface);\n}\n\n.sortable-header i {\n margin-left: 6px;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.sortable-header i.fa-sort-up,\n.sortable-header i.fa-sort-down {\n color: var(--mj-color-indigo-500);\n}\n\n/* Table Enhancements */\n.filter-cell {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-secondary);\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.slow-row {\n background: var(--mj-color-error-100);\n}\n\n.slow-row:hover {\n background: var(--mj-color-error-100) !important;\n}\n\n.slow-value {\n color: var(--mj-status-error);\n font-weight: 600;\n}\n\n/* Small category chips */\n.category-chip.small {\n font-size: 9px;\n padding: 2px 6px;\n}\n\n/* Small empty state */\n.empty-state.small {\n padding: 30px 20px;\n}\n\n.empty-state.small i {\n font-size: 32px;\n margin-bottom: 12px;\n}\n\n.empty-state.small p {\n font-size: 14px;\n}\n\n/* Performance Sub-Tabs */\n.perf-tabs {\n display: flex;\n gap: 4px;\n padding: 12px 24px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.perf-tab {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n border: none;\n background: transparent;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.perf-tab:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.perf-tab.active {\n background: var(--mj-bg-page);\n color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.perf-tab i {\n font-size: 14px;\n}\n\n.tab-badge {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 10px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: var(--mj-radius-md);\n min-width: 18px;\n text-align: center;\n}\n\n.perf-tab.active .tab-badge {\n background: var(--mj-color-success-100);\n color: var(--mj-color-success-800);\n}\n\n.tab-badge.warning {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.tab-badge.insight {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.perf-panel .section-panel-content {\n padding: 20px 24px;\n}\n\n/* Success Banner */\n.success-banner {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-success-100);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-color-success-800);\n margin-top: 16px;\n}\n\n.success-banner i {\n font-size: 18px;\n color: var(--mj-status-success);\n}\n\n/* Compact Filter Bar */\n.filter-bar.compact {\n padding: 10px 14px;\n margin-bottom: 12px;\n}\n\n/* Clickable category items */\n.category-item {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.category-item:hover {\n background: var(--mj-color-accent-300);\n transform: translateY(-1px);\n}\n\n/* Insight Key Info (always visible) */\n.insight-key-info {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 10px 12px;\n background: rgba(0, 0, 0, 0.03);\n border-radius: var(--mj-radius-md);\n margin: 8px 0;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.key-info-item {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n font-size: 12px;\n}\n\n.key-label {\n color: var(--mj-text-secondary);\n font-weight: 500;\n min-width: 50px;\n flex-shrink: 0;\n}\n\n.key-value {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.key-value.entity-name {\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.key-value.filter-code {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n background: rgba(0, 0, 0, 0.06);\n padding: 2px 6px;\n border-radius: 3px;\n color: var(--mj-text-primary);\n}\n\n/* Params Display */\n.params-display {\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 10px;\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.param-row {\n display: flex;\n gap: 8px;\n padding: 4px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.param-row:last-child {\n border-bottom: none;\n}\n\n.param-key {\n color: var(--mj-brand-primary);\n font-weight: 500;\n min-width: 100px;\n flex-shrink: 0;\n}\n\n.param-value {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.event-entity {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 11px;\n font-weight: 500;\n}\n\n/* PerfMon Chart Styles\n * ====================\n * Chrome (background, borders, text, controls) is mapped to MJ semantic tokens\n * so the panel adapts to the active theme and is white-labelable. Series colors\n * (cyan / magenta / neon-green / orange) are categorical chart data \u2014 they must\n * stay distinct across themes and are exempt by the same rule that exempts\n * other chart-data palettes.\n *\n * The accent (--perfmon-accent) is intentionally kept as the same neon green as\n * the engine series so the \"live signal\" indicators (header icon, footer count,\n * chart strokes) read as part of the chart palette rather than the app's brand.\n *\n * Overlays are derived via color-mix() from --mj-text-primary so they invert\n * automatically: dark tints over light surfaces in light mode, light tints over\n * dark surfaces in dark mode.\n */\n.perfmon-section {\n /* Chrome \u2014 adapts to theme */\n --perfmon-bg: var(--mj-bg-surface-card);\n --perfmon-bg-deep: var(--mj-bg-surface-sunken);\n --perfmon-border: var(--mj-border-default);\n --perfmon-border-medium: var(--mj-border-strong);\n --perfmon-border-light: var(--mj-border-strong);\n --perfmon-text-faint: var(--mj-text-disabled);\n --perfmon-text-muted: var(--mj-text-muted);\n --perfmon-text-secondary: var(--mj-text-secondary);\n --perfmon-control-bg: var(--mj-bg-surface-sunken);\n --perfmon-control-bg-hover: var(--mj-bg-surface-hover);\n --perfmon-mode-bg: var(--mj-bg-surface-sunken);\n --perfmon-overlay-light: color-mix(in srgb, var(--mj-text-primary) 5%, transparent);\n --perfmon-overlay-medium: color-mix(in srgb, var(--mj-text-primary) 15%, transparent);\n --perfmon-overlay-strong: color-mix(in srgb, var(--mj-text-primary) 25%, transparent);\n --perfmon-tooltip-bg: var(--mj-bg-overlay);\n\n /* Categorical series colors and live-signal accent \u2014 exempt */\n --perfmon-accent: #00ff88;\n --perfmon-accent-dim: #00cc6a;\n --perfmon-series-runview: #00bcd4;\n --perfmon-series-runquery: #e040fb;\n --perfmon-series-engine: #00ff88;\n --perfmon-series-ai: #ff9800;\n\n background: var(--perfmon-bg);\n border-radius: 8px;\n padding: 16px;\n margin-bottom: 24px;\n}\n\n.perfmon-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.perfmon-header h4 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--perfmon-accent);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.perfmon-header h4 i {\n color: var(--perfmon-accent);\n}\n\n.perfmon-legend {\n display: flex;\n gap: 16px;\n font-size: 11px;\n}\n\n.legend-item {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--perfmon-text-muted);\n}\n\n.legend-dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n}\n\n.legend-item.runview .legend-dot { background: var(--perfmon-series-runview); }\n.legend-item.runquery .legend-dot { background: var(--perfmon-series-runquery); }\n.legend-item.engine .legend-dot { background: var(--perfmon-series-engine); }\n.legend-item.ai .legend-dot { background: var(--perfmon-series-ai); }\n\n.perfmon-chart-container {\n display: flex;\n background: var(--perfmon-bg-deep);\n border: 1px solid var(--perfmon-border);\n border-radius: 4px;\n position: relative;\n}\n\n.perfmon-y-axis {\n width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid var(--perfmon-border);\n}\n\n.perfmon-y-axis .axis-label {\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n font-size: 10px;\n color: var(--perfmon-text-faint);\n text-transform: uppercase;\n letter-spacing: 1px;\n}\n\n.perfmon-chart {\n flex: 1;\n height: 300px;\n position: relative;\n overflow: hidden;\n}\n\n.perfmon-chart svg {\n width: 100%;\n height: 100%;\n}\n\n.perfmon-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--perfmon-border);\n}\n\n.footer-note {\n font-size: 11px;\n color: var(--perfmon-text-faint);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.footer-note i {\n color: var(--perfmon-accent);\n}\n\n.footer-stats {\n font-size: 11px;\n color: var(--perfmon-accent);\n font-family: monospace;\n}\n\n/* D3 Chart Elements */\n.perfmon-chart :deep(.grid-line) {\n stroke: var(--perfmon-border);\n stroke-dasharray: 2,2;\n}\n\n.perfmon-chart :deep(.axis-line) {\n stroke: var(--perfmon-border-light);\n}\n\n.perfmon-chart :deep(.axis-text) {\n fill: var(--perfmon-text-muted);\n font-size: 10px;\n font-family: monospace;\n}\n\n.perfmon-chart :deep(.event-point) {\n cursor: pointer;\n transition: r 0.15s ease;\n}\n\n.perfmon-chart :deep(.event-point:hover) {\n r: 6;\n}\n\n.perfmon-chart :deep(.tooltip) {\n pointer-events: none;\n}\n\n.perfmon-chart :deep(.tooltip-bg) {\n fill: var(--perfmon-tooltip-bg);\n rx: 4;\n}\n\n.perfmon-chart :deep(.tooltip-text) {\n fill: var(--mj-bg-surface);\n font-size: 11px;\n font-family: monospace;\n}\n\n.perfmon-chart :deep(.area-fill) {\n opacity: 0.15;\n}\n\n.perfmon-chart :deep(.line-path) {\n fill: none;\n stroke-width: 1.5;\n opacity: 0.8;\n}\n\n/* PerfMon Chart Controls */\n.perfmon-controls {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n padding: 8px 12px;\n background: var(--perfmon-overlay-light);\n border-radius: 6px;\n border: 1px solid var(--perfmon-border);\n}\n\n.chart-control-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n background: var(--perfmon-control-bg);\n color: var(--perfmon-text-muted);\n border: 1px solid var(--perfmon-border-medium);\n border-radius: 4px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.chart-control-btn:hover {\n background: var(--perfmon-control-bg-hover);\n color: var(--perfmon-accent);\n border-color: var(--perfmon-accent);\n}\n\n.chart-control-btn:active {\n transform: scale(0.95);\n}\n\n.chart-control-btn i {\n font-size: 14px;\n}\n\n/* Mode Toggle Buttons */\n.mode-toggle {\n display: flex;\n background: var(--perfmon-mode-bg);\n border-radius: 4px;\n overflow: hidden;\n border: 1px solid var(--perfmon-border-medium);\n}\n\n.mode-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 28px;\n padding: 0;\n background: transparent;\n color: var(--perfmon-text-faint);\n border: none;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.mode-btn:first-child {\n border-right: 1px solid var(--perfmon-border);\n}\n\n.mode-btn:hover {\n color: var(--perfmon-text-secondary);\n background: var(--perfmon-overlay-light);\n}\n\n.mode-btn.active {\n background: var(--perfmon-accent);\n color: var(--perfmon-mode-bg);\n}\n\n.mode-btn.active:hover {\n background: var(--perfmon-accent-dim);\n}\n\n.mode-btn i {\n font-size: 12px;\n}\n\n.control-divider {\n width: 1px;\n height: 24px;\n background: var(--perfmon-border-medium);\n margin: 0 4px;\n}\n\n.compress-toggle {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 12px;\n color: var(--perfmon-text-muted);\n user-select: none;\n}\n\n.compress-toggle:hover {\n color: var(--perfmon-accent);\n}\n\n.compress-toggle input[type=\"checkbox\"] {\n width: 14px;\n height: 14px;\n accent-color: var(--perfmon-accent);\n cursor: pointer;\n}\n\n.compress-toggle span {\n white-space: nowrap;\n}\n\n.zoom-level {\n font-size: 11px;\n color: var(--perfmon-text-faint);\n font-family: monospace;\n margin-left: 8px;\n}\n\n/* Gap indicators in chart */\n.perfmon-chart :deep(.gap-indicator) {\n cursor: pointer;\n transition: opacity 0.15s ease;\n}\n\n.perfmon-chart :deep(.gap-indicator:hover) {\n opacity: 0.8;\n}\n\n.perfmon-chart :deep(.gap-text) {\n fill: var(--perfmon-text-faint);\n font-size: 10px;\n font-family: monospace;\n pointer-events: none;\n}\n\n.perfmon-chart :deep(.gap-expand-btn) {\n cursor: pointer;\n opacity: 0.6;\n transition: opacity 0.15s ease;\n}\n\n.perfmon-chart :deep(.gap-expand-btn:hover) {\n opacity: 1;\n}\n\n/* Selection brush overlay */\n.perfmon-chart :deep(.selection-overlay) {\n pointer-events: all;\n}\n\n.perfmon-chart :deep(.selection-rect) {\n pointer-events: none;\n}\n\n/* Zoom info display */\n.zoom-info {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 11px;\n color: var(--perfmon-text-muted);\n font-family: monospace;\n}\n\n.zoom-info .zoom-level {\n color: var(--perfmon-accent);\n}\n\n.zoom-info .time-range {\n color: var(--perfmon-text-faint);\n}\n\n/* Responsive */\n@media (max-width: 1024px) {\n .main-content {\n flex-direction: column;\n }\n\n .left-nav {\n width: 100%;\n border-right: none;\n border-bottom: 1px solid var(--mj-border-default);\n padding: 12px;\n }\n\n .nav-section {\n display: flex;\n gap: 8px;\n overflow-x: auto;\n padding: 0;\n }\n\n .nav-section-title {\n display: none;\n }\n\n .nav-item {\n white-space: nowrap;\n padding: 10px 16px;\n }\n}\n\n@media (max-width: 768px) {\n .diagnostics-header {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .header-controls {\n width: 100%;\n flex-wrap: wrap;\n }\n\n .overview-cards {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .engine-grid {\n grid-template-columns: 1fr;\n }\n\n .perfmon-legend {\n flex-wrap: wrap;\n gap: 8px;\n }\n}\n\n/* Export Button */\n.export-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 14px;\n background: var(--mj-status-success);\n color: white;\n border: none;\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.export-btn:hover:not(:disabled) {\n background: var(--mj-color-success-800);\n transform: translateY(-1px);\n}\n\n.export-btn:disabled {\n background: var(--mj-border-default);\n cursor: not-allowed;\n}\n\n.footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n/* Event Detail Slide-in Panel */\n.event-detail-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: fadeIn 0.2s ease;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.event-detail-panel {\n position: fixed;\n top: 0;\n right: 0;\n width: 450px;\n max-width: 90vw;\n height: 100vh;\n background: var(--mj-bg-page);\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: slideIn 0.25s ease;\n}\n\n@keyframes slideIn {\n from { transform: translateX(100%); }\n to { transform: translateX(0); }\n}\n\n.event-detail-panel .panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.event-detail-panel .panel-title {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.event-detail-panel .panel-title h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.event-detail-panel .close-btn {\n background: none;\n border: none;\n font-size: 18px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.event-detail-panel .close-btn:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.event-detail-panel .panel-body {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n/* Detail Metrics */\n.detail-metrics {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px;\n margin-bottom: 24px;\n}\n\n.detail-metrics .metric {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n text-align: center;\n}\n\n.detail-metrics .metric-value {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-family: monospace;\n}\n\n.detail-metrics .metric-value.slow {\n color: var(--mj-status-error);\n}\n\n.detail-metrics .metric-label {\n font-size: 11px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* Detail Sections */\n.event-detail-panel .detail-section {\n margin-bottom: 24px;\n}\n\n.event-detail-panel .detail-section h4 {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 12px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.event-detail-panel .detail-section h4 i {\n color: var(--mj-status-success);\n font-size: 14px;\n}\n\n.detail-content {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n}\n\n.detail-row {\n display: flex;\n gap: 12px;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.detail-row:last-child {\n border-bottom: none;\n}\n\n.detail-key {\n font-size: 12px;\n color: var(--mj-text-secondary);\n font-weight: 500;\n min-width: 80px;\n flex-shrink: 0;\n}\n\n.detail-val {\n font-size: 12px;\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.detail-val.entity-highlight {\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.detail-val.filter-val {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n background: rgba(0, 0, 0, 0.05);\n padding: 4px 8px;\n border-radius: 4px;\n}\n\n/* Params Grid */\n.params-grid {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.param-item {\n display: flex;\n gap: 12px;\n padding: 6px 0;\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 12px;\n}\n\n.param-item:last-child {\n border-bottom: none;\n}\n\n.param-name {\n color: var(--mj-brand-primary);\n font-weight: 500;\n min-width: 100px;\n flex-shrink: 0;\n font-family: monospace;\n}\n\n.param-val {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n/* Pattern Summary */\n.pattern-summary {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n}\n\n.pattern-stat {\n text-align: center;\n}\n\n.pattern-stat .stat-val {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-family: monospace;\n}\n\n.pattern-stat .stat-label {\n font-size: 10px;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-top: 4px;\n}\n\n.pattern-warning {\n margin-top: 12px;\n padding: 12px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n color: var(--mj-color-warning-800);\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.pattern-warning i {\n color: var(--mj-color-warning-500);\n margin-top: 2px;\n}\n\n/* Detail Actions */\n.detail-actions {\n display: flex;\n gap: 12px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.action-button {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 10px 16px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-primary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.action-button:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-default);\n}\n\n.action-button i {\n color: var(--mj-text-secondary);\n}\n\n/* Clickable timeline items */\n.timeline-item.clickable {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item.clickable:hover {\n background: color-mix(in srgb, var(--mj-status-success) 5%, transparent);\n}\n\n.timeline-item.clickable:hover .marker-dot {\n transform: scale(1.3);\n}\n\n/* ========================================\n ENGINE DETAIL PANEL STYLES\n ======================================== */\n\n.engine-detail-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: fadeIn 0.2s ease;\n}\n\n.engine-detail-panel {\n position: fixed;\n top: 0;\n right: 0;\n width: 550px;\n max-width: 95vw;\n height: 100vh;\n background: var(--mj-bg-page);\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: slideIn 0.25s ease;\n}\n\n.engine-detail-panel .panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: linear-gradient(135deg, var(--mj-status-success) 0%, var(--mj-color-success-800) 100%);\n color: white;\n}\n\n.engine-detail-panel .panel-title {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.engine-detail-panel .panel-title h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: white;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.engine-detail-panel .panel-header-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.engine-detail-panel .icon-btn {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: white;\n width: 36px;\n height: 36px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.engine-detail-panel .icon-btn:hover:not(:disabled) {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.engine-detail-panel .icon-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.engine-detail-panel .close-btn {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: white;\n width: 36px;\n height: 36px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 18px;\n}\n\n.engine-detail-panel .close-btn:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.engine-detail-panel .panel-body {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n/* Engine Summary */\n.engine-summary-section {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 12px;\n margin-bottom: 24px;\n}\n\n.engine-summary-section .summary-stat {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px 16px;\n}\n\n.engine-summary-section .summary-label {\n font-size: 11px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 4px;\n}\n\n.engine-summary-section .summary-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.status-dot {\n width: 8px;\n height: 8px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-color-warning-500);\n}\n\n.status-dot.status-loaded {\n background: var(--mj-status-success);\n}\n\n/* Config Items Section */\n.config-items-section h4 {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.config-items-section h4 i {\n color: var(--mj-status-success);\n}\n\n.config-items-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.config-item {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-item.expanded {\n border-color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.config-item-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.2s ease;\n}\n\n.config-item-header:hover {\n background: rgba(0, 0, 0, 0.02);\n}\n\n.config-item-info {\n display: flex;\n align-items: center;\n gap: 10px;\n flex: 1;\n min-width: 0;\n}\n\n.config-type-chip {\n font-size: 10px;\n font-weight: 600;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n flex-shrink: 0;\n}\n\n.config-type-chip.type-entity {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n}\n\n.config-type-chip.type-dataset {\n background: var(--mj-color-violet-100);\n color: var(--mj-color-violet-700);\n}\n\n.config-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.config-item-stats {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-stat {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.expand-icon {\n color: var(--mj-text-muted);\n transition: transform 0.2s ease;\n}\n\n.config-item.expanded .expand-icon {\n color: var(--mj-status-success);\n}\n\n.config-item-details {\n padding: 0 16px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n}\n\n.config-detail-row {\n display: flex;\n gap: 12px;\n padding: 10px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.config-detail-row:last-child {\n border-bottom: none;\n}\n\n.config-detail-row .detail-label {\n font-size: 12px;\n color: var(--mj-text-muted);\n min-width: 70px;\n flex-shrink: 0;\n}\n\n.config-detail-row .detail-value {\n font-size: 12px;\n color: var(--mj-text-primary);\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n background: var(--mj-bg-surface-sunken);\n padding: 2px 6px;\n border-radius: 4px;\n word-break: break-all;\n}\n\n/* Health status indicators for config items */\n.config-health-icon {\n font-size: 12px;\n flex-shrink: 0;\n}\n.config-health-icon.health-success {\n color: var(--mj-status-success);\n}\n.config-health-icon.health-failure {\n color: var(--mj-status-error);\n}\n.config-detail-row--error {\n background: color-mix(in srgb, var(--mj-status-error) 6%, transparent);\n border-radius: 4px;\n padding: 4px 8px;\n}\n.detail-value--error {\n color: var(--mj-status-error-text) !important;\n background: none !important;\n font-family: inherit !important;\n word-break: break-word;\n}\n\n/* Sample Data Section */\n.sample-data-section {\n margin-top: 16px;\n}\n\n.sample-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.sample-title {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.sample-header-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.load-more-btn,\n.load-all-btn {\n background: none;\n border: 1px solid var(--mj-color-indigo-500);\n color: var(--mj-color-indigo-500);\n font-size: 11px;\n padding: 4px 10px;\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.2s ease;\n}\n\n.load-more-btn:hover:not(:disabled),\n.load-all-btn:hover:not(:disabled) {\n background: var(--mj-color-indigo-500);\n color: white;\n}\n\n.load-more-btn:disabled,\n.load-all-btn:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.all-loaded-badge {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n color: var(--mj-status-success);\n padding: 4px 10px;\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n border-radius: 4px;\n}\n\n.action-col {\n width: 36px;\n min-width: 36px;\n max-width: 36px;\n padding: 4px !important;\n text-align: center;\n}\n\n.open-record-btn {\n width: 24px;\n height: 24px;\n border: none;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-color-indigo-500);\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n transition: all 0.2s ease;\n}\n\n.open-record-btn:hover {\n background: var(--mj-color-indigo-500);\n color: white;\n}\n\n.sample-data-table-wrapper {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.sample-data-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 11px;\n}\n\n.sample-data-table th {\n background: var(--mj-bg-surface-sunken);\n padding: 8px 10px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.sample-data-table td {\n padding: 8px 10px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n max-width: 150px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sample-data-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.sample-data-table tbody tr:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n/* Small empty state */\n.empty-state.small {\n padding: 30px 20px;\n}\n\n.empty-state.small i {\n font-size: 32px;\n}\n\n.empty-state.small p {\n font-size: 14px;\n}\n\n/* Spinning animation for refresh icon */\n.spinning {\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n/* ========================================\n LOCAL CACHE SECTION STYLES\n ======================================== */\n\n.cache-summary {\n display: flex;\n gap: 16px;\n margin-bottom: 24px;\n flex-wrap: wrap;\n}\n\n.cache-type-breakdown {\n margin-bottom: 24px;\n}\n\n.cache-type-breakdown h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.type-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.type-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--mj-bg-page);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.type-item:hover {\n border-color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.type-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-md);\n font-size: 18px;\n color: var(--mj-text-secondary);\n}\n\n.type-name {\n flex: 1;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.type-count {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-status-success);\n}\n\n.type-size {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-left: 8px;\n}\n\n.cache-entries-section {\n margin-top: 24px;\n}\n\n.cache-entries-section .section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.cache-entries-section .section-header h4 {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.filter-controls {\n display: flex;\n gap: 8px;\n}\n\n.cache-entries-table-wrapper {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.cache-entries-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.cache-entries-table th {\n padding: 12px 16px;\n text-align: left;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n font-weight: 600;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.cache-entries-table td {\n padding: 10px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n vertical-align: middle;\n}\n\n.cache-entries-table tbody tr:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.cache-entries-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.cache-type-chip {\n display: inline-block;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.cache-type-chip.type-dataset {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n}\n\n.cache-type-chip.type-runview {\n background: var(--mj-color-tertiary-100);\n color: var(--mj-color-tertiary-700);\n}\n\n.cache-type-chip.type-runquery {\n background: var(--mj-color-violet-100);\n color: var(--mj-color-violet-700);\n}\n\n.entry-name {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.entry-fingerprint {\n display: block;\n font-size: 10px;\n color: var(--mj-text-muted);\n margin-top: 2px;\n background: var(--mj-bg-surface-sunken);\n padding: 2px 6px;\n border-radius: 3px;\n}\n\n.icon-btn {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.icon-btn:hover {\n border-color: var(--mj-status-error);\n color: var(--mj-status-error);\n background: var(--mj-status-error-bg);\n}\n\n.table-footer {\n padding: 12px 16px;\n text-align: center;\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n border-top: 1px solid var(--mj-border-default);\n}\n"] }]
5844
+ </mj-page-body-interior>
5845
+ `, styles: ["/*\n SystemDiagnostics renders inside Admin's \"Monitoring\" left-nav shell.\n Host is a flex column so <mj-page-header-interior> sits pinned at the top\n and .scrollable-content fills the rest. See plans/explorer-chrome-conventions.md Section 10.\n*/\n:host {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n background: var(--mj-bg-page);\n}\n\n.system-diagnostics {\n background: var(--mj-bg-surface-sunken);\n display: flex;\n flex-direction: column;\n}\n\n/* Inline auto-refresh toggle in the [actions] slot. */\n.auto-refresh-toggle {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 13px;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.auto-refresh-toggle input[type=\"checkbox\"] {\n width: 14px;\n height: 14px;\n cursor: pointer;\n}\n\n.spinning {\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n/*\n Overview KPIs (engines / memory / redundant) now live as <mj-stat-badge>\n instances in the chrome's [meta] slot \u2014 see the header-interior block above.\n The legacy .overview-cards-container / .overview-card / .kpi-toggle-btn /\n .mini-kpi rules were retired with that migration.\n*/\n\n/* Main Content */\n/*\n Content Area \u2014 L2 nav was previously a bespoke left rail (.left-nav). It now\n lives in the interior chrome above as <mj-tab-nav>. Section panels render\n directly inside .content-area, which fills the remaining body width.\n*/\n.content-area {\n flex: 1;\n padding: 24px;\n overflow: hidden;\n min-width: 0;\n display: flex;\n flex-direction: column;\n}\n\n.section-panel {\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-lg);\n box-shadow: var(--mj-shadow-md);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n\n.section-panel-content {\n flex: 1;\n overflow-y: auto;\n min-height: 0;\n padding: 20px 24px;\n}\n\n.panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n}\n\n.panel-header h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.panel-header h3 i {\n color: var(--mj-status-success);\n}\n\n.panel-actions {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.action-divider {\n width: 1px;\n height: 24px;\n background: var(--mj-border-default);\n}\n\n.source-toggle {\n display: flex;\n background: var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n overflow: hidden;\n}\n\n.source-btn {\n background: transparent;\n border: none;\n padding: 6px 12px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.15s ease;\n}\n\n.source-btn:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.source-btn.active {\n background: var(--mj-status-success);\n color: white;\n}\n\n.source-btn i {\n font-size: 11px;\n}\n\n.loading-indicator {\n display: flex;\n align-items: center;\n color: var(--mj-status-success);\n}\n\n.error-banner {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 16px;\n background: var(--mj-color-error-100);\n border: 1px solid var(--mj-color-error-100);\n border-radius: var(--mj-radius-md);\n color: var(--mj-status-error);\n font-size: 13px;\n margin-bottom: 16px;\n}\n\n.error-banner i {\n color: var(--mj-status-error);\n}\n\n.error-banner .dismiss-btn {\n margin-left: auto;\n background: transparent;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px;\n}\n\n.error-banner .dismiss-btn:hover {\n color: var(--mj-status-error);\n}\n\n.action-btn {\n background: var(--mj-bg-surface);\n border: none;\n padding: 8px 16px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s ease;\n}\n\n.action-btn:hover:not(:disabled) {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.action-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Status indicator for read-only server telemetry status */\n.status-indicator {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n}\n\n.status-indicator.enabled {\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n color: var(--mj-status-success);\n}\n\n.status-indicator.disabled {\n background: color-mix(in srgb, var(--mj-text-muted) 10%, transparent);\n color: var(--mj-text-muted);\n}\n\n.status-indicator .config-note {\n font-size: 11px;\n opacity: 0.7;\n margin-left: 4px;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i {\n font-size: 48px;\n margin-bottom: 16px;\n color: var(--mj-border-default);\n}\n\n.empty-state.success-state i {\n color: var(--mj-status-success);\n}\n\n.empty-state p {\n margin: 0;\n font-size: 16px;\n color: var(--mj-text-secondary);\n}\n\n.empty-hint {\n font-size: 13px;\n margin-top: 8px;\n}\n\n/* Engine Grid */\n.engine-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n gap: 16px;\n}\n\n.engine-card {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-lg);\n padding: 16px 20px;\n border: 2px solid transparent;\n transition: all 0.2s ease;\n}\n\n.engine-card.loaded {\n border-color: var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.engine-card:hover {\n transform: translateY(-2px);\n box-shadow: var(--mj-shadow-lg);\n}\n\n.engine-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.engine-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 180px;\n flex: 1;\n min-width: 0;\n}\n\n.engine-status {\n flex-shrink: 0;\n font-size: 11px;\n font-weight: 600;\n padding: 4px 10px;\n border-radius: var(--mj-radius-lg);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n}\n\n.status-loaded {\n background: var(--mj-color-success-100);\n color: var(--mj-color-success-800);\n}\n\n.status-pending {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-800);\n}\n\n.engine-stats {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.stat-item {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.stat-item i {\n width: 16px;\n color: var(--mj-text-muted);\n}\n\n.engine-actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid rgba(0, 0, 0, 0.08);\n}\n\n.engine-action-btn {\n width: 32px;\n height: 32px;\n border: none;\n border-radius: var(--mj-radius-md);\n background: rgba(0, 0, 0, 0.05);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.engine-action-btn:hover:not(:disabled) {\n background: var(--mj-status-success);\n color: white;\n}\n\n.engine-action-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.stat-label {\n color: var(--mj-text-muted);\n}\n\n.stat-value {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n/* Info Banner */\n.info-banner {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-accent-300);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-brand-primary);\n margin-bottom: 20px;\n}\n\n.info-banner i {\n margin-top: 2px;\n flex-shrink: 0;\n}\n\n/* Recommendation Banner */\n.recommendation-banner {\n display: flex;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-color-warning-800);\n margin-top: 20px;\n}\n\n.recommendation-banner i {\n margin-top: 2px;\n flex-shrink: 0;\n color: var(--mj-color-warning-500);\n}\n\n/* Redundant Loads Table */\n.redundant-loads-table-wrapper {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.redundant-loads-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.redundant-loads-table th {\n background: var(--mj-bg-surface-sunken);\n padding: 12px 16px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.redundant-loads-table th.text-right {\n text-align: right;\n}\n\n.redundant-loads-table td {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.redundant-loads-table td.text-right {\n text-align: right;\n}\n\n.redundant-loads-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.redundant-loads-table tbody tr:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.redundant-loads-table .entity-name {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.engine-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.engine-chip {\n padding: 4px 10px;\n background: var(--mj-color-indigo-500);\n color: white;\n font-size: 11px;\n border-radius: var(--mj-radius-lg);\n font-weight: 500;\n}\n\n.count-badge {\n display: inline-block;\n padding: 4px 12px;\n background: var(--mj-color-warning-500);\n color: white;\n font-size: 12px;\n font-weight: 600;\n border-radius: var(--mj-radius-lg);\n}\n\n/* Footer */\n.footer {\n padding: 12px 24px;\n background: var(--mj-bg-page);\n border-top: 1px solid var(--mj-border-default);\n text-align: right;\n flex-shrink: 0;\n}\n\n.last-updated {\n font-size: 12px;\n color: var(--mj-text-muted);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n/* Performance Section Styles */\n.warning-banner {\n background: var(--mj-color-warning-50) !important;\n color: var(--mj-color-warning-800) !important;\n}\n\n.warning-banner i {\n color: var(--mj-color-warning-500);\n}\n\n.telemetry-summary {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.summary-card {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n text-align: center;\n}\n\n.summary-value {\n font-size: 28px;\n font-weight: 700;\n color: var(--mj-text-primary);\n}\n\n.summary-label {\n font-size: 12px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n}\n\n.category-breakdown {\n margin-bottom: 24px;\n}\n\n.category-breakdown h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.category-grid {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.category-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-full);\n font-size: 13px;\n}\n\n.category-name {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.category-events {\n background: var(--mj-color-indigo-500);\n color: white;\n padding: 2px 8px;\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 600;\n}\n\n.category-avg {\n color: var(--mj-text-muted);\n font-size: 11px;\n}\n\n.insights-section {\n margin-bottom: 24px;\n}\n\n.insights-section h4 {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.insights-section h4 i {\n color: var(--mj-color-warning-500);\n}\n\n.insights-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.insight-card {\n padding: 16px;\n border-radius: var(--mj-radius-md);\n border-left: 4px solid var(--mj-border-default);\n}\n\n.insight-card.severity-info {\n background: var(--mj-color-accent-300);\n border-left-color: var(--mj-brand-primary);\n}\n\n.insight-card.severity-warning {\n background: var(--mj-color-warning-50);\n border-left-color: var(--mj-color-warning-500);\n}\n\n.insight-card.severity-optimization {\n background: var(--mj-color-success-100);\n border-left-color: var(--mj-status-success);\n}\n\n.insight-header {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 8px;\n}\n\n.insight-header i {\n font-size: 16px;\n}\n\n.severity-info .insight-header i { color: var(--mj-brand-primary); }\n.severity-warning .insight-header i { color: var(--mj-color-warning-500); }\n.severity-optimization .insight-header i { color: var(--mj-status-success); }\n\n.insight-title {\n font-weight: 600;\n color: var(--mj-text-primary);\n flex: 1;\n}\n\n.insight-category {\n font-size: 11px;\n padding: 2px 8px;\n background: rgba(0, 0, 0, 0.1);\n border-radius: var(--mj-radius-lg);\n color: var(--mj-text-secondary);\n}\n\n.insight-message {\n font-size: 13px;\n color: var(--mj-text-secondary);\n margin-bottom: 8px;\n}\n\n.insight-suggestion {\n font-size: 12px;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.insight-suggestion i {\n color: var(--mj-status-success);\n font-size: 10px;\n}\n\n.patterns-section h4 {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.patterns-section h4 i {\n color: var(--mj-color-indigo-500);\n}\n\n.patterns-table-wrapper {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.patterns-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.patterns-table th {\n background: var(--mj-bg-surface-sunken);\n padding: 12px 16px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.patterns-table td {\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.patterns-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.patterns-table tbody tr:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.duplicate-row {\n background: var(--mj-color-warning-50);\n}\n\n.duplicate-row:hover {\n background: var(--mj-color-warning-50) !important;\n}\n\n.category-chip {\n display: inline-block;\n padding: 3px 10px;\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.cat-runview { background: var(--mj-color-info-100); color: var(--mj-color-info-700); }\n.cat-runquery { background: var(--mj-color-violet-100); color: var(--mj-color-violet-700); }\n.cat-engine { background: var(--mj-color-success-100); color: var(--mj-color-success-700); }\n.cat-ai { background: var(--mj-color-warning-50); color: var(--mj-color-warning-700); }\n.cat-cache { background: var(--mj-color-error-100); color: var(--mj-status-error); }\n.cat-network { background: var(--mj-color-tertiary-100); color: var(--mj-color-tertiary-700); }\n.cat-custom { background: var(--mj-color-neutral-100); color: var(--mj-color-neutral-600); }\n\n.operation-cell {\n font-family: monospace;\n font-size: 12px;\n}\n\n.entity-cell {\n font-weight: 500;\n}\n\n.count-warning {\n display: inline-block;\n padding: 2px 8px;\n background: var(--mj-color-warning-500);\n color: white;\n border-radius: var(--mj-radius-lg);\n font-weight: 600;\n}\n\n.action-btn.active {\n background: var(--mj-status-success);\n color: white;\n}\n\n/* Slow Queries Section */\n.slow-queries-section {\n margin-bottom: 24px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n border-left: 4px solid var(--mj-color-warning-500);\n}\n\n.slow-queries-section h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-color-warning-800);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.slow-queries-section h4 i {\n color: var(--mj-color-warning-500);\n}\n\n.slow-queries-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.slow-query-item {\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-md);\n padding: 10px 12px;\n border: 1px solid var(--mj-color-warning-50);\n transition: all 0.15s ease;\n}\n\n.slow-query-item.clickable {\n cursor: pointer;\n}\n\n.slow-query-item.clickable:hover {\n background: var(--mj-color-warning-50);\n border-color: var(--mj-color-warning-500);\n transform: translateX(2px);\n}\n\n.slow-query-main {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.slow-query-entity {\n flex: 1;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.slow-query-time {\n font-weight: 700;\n color: var(--mj-color-warning-800);\n font-size: 14px;\n}\n\n.slow-query-filter {\n font-size: 11px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n font-family: monospace;\n}\n\n.slow-query-timestamp {\n font-size: 11px;\n color: var(--mj-text-muted);\n margin-top: 4px;\n}\n\n/* View Toggle */\n.view-toggle {\n display: flex;\n gap: 8px;\n margin-bottom: 16px;\n}\n\n.toggle-btn {\n padding: 8px 16px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 0.2s ease;\n}\n\n.toggle-btn:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.toggle-btn.active {\n background: var(--mj-color-indigo-500);\n color: white;\n border-color: var(--mj-color-indigo-500);\n}\n\n/* Expandable Insight Cards */\n.insight-card.expandable {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.insight-card.expandable:hover {\n box-shadow: var(--mj-shadow-md);\n}\n\n.insight-card .expand-icon {\n color: var(--mj-text-muted);\n font-size: 12px;\n margin-left: auto;\n}\n\n.insight-card.expanded {\n border-width: 2px;\n}\n\n.insight-details {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.detail-section {\n margin-bottom: 12px;\n}\n\n.detail-label {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n margin-bottom: 4px;\n}\n\n.detail-value {\n font-size: 13px;\n color: var(--mj-text-primary);\n}\n\n.related-events {\n display: flex;\n flex-direction: column;\n gap: 6px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.related-event {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 6px 10px;\n background: rgba(0, 0, 0, 0.03);\n border-radius: 4px;\n font-size: 12px;\n}\n\n.event-time {\n font-family: monospace;\n color: var(--mj-text-secondary);\n}\n\n.event-duration {\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.event-filter {\n color: var(--mj-text-muted);\n font-family: monospace;\n font-size: 11px;\n}\n\n/* Timeline Section */\n.timeline-section h4 {\n margin: 0 0 16px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-section h4 i {\n color: var(--mj-color-indigo-500);\n}\n\n.timeline-container {\n position: relative;\n padding-left: 24px;\n max-height: 400px;\n overflow-y: auto;\n}\n\n.timeline-item {\n display: flex;\n gap: 16px;\n margin-bottom: 12px;\n position: relative;\n}\n\n.timeline-marker {\n display: flex;\n flex-direction: column;\n align-items: center;\n position: absolute;\n left: -24px;\n top: 0;\n bottom: 0;\n}\n\n.marker-dot {\n width: 10px;\n height: 10px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-color-indigo-500);\n z-index: 1;\n}\n\n.marker-line {\n width: 2px;\n flex: 1;\n background: var(--mj-border-default);\n margin-top: 4px;\n}\n\n.timeline-item:last-child .marker-line {\n display: none;\n}\n\n.tl-runview .marker-dot { background: var(--mj-color-info-700); }\n.tl-runquery .marker-dot { background: var(--mj-color-violet-700); }\n.tl-engine .marker-dot { background: var(--mj-color-success-700); }\n.tl-ai .marker-dot { background: var(--mj-color-warning-700); }\n.tl-cache .marker-dot { background: var(--mj-status-error); }\n\n/* Cache hit bolt marker */\n.marker-bolt {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n color: var(--mj-color-warning-500);\n font-size: 14px;\n margin-left: -4px;\n}\n\n.marker-bolt i {\n filter: drop-shadow(0 0 3px color-mix(in srgb, var(--mj-color-warning-500) 60%, transparent));\n}\n\n/* Category-specific bolt colors */\n.tl-runview.cache-hit .marker-bolt { color: var(--mj-color-info-700); }\n.tl-runquery.cache-hit .marker-bolt { color: var(--mj-color-violet-700); }\n.tl-engine.cache-hit .marker-bolt { color: var(--mj-color-success-700); }\n.tl-ai.cache-hit .marker-bolt { color: var(--mj-color-warning-700); }\n.tl-cache.cache-hit .marker-bolt { color: var(--mj-status-error); }\n\n/* Cache hit badge */\n.cache-hit-badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: linear-gradient(135deg, var(--mj-color-warning-100) 0%, var(--mj-color-warning-200) 100%);\n border: 1px solid var(--mj-color-warning-500);\n border-radius: var(--mj-radius-lg);\n font-size: 9px;\n font-weight: 700;\n color: var(--mj-color-warning-800);\n letter-spacing: 0.5px;\n}\n\n.cache-hit-badge i {\n font-size: 8px;\n color: var(--mj-color-warning-500);\n}\n\n/* Highlighted background for cache hit items */\n.timeline-item.cache-hit .timeline-content {\n background: linear-gradient(135deg, var(--mj-color-warning-50) 0%, var(--mj-color-warning-100) 100%);\n border: 1px solid var(--mj-color-warning-300);\n}\n\n.timeline-content {\n flex: 1;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 10px 14px;\n}\n\n.timeline-header {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 4px;\n}\n\n.timeline-time {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.timeline-duration {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.timeline-duration.slow {\n color: var(--mj-color-warning-800);\n background: var(--mj-color-warning-50);\n padding: 2px 6px;\n border-radius: 4px;\n}\n\n.timeline-body {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.timeline-operation {\n font-family: monospace;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.timeline-entity {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.timeline-filter {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-family: monospace;\n margin-top: 4px;\n}\n\n/* Entity Pills for RunViews batch operations */\n.timeline-entities,\n.slow-query-entities {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 4px;\n}\n\n.entity-pill {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n background: var(--mj-color-info-100);\n border: 1px solid var(--mj-brand-primary);\n border-radius: var(--mj-radius-lg);\n font-size: 11px;\n font-weight: 500;\n color: var(--mj-color-info-700);\n}\n\n.entity-pill.small {\n padding: 1px 6px;\n font-size: 10px;\n}\n\n.entity-pill.more {\n background: var(--mj-color-neutral-100);\n border-color: var(--mj-color-neutral-200);\n color: var(--mj-color-neutral-600);\n font-style: italic;\n}\n\n/* Parameter Pills */\n.timeline-pills,\n.slow-query-pills {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-top: 6px;\n}\n\n.param-pill {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-family: monospace;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.param-pill.small {\n padding: 2px 6px;\n font-size: 9px;\n max-width: 150px;\n}\n\n.param-pill .pill-label {\n font-weight: 600;\n opacity: 0.8;\n}\n\n.param-pill .pill-value {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* Pill type colors */\n.param-pill.pill-filter {\n background: var(--mj-color-warning-50);\n border: 1px solid var(--mj-color-warning-300);\n color: var(--mj-color-warning-700);\n}\n\n.param-pill.pill-order {\n background: var(--mj-color-success-100);\n border: 1px solid var(--mj-color-success-300);\n color: var(--mj-color-success-700);\n}\n\n.param-pill.pill-result {\n background: var(--mj-color-violet-100);\n border: 1px solid var(--mj-color-violet-300);\n color: var(--mj-color-violet-700);\n}\n\n.param-pill.pill-limit {\n background: var(--mj-color-info-100);\n border: 1px solid var(--mj-brand-primary);\n color: var(--mj-color-info-700);\n}\n\n.param-pill.pill-batch {\n background: var(--mj-color-error-100);\n border: 1px solid var(--mj-color-error-300);\n color: var(--mj-status-error);\n}\n\n.param-pill.pill-info {\n background: var(--mj-color-neutral-100);\n border: 1px solid var(--mj-color-neutral-200);\n color: var(--mj-color-neutral-600);\n}\n\n/* Slow query cache hit styling */\n.slow-query-item.cache-hit {\n background: linear-gradient(135deg, var(--mj-color-warning-50) 0%, var(--mj-color-warning-100) 100%);\n border-color: var(--mj-color-warning-300);\n}\n\n.cache-hit-badge.small {\n padding: 1px 6px;\n font-size: 8px;\n}\n\n/* Filter Bar */\n.filter-bar {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-bottom: 16px;\n padding: 12px 16px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n}\n\n.search-box {\n flex: 1;\n min-width: 200px;\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.search-box i {\n position: absolute;\n left: 12px;\n color: var(--mj-text-muted);\n}\n\n.search-box input {\n width: 100%;\n padding: 8px 36px;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n background: var(--mj-bg-page);\n}\n\n.search-box input:focus {\n outline: none;\n border-color: var(--mj-color-indigo-500);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--mj-color-indigo-500) 20%, transparent);\n}\n\n.clear-search {\n position: absolute;\n right: 8px;\n background: none;\n border: none;\n color: var(--mj-text-muted);\n cursor: pointer;\n padding: 4px;\n}\n\n.clear-search:hover {\n color: var(--mj-text-secondary);\n}\n\n.filter-buttons {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.filter-btn {\n padding: 6px 14px;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n border-radius: var(--mj-radius-full);\n font-size: 12px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.filter-btn:hover {\n background: var(--mj-bg-surface);\n}\n\n.filter-btn.active {\n background: var(--mj-color-indigo-500);\n color: white;\n border-color: var(--mj-color-indigo-500);\n}\n\n/* Sortable Table Headers */\n.sortable-header {\n cursor: pointer;\n user-select: none;\n white-space: nowrap;\n}\n\n.sortable-header:hover {\n background: var(--mj-bg-surface);\n}\n\n.sortable-header i {\n margin-left: 6px;\n font-size: 11px;\n color: var(--mj-text-muted);\n}\n\n.sortable-header i.fa-sort-up,\n.sortable-header i.fa-sort-down {\n color: var(--mj-color-indigo-500);\n}\n\n/* Table Enhancements */\n.filter-cell {\n font-family: monospace;\n font-size: 11px;\n color: var(--mj-text-secondary);\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.slow-row {\n background: var(--mj-color-error-100);\n}\n\n.slow-row:hover {\n background: var(--mj-color-error-100) !important;\n}\n\n.slow-value {\n color: var(--mj-status-error);\n font-weight: 600;\n}\n\n/* Small category chips */\n.category-chip.small {\n font-size: 9px;\n padding: 2px 6px;\n}\n\n/* Small empty state */\n.empty-state.small {\n padding: 30px 20px;\n}\n\n.empty-state.small i {\n font-size: 32px;\n margin-bottom: 12px;\n}\n\n.empty-state.small p {\n font-size: 14px;\n}\n\n/* Performance Sub-Tabs */\n.perf-tabs {\n display: flex;\n gap: 4px;\n padding: 12px 24px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.perf-tab {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n border: none;\n background: transparent;\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.perf-tab:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.perf-tab.active {\n background: var(--mj-bg-page);\n color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.perf-tab i {\n font-size: 14px;\n}\n\n.tab-badge {\n background: var(--mj-border-default);\n color: var(--mj-text-secondary);\n font-size: 10px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: var(--mj-radius-md);\n min-width: 18px;\n text-align: center;\n}\n\n.perf-tab.active .tab-badge {\n background: var(--mj-color-success-100);\n color: var(--mj-color-success-800);\n}\n\n.tab-badge.warning {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.tab-badge.insight {\n background: var(--mj-color-warning-50);\n color: var(--mj-color-warning-700);\n}\n\n.perf-panel .section-panel-content {\n padding: 20px 24px;\n}\n\n/* Success Banner */\n.success-banner {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px 20px;\n background: var(--mj-color-success-100);\n border-radius: var(--mj-radius-md);\n font-size: 13px;\n color: var(--mj-color-success-800);\n margin-top: 16px;\n}\n\n.success-banner i {\n font-size: 18px;\n color: var(--mj-status-success);\n}\n\n/* Compact Filter Bar */\n.filter-bar.compact {\n padding: 10px 14px;\n margin-bottom: 12px;\n}\n\n/* Clickable category items */\n.category-item {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.category-item:hover {\n background: var(--mj-color-accent-300);\n transform: translateY(-1px);\n}\n\n/* Insight Key Info (always visible) */\n.insight-key-info {\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding: 10px 12px;\n background: rgba(0, 0, 0, 0.03);\n border-radius: var(--mj-radius-md);\n margin: 8px 0;\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.key-info-item {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n font-size: 12px;\n}\n\n.key-label {\n color: var(--mj-text-secondary);\n font-weight: 500;\n min-width: 50px;\n flex-shrink: 0;\n}\n\n.key-value {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.key-value.entity-name {\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.key-value.filter-code {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n background: rgba(0, 0, 0, 0.06);\n padding: 2px 6px;\n border-radius: 3px;\n color: var(--mj-text-primary);\n}\n\n/* Params Display */\n.params-display {\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n padding: 10px;\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.param-row {\n display: flex;\n gap: 8px;\n padding: 4px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.param-row:last-child {\n border-bottom: none;\n}\n\n.param-key {\n color: var(--mj-brand-primary);\n font-weight: 500;\n min-width: 100px;\n flex-shrink: 0;\n}\n\n.param-value {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.event-entity {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 11px;\n font-weight: 500;\n}\n\n/* PerfMon Chart Styles\n * ====================\n * Chrome (background, borders, text, controls) is mapped to MJ semantic tokens\n * so the panel adapts to the active theme and is white-labelable. Series colors\n * (cyan / magenta / neon-green / orange) are categorical chart data \u2014 they must\n * stay distinct across themes and are exempt by the same rule that exempts\n * other chart-data palettes.\n *\n * The accent (--perfmon-accent) is intentionally kept as the same neon green as\n * the engine series so the \"live signal\" indicators (header icon, footer count,\n * chart strokes) read as part of the chart palette rather than the app's brand.\n *\n * Overlays are derived via color-mix() from --mj-text-primary so they invert\n * automatically: dark tints over light surfaces in light mode, light tints over\n * dark surfaces in dark mode.\n */\n.perfmon-section {\n /* Chrome \u2014 adapts to theme */\n --perfmon-bg: var(--mj-bg-surface-card);\n --perfmon-bg-deep: var(--mj-bg-surface-sunken);\n --perfmon-border: var(--mj-border-default);\n --perfmon-border-medium: var(--mj-border-strong);\n --perfmon-border-light: var(--mj-border-strong);\n --perfmon-text-faint: var(--mj-text-disabled);\n --perfmon-text-muted: var(--mj-text-muted);\n --perfmon-text-secondary: var(--mj-text-secondary);\n --perfmon-control-bg: var(--mj-bg-surface-sunken);\n --perfmon-control-bg-hover: var(--mj-bg-surface-hover);\n --perfmon-mode-bg: var(--mj-bg-surface-sunken);\n --perfmon-overlay-light: color-mix(in srgb, var(--mj-text-primary) 5%, transparent);\n --perfmon-overlay-medium: color-mix(in srgb, var(--mj-text-primary) 15%, transparent);\n --perfmon-overlay-strong: color-mix(in srgb, var(--mj-text-primary) 25%, transparent);\n --perfmon-tooltip-bg: var(--mj-bg-overlay);\n\n /* Categorical series colors and live-signal accent \u2014 exempt */\n --perfmon-accent: #00ff88;\n --perfmon-accent-dim: #00cc6a;\n --perfmon-series-runview: #00bcd4;\n --perfmon-series-runquery: #e040fb;\n --perfmon-series-engine: #00ff88;\n --perfmon-series-ai: #ff9800;\n\n background: var(--perfmon-bg);\n border-radius: 8px;\n padding: 16px;\n margin-bottom: 24px;\n}\n\n.perfmon-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n}\n\n.perfmon-header h4 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--perfmon-accent);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.perfmon-header h4 i {\n color: var(--perfmon-accent);\n}\n\n.perfmon-legend {\n display: flex;\n gap: 16px;\n font-size: 11px;\n}\n\n.legend-item {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--perfmon-text-muted);\n}\n\n.legend-dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n}\n\n.legend-item.runview .legend-dot { background: var(--perfmon-series-runview); }\n.legend-item.runquery .legend-dot { background: var(--perfmon-series-runquery); }\n.legend-item.engine .legend-dot { background: var(--perfmon-series-engine); }\n.legend-item.ai .legend-dot { background: var(--perfmon-series-ai); }\n\n.perfmon-chart-container {\n display: flex;\n background: var(--perfmon-bg-deep);\n border: 1px solid var(--perfmon-border);\n border-radius: 4px;\n position: relative;\n}\n\n.perfmon-y-axis {\n width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid var(--perfmon-border);\n}\n\n.perfmon-y-axis .axis-label {\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n font-size: 10px;\n color: var(--perfmon-text-faint);\n text-transform: uppercase;\n letter-spacing: 1px;\n}\n\n.perfmon-chart {\n flex: 1;\n height: 300px;\n position: relative;\n overflow: hidden;\n}\n\n.perfmon-chart svg {\n width: 100%;\n height: 100%;\n}\n\n.perfmon-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--perfmon-border);\n}\n\n.footer-note {\n font-size: 11px;\n color: var(--perfmon-text-faint);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.footer-note i {\n color: var(--perfmon-accent);\n}\n\n.footer-stats {\n font-size: 11px;\n color: var(--perfmon-accent);\n font-family: monospace;\n}\n\n/* D3 Chart Elements */\n.perfmon-chart :deep(.grid-line) {\n stroke: var(--perfmon-border);\n stroke-dasharray: 2,2;\n}\n\n.perfmon-chart :deep(.axis-line) {\n stroke: var(--perfmon-border-light);\n}\n\n.perfmon-chart :deep(.axis-text) {\n fill: var(--perfmon-text-muted);\n font-size: 10px;\n font-family: monospace;\n}\n\n.perfmon-chart :deep(.event-point) {\n cursor: pointer;\n transition: r 0.15s ease;\n}\n\n.perfmon-chart :deep(.event-point:hover) {\n r: 6;\n}\n\n.perfmon-chart :deep(.tooltip) {\n pointer-events: none;\n}\n\n.perfmon-chart :deep(.tooltip-bg) {\n fill: var(--perfmon-tooltip-bg);\n rx: 4;\n}\n\n.perfmon-chart :deep(.tooltip-text) {\n fill: var(--mj-bg-surface);\n font-size: 11px;\n font-family: monospace;\n}\n\n.perfmon-chart :deep(.area-fill) {\n opacity: 0.15;\n}\n\n.perfmon-chart :deep(.line-path) {\n fill: none;\n stroke-width: 1.5;\n opacity: 0.8;\n}\n\n/* PerfMon Chart Controls */\n.perfmon-controls {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n padding: 8px 12px;\n background: var(--perfmon-overlay-light);\n border-radius: 6px;\n border: 1px solid var(--perfmon-border);\n}\n\n.chart-control-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n background: var(--perfmon-control-bg);\n color: var(--perfmon-text-muted);\n border: 1px solid var(--perfmon-border-medium);\n border-radius: 4px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.chart-control-btn:hover {\n background: var(--perfmon-control-bg-hover);\n color: var(--perfmon-accent);\n border-color: var(--perfmon-accent);\n}\n\n.chart-control-btn:active {\n transform: scale(0.95);\n}\n\n.chart-control-btn i {\n font-size: 14px;\n}\n\n/* Mode Toggle Buttons */\n.mode-toggle {\n display: flex;\n background: var(--perfmon-mode-bg);\n border-radius: 4px;\n overflow: hidden;\n border: 1px solid var(--perfmon-border-medium);\n}\n\n.mode-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 28px;\n padding: 0;\n background: transparent;\n color: var(--perfmon-text-faint);\n border: none;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.mode-btn:first-child {\n border-right: 1px solid var(--perfmon-border);\n}\n\n.mode-btn:hover {\n color: var(--perfmon-text-secondary);\n background: var(--perfmon-overlay-light);\n}\n\n.mode-btn.active {\n background: var(--perfmon-accent);\n color: var(--perfmon-mode-bg);\n}\n\n.mode-btn.active:hover {\n background: var(--perfmon-accent-dim);\n}\n\n.mode-btn i {\n font-size: 12px;\n}\n\n.control-divider {\n width: 1px;\n height: 24px;\n background: var(--perfmon-border-medium);\n margin: 0 4px;\n}\n\n.compress-toggle {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 12px;\n color: var(--perfmon-text-muted);\n user-select: none;\n}\n\n.compress-toggle:hover {\n color: var(--perfmon-accent);\n}\n\n.compress-toggle input[type=\"checkbox\"] {\n width: 14px;\n height: 14px;\n accent-color: var(--perfmon-accent);\n cursor: pointer;\n}\n\n.compress-toggle span {\n white-space: nowrap;\n}\n\n.zoom-level {\n font-size: 11px;\n color: var(--perfmon-text-faint);\n font-family: monospace;\n margin-left: 8px;\n}\n\n/* Gap indicators in chart */\n.perfmon-chart :deep(.gap-indicator) {\n cursor: pointer;\n transition: opacity 0.15s ease;\n}\n\n.perfmon-chart :deep(.gap-indicator:hover) {\n opacity: 0.8;\n}\n\n.perfmon-chart :deep(.gap-text) {\n fill: var(--perfmon-text-faint);\n font-size: 10px;\n font-family: monospace;\n pointer-events: none;\n}\n\n.perfmon-chart :deep(.gap-expand-btn) {\n cursor: pointer;\n opacity: 0.6;\n transition: opacity 0.15s ease;\n}\n\n.perfmon-chart :deep(.gap-expand-btn:hover) {\n opacity: 1;\n}\n\n/* Selection brush overlay */\n.perfmon-chart :deep(.selection-overlay) {\n pointer-events: all;\n}\n\n.perfmon-chart :deep(.selection-rect) {\n pointer-events: none;\n}\n\n/* Zoom info display */\n.zoom-info {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 11px;\n color: var(--perfmon-text-muted);\n font-family: monospace;\n}\n\n.zoom-info .zoom-level {\n color: var(--perfmon-accent);\n}\n\n.zoom-info .time-range {\n color: var(--perfmon-text-faint);\n}\n\n/* Responsive */\n@media (max-width: 1024px) {\n .main-content {\n flex-direction: column;\n }\n\n .left-nav {\n width: 100%;\n border-right: none;\n border-bottom: 1px solid var(--mj-border-default);\n padding: 12px;\n }\n\n .nav-section {\n display: flex;\n gap: 8px;\n overflow-x: auto;\n padding: 0;\n }\n\n .nav-section-title {\n display: none;\n }\n\n .nav-item {\n white-space: nowrap;\n padding: 10px 16px;\n }\n}\n\n@media (max-width: 768px) {\n .engine-grid {\n grid-template-columns: 1fr;\n }\n\n .perfmon-legend {\n flex-wrap: wrap;\n gap: 8px;\n }\n}\n\n/* Export Button */\n.export-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 14px;\n background: var(--mj-status-success);\n color: white;\n border: none;\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.export-btn:hover:not(:disabled) {\n background: var(--mj-color-success-800);\n transform: translateY(-1px);\n}\n\n.export-btn:disabled {\n background: var(--mj-border-default);\n cursor: not-allowed;\n}\n\n.footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n/* Event Detail Slide-in Panel */\n.event-detail-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: fadeIn 0.2s ease;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.event-detail-panel {\n position: fixed;\n top: 0;\n right: 0;\n width: 450px;\n max-width: 90vw;\n height: 100vh;\n background: var(--mj-bg-page);\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: slideIn 0.25s ease;\n}\n\n@keyframes slideIn {\n from { transform: translateX(100%); }\n to { transform: translateX(0); }\n}\n\n.event-detail-panel .panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.event-detail-panel .panel-title {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.event-detail-panel .panel-title h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.event-detail-panel .close-btn {\n background: none;\n border: none;\n font-size: 18px;\n color: var(--mj-text-secondary);\n cursor: pointer;\n padding: 8px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.event-detail-panel .close-btn:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-primary);\n}\n\n.event-detail-panel .panel-body {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n/* Detail Metrics */\n.detail-metrics {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px;\n margin-bottom: 24px;\n}\n\n.detail-metrics .metric {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n text-align: center;\n}\n\n.detail-metrics .metric-value {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-family: monospace;\n}\n\n.detail-metrics .metric-value.slow {\n color: var(--mj-status-error);\n}\n\n.detail-metrics .metric-label {\n font-size: 11px;\n color: var(--mj-text-secondary);\n margin-top: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* Detail Sections */\n.event-detail-panel .detail-section {\n margin-bottom: 24px;\n}\n\n.event-detail-panel .detail-section h4 {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 12px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.event-detail-panel .detail-section h4 i {\n color: var(--mj-status-success);\n font-size: 14px;\n}\n\n.detail-content {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n}\n\n.detail-row {\n display: flex;\n gap: 12px;\n padding: 8px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.detail-row:last-child {\n border-bottom: none;\n}\n\n.detail-key {\n font-size: 12px;\n color: var(--mj-text-secondary);\n font-weight: 500;\n min-width: 80px;\n flex-shrink: 0;\n}\n\n.detail-val {\n font-size: 12px;\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n.detail-val.entity-highlight {\n font-weight: 600;\n color: var(--mj-brand-primary);\n}\n\n.detail-val.filter-val {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 11px;\n background: rgba(0, 0, 0, 0.05);\n padding: 4px 8px;\n border-radius: 4px;\n}\n\n/* Params Grid */\n.params-grid {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px;\n max-height: 200px;\n overflow-y: auto;\n}\n\n.param-item {\n display: flex;\n gap: 12px;\n padding: 6px 0;\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 12px;\n}\n\n.param-item:last-child {\n border-bottom: none;\n}\n\n.param-name {\n color: var(--mj-brand-primary);\n font-weight: 500;\n min-width: 100px;\n flex-shrink: 0;\n font-family: monospace;\n}\n\n.param-val {\n color: var(--mj-text-primary);\n word-break: break-all;\n}\n\n/* Pattern Summary */\n.pattern-summary {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 12px;\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 16px;\n}\n\n.pattern-stat {\n text-align: center;\n}\n\n.pattern-stat .stat-val {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-family: monospace;\n}\n\n.pattern-stat .stat-label {\n font-size: 10px;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-top: 4px;\n}\n\n.pattern-warning {\n margin-top: 12px;\n padding: 12px;\n background: var(--mj-color-warning-50);\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n color: var(--mj-color-warning-800);\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.pattern-warning i {\n color: var(--mj-color-warning-500);\n margin-top: 2px;\n}\n\n/* Detail Actions */\n.detail-actions {\n display: flex;\n gap: 12px;\n padding-top: 20px;\n border-top: 1px solid var(--mj-border-default);\n}\n\n.action-button {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 10px 16px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-primary);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.action-button:hover {\n background: var(--mj-border-default);\n border-color: var(--mj-border-default);\n}\n\n.action-button i {\n color: var(--mj-text-secondary);\n}\n\n/* Clickable timeline items */\n.timeline-item.clickable {\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.timeline-item.clickable:hover {\n background: color-mix(in srgb, var(--mj-status-success) 5%, transparent);\n}\n\n.timeline-item.clickable:hover .marker-dot {\n transform: scale(1.3);\n}\n\n/* ========================================\n ENGINE DETAIL PANEL STYLES\n ======================================== */\n\n.engine-detail-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: fadeIn 0.2s ease;\n}\n\n.engine-detail-panel {\n position: fixed;\n top: 0;\n right: 0;\n width: 550px;\n max-width: 95vw;\n height: 100vh;\n background: var(--mj-bg-page);\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: slideIn 0.25s ease;\n}\n\n.engine-detail-panel .panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n background: linear-gradient(135deg, var(--mj-status-success) 0%, var(--mj-color-success-800) 100%);\n color: white;\n}\n\n.engine-detail-panel .panel-title {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n}\n\n.engine-detail-panel .panel-title h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: white;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.engine-detail-panel .panel-header-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.engine-detail-panel .icon-btn {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: white;\n width: 36px;\n height: 36px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.engine-detail-panel .icon-btn:hover:not(:disabled) {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.engine-detail-panel .icon-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.engine-detail-panel .close-btn {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: white;\n width: 36px;\n height: 36px;\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n font-size: 18px;\n}\n\n.engine-detail-panel .close-btn:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.engine-detail-panel .panel-body {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n/* Engine Summary */\n.engine-summary-section {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 12px;\n margin-bottom: 24px;\n}\n\n.engine-summary-section .summary-stat {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n padding: 12px 16px;\n}\n\n.engine-summary-section .summary-label {\n font-size: 11px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 4px;\n}\n\n.engine-summary-section .summary-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.status-dot {\n width: 8px;\n height: 8px;\n border-radius: var(--mj-radius-full);\n background: var(--mj-color-warning-500);\n}\n\n.status-dot.status-loaded {\n background: var(--mj-status-success);\n}\n\n/* Config Items Section */\n.config-items-section h4 {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 16px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.config-items-section h4 i {\n color: var(--mj-status-success);\n}\n\n.config-items-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.config-item {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-md);\n border: 1px solid var(--mj-border-default);\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.config-item.expanded {\n border-color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.config-item-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n cursor: pointer;\n transition: background 0.2s ease;\n}\n\n.config-item-header:hover {\n background: rgba(0, 0, 0, 0.02);\n}\n\n.config-item-info {\n display: flex;\n align-items: center;\n gap: 10px;\n flex: 1;\n min-width: 0;\n}\n\n.config-type-chip {\n font-size: 10px;\n font-weight: 600;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n flex-shrink: 0;\n}\n\n.config-type-chip.type-entity {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n}\n\n.config-type-chip.type-dataset {\n background: var(--mj-color-violet-100);\n color: var(--mj-color-violet-700);\n}\n\n.config-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.config-item-stats {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.config-stat {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.expand-icon {\n color: var(--mj-text-muted);\n transition: transform 0.2s ease;\n}\n\n.config-item.expanded .expand-icon {\n color: var(--mj-status-success);\n}\n\n.config-item-details {\n padding: 0 16px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page);\n}\n\n.config-detail-row {\n display: flex;\n gap: 12px;\n padding: 10px 0;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.config-detail-row:last-child {\n border-bottom: none;\n}\n\n.config-detail-row .detail-label {\n font-size: 12px;\n color: var(--mj-text-muted);\n min-width: 70px;\n flex-shrink: 0;\n}\n\n.config-detail-row .detail-value {\n font-size: 12px;\n color: var(--mj-text-primary);\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n background: var(--mj-bg-surface-sunken);\n padding: 2px 6px;\n border-radius: 4px;\n word-break: break-all;\n}\n\n/* Health status indicators for config items */\n.config-health-icon {\n font-size: 12px;\n flex-shrink: 0;\n}\n.config-health-icon.health-success {\n color: var(--mj-status-success);\n}\n.config-health-icon.health-failure {\n color: var(--mj-status-error);\n}\n.config-detail-row--error {\n background: color-mix(in srgb, var(--mj-status-error) 6%, transparent);\n border-radius: 4px;\n padding: 4px 8px;\n}\n.detail-value--error {\n color: var(--mj-status-error-text) !important;\n background: none !important;\n font-family: inherit !important;\n word-break: break-word;\n}\n\n/* Sample Data Section */\n.sample-data-section {\n margin-top: 16px;\n}\n\n.sample-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n}\n\n.sample-title {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.sample-header-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.load-more-btn,\n.load-all-btn {\n background: none;\n border: 1px solid var(--mj-color-indigo-500);\n color: var(--mj-color-indigo-500);\n font-size: 11px;\n padding: 4px 10px;\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n transition: all 0.2s ease;\n}\n\n.load-more-btn:hover:not(:disabled),\n.load-all-btn:hover:not(:disabled) {\n background: var(--mj-color-indigo-500);\n color: white;\n}\n\n.load-more-btn:disabled,\n.load-all-btn:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.all-loaded-badge {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n color: var(--mj-status-success);\n padding: 4px 10px;\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n border-radius: 4px;\n}\n\n.action-col {\n width: 36px;\n min-width: 36px;\n max-width: 36px;\n padding: 4px !important;\n text-align: center;\n}\n\n.open-record-btn {\n width: 24px;\n height: 24px;\n border: none;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-color-indigo-500);\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 11px;\n transition: all 0.2s ease;\n}\n\n.open-record-btn:hover {\n background: var(--mj-color-indigo-500);\n color: white;\n}\n\n.sample-data-table-wrapper {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.sample-data-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 11px;\n}\n\n.sample-data-table th {\n background: var(--mj-bg-surface-sunken);\n padding: 8px 10px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n border-bottom: 1px solid var(--mj-border-default);\n white-space: nowrap;\n}\n\n.sample-data-table td {\n padding: 8px 10px;\n border-bottom: 1px solid var(--mj-border-default);\n color: var(--mj-text-primary);\n max-width: 150px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sample-data-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.sample-data-table tbody tr:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n/* Small empty state */\n.empty-state.small {\n padding: 30px 20px;\n}\n\n.empty-state.small i {\n font-size: 32px;\n}\n\n.empty-state.small p {\n font-size: 14px;\n}\n\n/* Spinning animation for refresh icon */\n.spinning {\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n/* ========================================\n LOCAL CACHE SECTION STYLES\n ======================================== */\n\n.cache-summary {\n display: flex;\n gap: 16px;\n margin-bottom: 24px;\n flex-wrap: wrap;\n}\n\n.cache-type-breakdown {\n margin-bottom: 24px;\n}\n\n.cache-type-breakdown h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.type-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 12px;\n}\n\n.type-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--mj-bg-page);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.type-item:hover {\n border-color: var(--mj-status-success);\n box-shadow: var(--mj-shadow-md);\n}\n\n.type-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border-radius: var(--mj-radius-md);\n font-size: 18px;\n color: var(--mj-text-secondary);\n}\n\n.type-name {\n flex: 1;\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.type-count {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-status-success);\n}\n\n.type-size {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-left: 8px;\n}\n\n.cache-entries-section {\n margin-top: 24px;\n}\n\n.cache-entries-section .section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n}\n\n.cache-entries-section .section-header h4 {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-secondary);\n}\n\n.filter-controls {\n display: flex;\n gap: 8px;\n}\n\n.cache-entries-table-wrapper {\n overflow-x: auto;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n}\n\n.cache-entries-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.cache-entries-table th {\n padding: 12px 16px;\n text-align: left;\n background: var(--mj-bg-surface-sunken);\n border-bottom: 1px solid var(--mj-border-default);\n font-weight: 600;\n color: var(--mj-text-secondary);\n white-space: nowrap;\n}\n\n.cache-entries-table td {\n padding: 10px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n vertical-align: middle;\n}\n\n.cache-entries-table tbody tr:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.cache-entries-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n.cache-type-chip {\n display: inline-block;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.cache-type-chip.type-dataset {\n background: var(--mj-color-info-100);\n color: var(--mj-color-info-700);\n}\n\n.cache-type-chip.type-runview {\n background: var(--mj-color-tertiary-100);\n color: var(--mj-color-tertiary-700);\n}\n\n.cache-type-chip.type-runquery {\n background: var(--mj-color-violet-100);\n color: var(--mj-color-violet-700);\n}\n\n.entry-name {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.entry-fingerprint {\n display: block;\n font-size: 10px;\n color: var(--mj-text-muted);\n margin-top: 2px;\n background: var(--mj-bg-surface-sunken);\n padding: 2px 6px;\n border-radius: 3px;\n}\n\n.icon-btn {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 4px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.icon-btn:hover {\n border-color: var(--mj-status-error);\n color: var(--mj-status-error);\n background: var(--mj-status-error-bg);\n}\n\n.table-footer {\n padding: 12px 16px;\n text-align: center;\n font-size: 12px;\n color: var(--mj-text-muted);\n background: var(--mj-bg-surface-sunken);\n border-top: 1px solid var(--mj-border-default);\n}\n"] }]
6101
5846
  }], () => [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i1.ActivatedRoute }], { perfChartRef: [{
6102
5847
  type: ViewChild,
6103
5848
  args: ['perfChart', { static: false }]
6104
5849
  }] }); })();
6105
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SystemDiagnosticsComponent, { className: "SystemDiagnosticsComponent", filePath: "src/SystemDiagnostics/system-diagnostics.component.ts", lineNumber: 1494 }); })();
5850
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SystemDiagnosticsComponent, { className: "SystemDiagnosticsComponent", filePath: "src/SystemDiagnostics/system-diagnostics.component.ts", lineNumber: 1390 }); })();
6106
5851
  //# sourceMappingURL=system-diagnostics.component.js.map