@memberjunction/ng-dashboards 5.34.0 → 5.35.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 (348) 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 +75 -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 +400 -89
  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.js +990 -992
  39. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  40. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +6 -3
  41. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  42. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +493 -490
  43. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  44. package/dist/AI/components/models/model-management.component.d.ts +17 -0
  45. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  46. package/dist/AI/components/models/model-management.component.js +370 -425
  47. package/dist/AI/components/models/model-management.component.js.map +1 -1
  48. package/dist/AI/components/prompts/prompt-management.component.d.ts +17 -0
  49. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  50. package/dist/AI/components/prompts/prompt-management.component.js +317 -357
  51. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  52. package/dist/AI/components/requests/agent-requests-resource.component.d.ts +11 -0
  53. package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
  54. package/dist/AI/components/requests/agent-requests-resource.component.js +170 -175
  55. package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
  56. package/dist/AI/components/system/system-configuration.component.d.ts +19 -0
  57. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  58. package/dist/AI/components/system/system-configuration.component.js +403 -362
  59. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  60. package/dist/AI/components/tags/tags-resource.component.js +781 -783
  61. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  62. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +8 -3
  63. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  64. package/dist/AI/components/vectors/vector-management-resource.component.js +547 -521
  65. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  66. package/dist/Actions/components/actions-overview.component.d.ts +6 -0
  67. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  68. package/dist/Actions/components/actions-overview.component.js +79 -30
  69. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  70. package/dist/Actions/components/execution-monitoring.component.d.ts +9 -3
  71. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  72. package/dist/Actions/components/execution-monitoring.component.js +196 -142
  73. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  74. package/dist/Actions/components/explorer/action-explorer.component.d.ts +41 -1
  75. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  76. package/dist/Actions/components/explorer/action-explorer.component.js +388 -94
  77. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  78. package/dist/Actions/components/explorer/index.d.ts +0 -1
  79. package/dist/Actions/components/explorer/index.d.ts.map +1 -1
  80. package/dist/Actions/components/explorer/index.js +0 -1
  81. package/dist/Actions/components/explorer/index.js.map +1 -1
  82. package/dist/Admin/admin-data-schema.component.js +32 -40
  83. package/dist/Admin/admin-data-schema.component.js.map +1 -1
  84. package/dist/Admin/admin-dev-tools-resource.component.js +32 -40
  85. package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
  86. package/dist/Admin/admin-identity-access.component.js +32 -40
  87. package/dist/Admin/admin-identity-access.component.js.map +1 -1
  88. package/dist/Admin/admin-monitoring.component.js +32 -40
  89. package/dist/Admin/admin-monitoring.component.js.map +1 -1
  90. package/dist/ApplicationRoles/application-roles-resource.component.js +76 -82
  91. package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
  92. package/dist/Archiving/components/archive-config-resource.component.d.ts.map +1 -1
  93. package/dist/Archiving/components/archive-config-resource.component.js +24 -5
  94. package/dist/Archiving/components/archive-config-resource.component.js.map +1 -1
  95. package/dist/Archiving/components/archive-runs-resource.component.d.ts.map +1 -1
  96. package/dist/Archiving/components/archive-runs-resource.component.js +24 -5
  97. package/dist/Archiving/components/archive-runs-resource.component.js.map +1 -1
  98. package/dist/Communication/communication-logs-resource.component.d.ts +1 -1
  99. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  100. package/dist/Communication/communication-logs-resource.component.js +80 -99
  101. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  102. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  103. package/dist/Communication/communication-monitor-resource.component.js +127 -106
  104. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  105. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  106. package/dist/Communication/communication-providers-resource.component.js +44 -45
  107. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  108. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  109. package/dist/Communication/communication-runs-resource.component.js +60 -58
  110. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  111. package/dist/Communication/communication-templates-resource.component.d.ts +1 -1
  112. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  113. package/dist/Communication/communication-templates-resource.component.js +139 -162
  114. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  115. package/dist/Credentials/components/credentials-audit-resource.component.d.ts +7 -0
  116. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  117. package/dist/Credentials/components/credentials-audit-resource.component.js +310 -297
  118. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  119. package/dist/Credentials/components/credentials-categories-resource.component.js +245 -266
  120. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  121. package/dist/Credentials/components/credentials-list-resource.component.d.ts +7 -0
  122. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  123. package/dist/Credentials/components/credentials-list-resource.component.js +381 -399
  124. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  125. package/dist/Credentials/components/credentials-overview-resource.component.js +222 -228
  126. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  127. package/dist/Credentials/components/credentials-types-resource.component.d.ts +6 -0
  128. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  129. package/dist/Credentials/components/credentials-types-resource.component.js +294 -305
  130. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  131. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +8 -0
  132. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -1
  133. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +21 -0
  134. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
  135. package/dist/DatabaseDesigner/components/entity-list.component.js +147 -160
  136. package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
  137. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +1 -1
  138. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
  139. package/dist/DatabaseDesigner/database-designer-dashboards.module.js +19 -1
  140. package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
  141. package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -16
  142. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  143. package/dist/Home/home-dashboard.component.d.ts +6 -0
  144. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  145. package/dist/Home/home-dashboard.component.js +521 -485
  146. package/dist/Home/home-dashboard.component.js.map +1 -1
  147. package/dist/Integration/components/activity/activity.component.d.ts +8 -0
  148. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  149. package/dist/Integration/components/activity/activity.component.js +309 -318
  150. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  151. package/dist/Integration/components/connections/connections.component.js +866 -847
  152. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  153. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +234 -233
  154. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  155. package/dist/Integration/components/overview/overview.component.js +182 -163
  156. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  157. package/dist/Integration/components/pipelines/pipelines.component.d.ts +2 -0
  158. package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
  159. package/dist/Integration/components/pipelines/pipelines.component.js +610 -606
  160. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  161. package/dist/Integration/components/schedules/schedules.component.js +241 -241
  162. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  163. package/dist/Integration/integration.module.d.ts +1 -1
  164. package/dist/Integration/integration.module.d.ts.map +1 -1
  165. package/dist/Integration/integration.module.js +28 -1
  166. package/dist/Integration/integration.module.js.map +1 -1
  167. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +673 -674
  168. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
  169. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +54 -51
  170. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  171. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +745 -703
  172. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  173. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +12 -1
  174. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -1
  175. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +191 -120
  176. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
  177. package/dist/Lists/components/lists-browse-resource.component.d.ts +18 -1
  178. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  179. package/dist/Lists/components/lists-browse-resource.component.js +486 -532
  180. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  181. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  182. package/dist/Lists/components/lists-categories-resource.component.js +152 -160
  183. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  184. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  185. package/dist/Lists/components/lists-my-lists-resource.component.js +302 -319
  186. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  187. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  188. package/dist/Lists/components/lists-operations-resource.component.js +234 -246
  189. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  190. package/dist/MCP/mcp-dashboard.component.d.ts +20 -0
  191. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  192. package/dist/MCP/mcp-dashboard.component.js +1248 -1338
  193. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  194. package/dist/MCP/mcp.module.d.ts +1 -1
  195. package/dist/MCP/mcp.module.d.ts.map +1 -1
  196. package/dist/MCP/mcp.module.js +34 -1
  197. package/dist/MCP/mcp.module.js.map +1 -1
  198. package/dist/Permissions/audit-log-resource.component.js +76 -85
  199. package/dist/Permissions/audit-log-resource.component.js.map +1 -1
  200. package/dist/Permissions/resource-access-resource.component.js +64 -69
  201. package/dist/Permissions/resource-access-resource.component.js.map +1 -1
  202. package/dist/Permissions/user-access-resource.component.js +63 -74
  203. package/dist/Permissions/user-access-resource.component.js.map +1 -1
  204. package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
  205. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  206. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +2 -1
  207. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
  208. package/dist/Scheduling/components/scheduling-activity-resource.component.js +11 -12
  209. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
  210. package/dist/Scheduling/components/scheduling-activity.component.d.ts +9 -1
  211. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
  212. package/dist/Scheduling/components/scheduling-activity.component.js +250 -197
  213. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  214. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +2 -1
  215. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  216. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +11 -12
  217. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  218. package/dist/Scheduling/components/scheduling-jobs.component.d.ts +9 -1
  219. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  220. package/dist/Scheduling/components/scheduling-jobs.component.js +203 -147
  221. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  222. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +2 -1
  223. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
  224. package/dist/Scheduling/components/scheduling-overview-resource.component.js +11 -12
  225. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
  226. package/dist/Scheduling/components/scheduling-overview.component.d.ts +3 -1
  227. package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
  228. package/dist/Scheduling/components/scheduling-overview.component.js +224 -190
  229. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  230. package/dist/Scheduling/scheduling-dashboard.component.d.ts +19 -6
  231. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  232. package/dist/Scheduling/scheduling-dashboard.component.js +262 -104
  233. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  234. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +4 -0
  235. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  236. package/dist/SystemDiagnostics/system-diagnostics.component.js +812 -784
  237. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  238. package/dist/Testing/components/testing-analytics-resource.component.d.ts +2 -1
  239. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  240. package/dist/Testing/components/testing-analytics-resource.component.js +7 -14
  241. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  242. package/dist/Testing/components/testing-analytics.component.d.ts +3 -1
  243. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  244. package/dist/Testing/components/testing-analytics.component.js +420 -393
  245. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  246. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -1
  247. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  248. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +16 -19
  249. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  250. package/dist/Testing/components/testing-dashboard-tab.component.d.ts +3 -1
  251. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
  252. package/dist/Testing/components/testing-dashboard-tab.component.js +157 -122
  253. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  254. package/dist/Testing/components/testing-explorer-resource.component.d.ts +2 -1
  255. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
  256. package/dist/Testing/components/testing-explorer-resource.component.js +7 -12
  257. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
  258. package/dist/Testing/components/testing-explorer.component.d.ts +8 -1
  259. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  260. package/dist/Testing/components/testing-explorer.component.js +587 -608
  261. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  262. package/dist/Testing/components/testing-review-resource.component.d.ts +4 -1
  263. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
  264. package/dist/Testing/components/testing-review-resource.component.js +9 -12
  265. package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
  266. package/dist/Testing/components/testing-review.component.d.ts +3 -1
  267. package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
  268. package/dist/Testing/components/testing-review.component.js +310 -274
  269. package/dist/Testing/components/testing-review.component.js.map +1 -1
  270. package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
  271. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  272. package/dist/Testing/components/testing-runs-resource.component.js +16 -19
  273. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  274. package/dist/Testing/components/testing-runs.component.d.ts +3 -1
  275. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
  276. package/dist/Testing/components/testing-runs.component.js +307 -273
  277. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  278. package/dist/Testing/testing-dashboard.component.d.ts +2 -0
  279. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  280. package/dist/Testing/testing-dashboard.component.js +107 -93
  281. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  282. package/dist/VersionHistory/components/diff-resource.component.js +185 -188
  283. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  284. package/dist/VersionHistory/components/graph-resource.component.js +154 -184
  285. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
  286. package/dist/VersionHistory/components/labels-resource.component.d.ts +7 -0
  287. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
  288. package/dist/VersionHistory/components/labels-resource.component.js +350 -354
  289. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  290. package/dist/VersionHistory/components/restore-resource.component.js +163 -169
  291. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  292. package/dist/actions-dashboards.module.d.ts +15 -16
  293. package/dist/actions-dashboards.module.d.ts.map +1 -1
  294. package/dist/actions-dashboards.module.js +34 -11
  295. package/dist/actions-dashboards.module.js.map +1 -1
  296. package/dist/ai-dashboards.module.d.ts +45 -48
  297. package/dist/ai-dashboards.module.d.ts.map +1 -1
  298. package/dist/ai-dashboards.module.js +36 -10
  299. package/dist/ai-dashboards.module.js.map +1 -1
  300. package/dist/archiving-dashboards.module.d.ts +2 -1
  301. package/dist/archiving-dashboards.module.d.ts.map +1 -1
  302. package/dist/archiving-dashboards.module.js +12 -2
  303. package/dist/archiving-dashboards.module.js.map +1 -1
  304. package/dist/communication-dashboards.module.d.ts +2 -1
  305. package/dist/communication-dashboards.module.d.ts.map +1 -1
  306. package/dist/communication-dashboards.module.js +24 -3
  307. package/dist/communication-dashboards.module.js.map +1 -1
  308. package/dist/core-dashboards.module.d.ts +1 -1
  309. package/dist/core-dashboards.module.d.ts.map +1 -1
  310. package/dist/core-dashboards.module.js +31 -1
  311. package/dist/core-dashboards.module.js.map +1 -1
  312. package/dist/credentials-dashboards.module.d.ts +1 -1
  313. package/dist/credentials-dashboards.module.d.ts.map +1 -1
  314. package/dist/credentials-dashboards.module.js +28 -1
  315. package/dist/credentials-dashboards.module.js.map +1 -1
  316. package/dist/lists-dashboards.module.d.ts +1 -1
  317. package/dist/lists-dashboards.module.d.ts.map +1 -1
  318. package/dist/lists-dashboards.module.js +28 -1
  319. package/dist/lists-dashboards.module.js.map +1 -1
  320. package/dist/public-api.d.ts +2 -2
  321. package/dist/public-api.d.ts.map +1 -1
  322. package/dist/public-api.js +3 -3
  323. package/dist/public-api.js.map +1 -1
  324. package/dist/scheduling-dashboards.module.d.ts +1 -1
  325. package/dist/scheduling-dashboards.module.d.ts.map +1 -1
  326. package/dist/scheduling-dashboards.module.js +31 -1
  327. package/dist/scheduling-dashboards.module.js.map +1 -1
  328. package/dist/testing-dashboards.module.d.ts +8 -7
  329. package/dist/testing-dashboards.module.d.ts.map +1 -1
  330. package/dist/testing-dashboards.module.js +30 -0
  331. package/dist/testing-dashboards.module.js.map +1 -1
  332. package/package.json +52 -52
  333. package/dist/AI/components/agents/agent-filter-panel.component.d.ts +0 -56
  334. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +0 -1
  335. package/dist/AI/components/agents/agent-filter-panel.component.js +0 -285
  336. package/dist/AI/components/agents/agent-filter-panel.component.js.map +0 -1
  337. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts +0 -49
  338. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +0 -1
  339. package/dist/AI/components/prompts/prompt-filter-panel.component.js +0 -184
  340. package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +0 -1
  341. package/dist/AI/components/system/system-config-filter-panel.component.d.ts +0 -33
  342. package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +0 -1
  343. package/dist/AI/components/system/system-config-filter-panel.component.js +0 -144
  344. package/dist/AI/components/system/system-config-filter-panel.component.js.map +0 -1
  345. package/dist/Actions/components/explorer/action-toolbar.component.d.ts +0 -63
  346. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +0 -1
  347. package/dist/Actions/components/explorer/action-toolbar.component.js +0 -463
  348. package/dist/Actions/components/explorer/action-toolbar.component.js.map +0 -1
@@ -12,218 +12,208 @@ import { BaseResourceComponent } from '@memberjunction/ng-shared';
12
12
  import { UserInfoEngine } from '@memberjunction/core-entities';
13
13
  import * as i0 from "@angular/core";
14
14
  import * as i1 from "@angular/common";
15
- import * as i2 from "@angular/forms";
15
+ import * as i2 from "@memberjunction/ng-ui-components";
16
16
  import * as i3 from "@memberjunction/ng-shared-generic";
17
- function VersionHistoryGraphResourceComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
18
- i0.ɵɵelement(0, "mj-loading", 1);
19
- } }
20
- function VersionHistoryGraphResourceComponent_Conditional_2_Conditional_30_For_2_Template(rf, ctx) { if (rf & 1) {
21
- const _r3 = i0.ɵɵgetCurrentView();
22
- i0.ɵɵelementStart(0, "button", 28);
23
- i0.ɵɵlistener("click", function VersionHistoryGraphResourceComponent_Conditional_2_Conditional_30_For_2_Template_button_click_0_listener() { const schema_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnSchemaFilterChange(schema_r4)); });
24
- i0.ɵɵtext(1);
25
- i0.ɵɵelementStart(2, "span", 29);
26
- i0.ɵɵtext(3);
27
- i0.ɵɵelementEnd()();
17
+ function VersionHistoryGraphResourceComponent_Conditional_10_For_1_Template(rf, ctx) { if (rf & 1) {
18
+ const _r1 = i0.ɵɵgetCurrentView();
19
+ i0.ɵɵelementStart(0, "mj-filter-chip", 13);
20
+ i0.ɵɵlistener("Clicked", function VersionHistoryGraphResourceComponent_Conditional_10_For_1_Template_mj_filter_chip_Clicked_0_listener() { const schema_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnSchemaFilterChange(schema_r2)); });
21
+ i0.ɵɵelementEnd();
28
22
  } if (rf & 2) {
29
- const schema_r4 = ctx.$implicit;
30
- const ctx_r1 = i0.ɵɵnextContext(3);
31
- i0.ɵɵclassProp("active", ctx_r1.SchemaFilter === schema_r4);
32
- i0.ɵɵadvance();
33
- i0.ɵɵtextInterpolate1(" ", schema_r4, " ");
34
- i0.ɵɵadvance(2);
35
- i0.ɵɵtextInterpolate(ctx_r1.GetSchemaEntityCount(schema_r4));
23
+ const schema_r2 = ctx.$implicit;
24
+ const ctx_r2 = i0.ɵɵnextContext(2);
25
+ i0.ɵɵproperty("Label", schema_r2)("Count", ctx_r2.GetSchemaEntityCount(schema_r2))("Active", ctx_r2.SchemaFilter === schema_r2);
36
26
  } }
37
- function VersionHistoryGraphResourceComponent_Conditional_2_Conditional_30_Template(rf, ctx) { if (rf & 1) {
38
- i0.ɵɵelementStart(0, "div", 21);
39
- i0.ɵɵrepeaterCreate(1, VersionHistoryGraphResourceComponent_Conditional_2_Conditional_30_For_2_Template, 4, 4, "button", 27, i0.ɵɵrepeaterTrackByIdentity);
40
- i0.ɵɵelementEnd();
27
+ function VersionHistoryGraphResourceComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
28
+ i0.ɵɵrepeaterCreate(0, VersionHistoryGraphResourceComponent_Conditional_10_For_1_Template, 1, 3, "mj-filter-chip", 12, i0.ɵɵrepeaterTrackByIdentity);
41
29
  } if (rf & 2) {
42
- const ctx_r1 = i0.ɵɵnextContext(2);
43
- i0.ɵɵadvance();
44
- i0.ɵɵrepeater(ctx_r1.AvailableSchemas);
30
+ const ctx_r2 = i0.ɵɵnextContext();
31
+ i0.ɵɵrepeater(ctx_r2.AvailableSchemas);
45
32
  } }
46
- function VersionHistoryGraphResourceComponent_Conditional_2_For_33_Conditional_4_Template(rf, ctx) { if (rf & 1) {
47
- i0.ɵɵelementStart(0, "span", 33);
33
+ function VersionHistoryGraphResourceComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
34
+ i0.ɵɵelement(0, "mj-loading", 10);
35
+ } }
36
+ function VersionHistoryGraphResourceComponent_Conditional_13_For_4_Conditional_4_Template(rf, ctx) { if (rf & 1) {
37
+ i0.ɵɵelementStart(0, "span", 23);
48
38
  i0.ɵɵtext(1);
49
- i0.ɵɵelement(2, "i", 35);
39
+ i0.ɵɵelement(2, "i", 25);
50
40
  i0.ɵɵelementEnd();
51
41
  } if (rf & 2) {
52
- const entity_r6 = i0.ɵɵnextContext().$implicit;
53
- const ctx_r1 = i0.ɵɵnextContext(2);
54
- i0.ɵɵproperty("ngClass", ctx_r1.GetDependencyLevel(entity_r6.ReferencedByCount));
42
+ const entity_r5 = i0.ɵɵnextContext().$implicit;
43
+ const ctx_r2 = i0.ɵɵnextContext(2);
44
+ i0.ɵɵproperty("ngClass", ctx_r2.GetDependencyLevel(entity_r5.ReferencedByCount));
55
45
  i0.ɵɵadvance();
56
- i0.ɵɵtextInterpolate1(" ", entity_r6.ReferencedByCount, " ");
46
+ i0.ɵɵtextInterpolate1(" ", entity_r5.ReferencedByCount, " ");
57
47
  } }
58
- function VersionHistoryGraphResourceComponent_Conditional_2_For_33_Conditional_5_Template(rf, ctx) { if (rf & 1) {
59
- i0.ɵɵelementStart(0, "span", 34);
48
+ function VersionHistoryGraphResourceComponent_Conditional_13_For_4_Conditional_5_Template(rf, ctx) { if (rf & 1) {
49
+ i0.ɵɵelementStart(0, "span", 24);
60
50
  i0.ɵɵtext(1);
61
- i0.ɵɵelement(2, "i", 36);
51
+ i0.ɵɵelement(2, "i", 26);
62
52
  i0.ɵɵelementEnd();
63
53
  } if (rf & 2) {
64
- const entity_r6 = i0.ɵɵnextContext().$implicit;
54
+ const entity_r5 = i0.ɵɵnextContext().$implicit;
65
55
  i0.ɵɵadvance();
66
- i0.ɵɵtextInterpolate1(" ", entity_r6.DependsOnCount, " ");
56
+ i0.ɵɵtextInterpolate1(" ", entity_r5.DependsOnCount, " ");
67
57
  } }
68
- function VersionHistoryGraphResourceComponent_Conditional_2_For_33_Template(rf, ctx) { if (rf & 1) {
69
- const _r5 = i0.ɵɵgetCurrentView();
70
- i0.ɵɵelementStart(0, "div", 30);
71
- i0.ɵɵlistener("click", function VersionHistoryGraphResourceComponent_Conditional_2_For_33_Template_div_click_0_listener() { const entity_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.SelectEntity(entity_r6)); });
72
- i0.ɵɵelementStart(1, "div", 31);
58
+ function VersionHistoryGraphResourceComponent_Conditional_13_For_4_Template(rf, ctx) { if (rf & 1) {
59
+ const _r4 = i0.ɵɵgetCurrentView();
60
+ i0.ɵɵelementStart(0, "div", 20);
61
+ i0.ɵɵlistener("click", function VersionHistoryGraphResourceComponent_Conditional_13_For_4_Template_div_click_0_listener() { const entity_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SelectEntity(entity_r5)); });
62
+ i0.ɵɵelementStart(1, "div", 21);
73
63
  i0.ɵɵtext(2);
74
64
  i0.ɵɵelementEnd();
75
- i0.ɵɵelementStart(3, "div", 32);
76
- i0.ɵɵconditionalCreate(4, VersionHistoryGraphResourceComponent_Conditional_2_For_33_Conditional_4_Template, 3, 2, "span", 33);
77
- i0.ɵɵconditionalCreate(5, VersionHistoryGraphResourceComponent_Conditional_2_For_33_Conditional_5_Template, 3, 1, "span", 34);
65
+ i0.ɵɵelementStart(3, "div", 22);
66
+ i0.ɵɵconditionalCreate(4, VersionHistoryGraphResourceComponent_Conditional_13_For_4_Conditional_4_Template, 3, 2, "span", 23);
67
+ i0.ɵɵconditionalCreate(5, VersionHistoryGraphResourceComponent_Conditional_13_For_4_Conditional_5_Template, 3, 1, "span", 24);
78
68
  i0.ɵɵelementEnd()();
79
69
  } if (rf & 2) {
80
- const entity_r6 = ctx.$implicit;
81
- i0.ɵɵclassProp("selected", entity_r6.IsSelected);
70
+ const entity_r5 = ctx.$implicit;
71
+ i0.ɵɵclassProp("selected", entity_r5.IsSelected);
82
72
  i0.ɵɵadvance(2);
83
- i0.ɵɵtextInterpolate(entity_r6.Name);
73
+ i0.ɵɵtextInterpolate(entity_r5.Name);
84
74
  i0.ɵɵadvance(2);
85
- i0.ɵɵconditional(entity_r6.ReferencedByCount > 0 ? 4 : -1);
75
+ i0.ɵɵconditional(entity_r5.ReferencedByCount > 0 ? 4 : -1);
86
76
  i0.ɵɵadvance();
87
- i0.ɵɵconditional(entity_r6.DependsOnCount > 0 ? 5 : -1);
77
+ i0.ɵɵconditional(entity_r5.DependsOnCount > 0 ? 5 : -1);
88
78
  } }
89
- function VersionHistoryGraphResourceComponent_Conditional_2_Conditional_34_Template(rf, ctx) { if (rf & 1) {
90
- i0.ɵɵelementStart(0, "div", 24)(1, "p");
79
+ function VersionHistoryGraphResourceComponent_Conditional_13_Conditional_5_Template(rf, ctx) { if (rf & 1) {
80
+ i0.ɵɵelementStart(0, "div", 17)(1, "p");
91
81
  i0.ɵɵtext(2, "No entities match your search.");
92
82
  i0.ɵɵelementEnd()();
93
83
  } }
94
- function VersionHistoryGraphResourceComponent_Conditional_2_Conditional_36_Conditional_18_For_2_Template(rf, ctx) { if (rf & 1) {
95
- const _r7 = i0.ɵɵgetCurrentView();
96
- i0.ɵɵelementStart(0, "div", 50)(1, "div", 51);
97
- i0.ɵɵlistener("click", function VersionHistoryGraphResourceComponent_Conditional_2_Conditional_36_Conditional_18_For_2_Template_div_click_1_listener() { const rel_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.NavigateToEntity(rel_r8.ToEntity)); });
98
- i0.ɵɵelement(2, "i", 52);
99
- i0.ɵɵelementStart(3, "span", 53);
84
+ function VersionHistoryGraphResourceComponent_Conditional_13_Conditional_7_Conditional_18_For_2_Template(rf, ctx) { if (rf & 1) {
85
+ const _r6 = i0.ɵɵgetCurrentView();
86
+ i0.ɵɵelementStart(0, "div", 40)(1, "div", 41);
87
+ i0.ɵɵlistener("click", function VersionHistoryGraphResourceComponent_Conditional_13_Conditional_7_Conditional_18_For_2_Template_div_click_1_listener() { const rel_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.NavigateToEntity(rel_r7.ToEntity)); });
88
+ i0.ɵɵelement(2, "i", 42);
89
+ i0.ɵɵelementStart(3, "span", 43);
100
90
  i0.ɵɵtext(4);
101
91
  i0.ɵɵelementEnd();
102
- i0.ɵɵelementStart(5, "span", 54);
103
- i0.ɵɵelement(6, "i", 55);
92
+ i0.ɵɵelementStart(5, "span", 44);
93
+ i0.ɵɵelement(6, "i", 45);
104
94
  i0.ɵɵtext(7);
105
95
  i0.ɵɵelementEnd()()();
106
96
  } if (rf & 2) {
107
- const rel_r8 = ctx.$implicit;
97
+ const rel_r7 = ctx.$implicit;
108
98
  i0.ɵɵadvance(4);
109
- i0.ɵɵtextInterpolate(rel_r8.ToEntity);
99
+ i0.ɵɵtextInterpolate(rel_r7.ToEntity);
110
100
  i0.ɵɵadvance(3);
111
- i0.ɵɵtextInterpolate1(" ", rel_r8.RelatedEntityJoinField, " ");
101
+ i0.ɵɵtextInterpolate1(" ", rel_r7.RelatedEntityJoinField, " ");
112
102
  } }
113
- function VersionHistoryGraphResourceComponent_Conditional_2_Conditional_36_Conditional_18_Template(rf, ctx) { if (rf & 1) {
114
- i0.ɵɵelementStart(0, "div", 47);
115
- i0.ɵɵrepeaterCreate(1, VersionHistoryGraphResourceComponent_Conditional_2_Conditional_36_Conditional_18_For_2_Template, 8, 2, "div", 50, i0.ɵɵrepeaterTrackByIdentity);
103
+ function VersionHistoryGraphResourceComponent_Conditional_13_Conditional_7_Conditional_18_Template(rf, ctx) { if (rf & 1) {
104
+ i0.ɵɵelementStart(0, "div", 37);
105
+ i0.ɵɵrepeaterCreate(1, VersionHistoryGraphResourceComponent_Conditional_13_Conditional_7_Conditional_18_For_2_Template, 8, 2, "div", 40, i0.ɵɵrepeaterTrackByIdentity);
116
106
  i0.ɵɵelementEnd();
117
107
  } if (rf & 2) {
118
- const ctx_r1 = i0.ɵɵnextContext(3);
108
+ const ctx_r2 = i0.ɵɵnextContext(3);
119
109
  i0.ɵɵadvance();
120
- i0.ɵɵrepeater(ctx_r1.ReferencedByEntities);
110
+ i0.ɵɵrepeater(ctx_r2.ReferencedByEntities);
121
111
  } }
122
- function VersionHistoryGraphResourceComponent_Conditional_2_Conditional_36_Conditional_19_Template(rf, ctx) { if (rf & 1) {
123
- i0.ɵɵelementStart(0, "div", 48)(1, "p");
112
+ function VersionHistoryGraphResourceComponent_Conditional_13_Conditional_7_Conditional_19_Template(rf, ctx) { if (rf & 1) {
113
+ i0.ɵɵelementStart(0, "div", 38)(1, "p");
124
114
  i0.ɵɵtext(2, "No entities reference this entity.");
125
115
  i0.ɵɵelementEnd()();
126
116
  } }
127
- function VersionHistoryGraphResourceComponent_Conditional_2_Conditional_36_Conditional_31_For_2_Template(rf, ctx) { if (rf & 1) {
128
- const _r9 = i0.ɵɵgetCurrentView();
129
- i0.ɵɵelementStart(0, "div", 50)(1, "div", 51);
130
- i0.ɵɵlistener("click", function VersionHistoryGraphResourceComponent_Conditional_2_Conditional_36_Conditional_31_For_2_Template_div_click_1_listener() { const rel_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.NavigateToEntity(rel_r10.FromEntity)); });
131
- i0.ɵɵelement(2, "i", 52);
132
- i0.ɵɵelementStart(3, "span", 53);
117
+ function VersionHistoryGraphResourceComponent_Conditional_13_Conditional_7_Conditional_31_For_2_Template(rf, ctx) { if (rf & 1) {
118
+ const _r8 = i0.ɵɵgetCurrentView();
119
+ i0.ɵɵelementStart(0, "div", 40)(1, "div", 41);
120
+ i0.ɵɵlistener("click", function VersionHistoryGraphResourceComponent_Conditional_13_Conditional_7_Conditional_31_For_2_Template_div_click_1_listener() { const rel_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.NavigateToEntity(rel_r9.FromEntity)); });
121
+ i0.ɵɵelement(2, "i", 42);
122
+ i0.ɵɵelementStart(3, "span", 43);
133
123
  i0.ɵɵtext(4);
134
124
  i0.ɵɵelementEnd();
135
- i0.ɵɵelementStart(5, "span", 54);
136
- i0.ɵɵelement(6, "i", 55);
125
+ i0.ɵɵelementStart(5, "span", 44);
126
+ i0.ɵɵelement(6, "i", 45);
137
127
  i0.ɵɵtext(7);
138
128
  i0.ɵɵelementEnd()()();
139
129
  } if (rf & 2) {
140
- const rel_r10 = ctx.$implicit;
130
+ const rel_r9 = ctx.$implicit;
141
131
  i0.ɵɵadvance(4);
142
- i0.ɵɵtextInterpolate(rel_r10.FromEntity);
132
+ i0.ɵɵtextInterpolate(rel_r9.FromEntity);
143
133
  i0.ɵɵadvance(3);
144
- i0.ɵɵtextInterpolate1(" ", rel_r10.RelatedEntityJoinField, " ");
134
+ i0.ɵɵtextInterpolate1(" ", rel_r9.RelatedEntityJoinField, " ");
145
135
  } }
146
- function VersionHistoryGraphResourceComponent_Conditional_2_Conditional_36_Conditional_31_Template(rf, ctx) { if (rf & 1) {
147
- i0.ɵɵelementStart(0, "div", 47);
148
- i0.ɵɵrepeaterCreate(1, VersionHistoryGraphResourceComponent_Conditional_2_Conditional_36_Conditional_31_For_2_Template, 8, 2, "div", 50, i0.ɵɵrepeaterTrackByIdentity);
136
+ function VersionHistoryGraphResourceComponent_Conditional_13_Conditional_7_Conditional_31_Template(rf, ctx) { if (rf & 1) {
137
+ i0.ɵɵelementStart(0, "div", 37);
138
+ i0.ɵɵrepeaterCreate(1, VersionHistoryGraphResourceComponent_Conditional_13_Conditional_7_Conditional_31_For_2_Template, 8, 2, "div", 40, i0.ɵɵrepeaterTrackByIdentity);
149
139
  i0.ɵɵelementEnd();
150
140
  } if (rf & 2) {
151
- const ctx_r1 = i0.ɵɵnextContext(3);
141
+ const ctx_r2 = i0.ɵɵnextContext(3);
152
142
  i0.ɵɵadvance();
153
- i0.ɵɵrepeater(ctx_r1.DependsOnEntities);
143
+ i0.ɵɵrepeater(ctx_r2.DependsOnEntities);
154
144
  } }
155
- function VersionHistoryGraphResourceComponent_Conditional_2_Conditional_36_Conditional_32_Template(rf, ctx) { if (rf & 1) {
156
- i0.ɵɵelementStart(0, "div", 48)(1, "p");
145
+ function VersionHistoryGraphResourceComponent_Conditional_13_Conditional_7_Conditional_32_Template(rf, ctx) { if (rf & 1) {
146
+ i0.ɵɵelementStart(0, "div", 38)(1, "p");
157
147
  i0.ɵɵtext(2, "This entity has no foreign key dependencies.");
158
148
  i0.ɵɵelementEnd()();
159
149
  } }
160
- function VersionHistoryGraphResourceComponent_Conditional_2_Conditional_36_Template(rf, ctx) { if (rf & 1) {
161
- i0.ɵɵelementStart(0, "div", 37);
162
- i0.ɵɵelement(1, "i", 38);
163
- i0.ɵɵelementStart(2, "div", 39)(3, "h3", 40);
150
+ function VersionHistoryGraphResourceComponent_Conditional_13_Conditional_7_Template(rf, ctx) { if (rf & 1) {
151
+ i0.ɵɵelementStart(0, "div", 27);
152
+ i0.ɵɵelement(1, "i", 28);
153
+ i0.ɵɵelementStart(2, "div", 29)(3, "h3", 30);
164
154
  i0.ɵɵtext(4);
165
155
  i0.ɵɵelementEnd();
166
- i0.ɵɵelementStart(5, "span", 41);
156
+ i0.ɵɵelementStart(5, "span", 31);
167
157
  i0.ɵɵtext(6);
168
158
  i0.ɵɵelementEnd()()();
169
- i0.ɵɵelementStart(7, "div", 42)(8, "div", 43);
170
- i0.ɵɵelement(9, "i", 44);
159
+ i0.ɵɵelementStart(7, "div", 32)(8, "div", 33);
160
+ i0.ɵɵelement(9, "i", 34);
171
161
  i0.ɵɵelementStart(10, "h4");
172
162
  i0.ɵɵtext(11, "Referenced By");
173
163
  i0.ɵɵelementEnd();
174
- i0.ɵɵelementStart(12, "span", 45);
164
+ i0.ɵɵelementStart(12, "span", 35);
175
165
  i0.ɵɵtext(13);
176
166
  i0.ɵɵelementEnd()();
177
- i0.ɵɵelementStart(14, "p", 46);
167
+ i0.ɵɵelementStart(14, "p", 36);
178
168
  i0.ɵɵtext(15, "Entities that have foreign keys pointing to ");
179
169
  i0.ɵɵelementStart(16, "strong");
180
170
  i0.ɵɵtext(17);
181
171
  i0.ɵɵelementEnd()();
182
- i0.ɵɵconditionalCreate(18, VersionHistoryGraphResourceComponent_Conditional_2_Conditional_36_Conditional_18_Template, 3, 0, "div", 47);
183
- i0.ɵɵconditionalCreate(19, VersionHistoryGraphResourceComponent_Conditional_2_Conditional_36_Conditional_19_Template, 3, 0, "div", 48);
172
+ i0.ɵɵconditionalCreate(18, VersionHistoryGraphResourceComponent_Conditional_13_Conditional_7_Conditional_18_Template, 3, 0, "div", 37);
173
+ i0.ɵɵconditionalCreate(19, VersionHistoryGraphResourceComponent_Conditional_13_Conditional_7_Conditional_19_Template, 3, 0, "div", 38);
184
174
  i0.ɵɵelementEnd();
185
- i0.ɵɵelementStart(20, "div", 42)(21, "div", 43);
186
- i0.ɵɵelement(22, "i", 49);
175
+ i0.ɵɵelementStart(20, "div", 32)(21, "div", 33);
176
+ i0.ɵɵelement(22, "i", 39);
187
177
  i0.ɵɵelementStart(23, "h4");
188
178
  i0.ɵɵtext(24, "Depends On");
189
179
  i0.ɵɵelementEnd();
190
- i0.ɵɵelementStart(25, "span", 45);
180
+ i0.ɵɵelementStart(25, "span", 35);
191
181
  i0.ɵɵtext(26);
192
182
  i0.ɵɵelementEnd()();
193
- i0.ɵɵelementStart(27, "p", 46)(28, "strong");
183
+ i0.ɵɵelementStart(27, "p", 36)(28, "strong");
194
184
  i0.ɵɵtext(29);
195
185
  i0.ɵɵelementEnd();
196
186
  i0.ɵɵtext(30, " has foreign keys pointing to these entities");
197
187
  i0.ɵɵelementEnd();
198
- i0.ɵɵconditionalCreate(31, VersionHistoryGraphResourceComponent_Conditional_2_Conditional_36_Conditional_31_Template, 3, 0, "div", 47);
199
- i0.ɵɵconditionalCreate(32, VersionHistoryGraphResourceComponent_Conditional_2_Conditional_36_Conditional_32_Template, 3, 0, "div", 48);
188
+ i0.ɵɵconditionalCreate(31, VersionHistoryGraphResourceComponent_Conditional_13_Conditional_7_Conditional_31_Template, 3, 0, "div", 37);
189
+ i0.ɵɵconditionalCreate(32, VersionHistoryGraphResourceComponent_Conditional_13_Conditional_7_Conditional_32_Template, 3, 0, "div", 38);
200
190
  i0.ɵɵelementEnd();
201
191
  } if (rf & 2) {
202
- const ctx_r1 = i0.ɵɵnextContext(2);
192
+ const ctx_r2 = i0.ɵɵnextContext(2);
203
193
  i0.ɵɵadvance(4);
204
- i0.ɵɵtextInterpolate(ctx_r1.SelectedEntity.Name);
194
+ i0.ɵɵtextInterpolate(ctx_r2.SelectedEntity.Name);
205
195
  i0.ɵɵadvance(2);
206
- i0.ɵɵtextInterpolate(ctx_r1.SelectedEntity.SchemaName);
196
+ i0.ɵɵtextInterpolate(ctx_r2.SelectedEntity.SchemaName);
207
197
  i0.ɵɵadvance(7);
208
- i0.ɵɵtextInterpolate(ctx_r1.ReferencedByEntities.length);
198
+ i0.ɵɵtextInterpolate(ctx_r2.ReferencedByEntities.length);
209
199
  i0.ɵɵadvance(4);
210
- i0.ɵɵtextInterpolate(ctx_r1.SelectedEntity.Name);
200
+ i0.ɵɵtextInterpolate(ctx_r2.SelectedEntity.Name);
211
201
  i0.ɵɵadvance();
212
- i0.ɵɵconditional(ctx_r1.ReferencedByEntities.length > 0 ? 18 : -1);
202
+ i0.ɵɵconditional(ctx_r2.ReferencedByEntities.length > 0 ? 18 : -1);
213
203
  i0.ɵɵadvance();
214
- i0.ɵɵconditional(ctx_r1.ReferencedByEntities.length === 0 ? 19 : -1);
204
+ i0.ɵɵconditional(ctx_r2.ReferencedByEntities.length === 0 ? 19 : -1);
215
205
  i0.ɵɵadvance(7);
216
- i0.ɵɵtextInterpolate(ctx_r1.DependsOnEntities.length);
206
+ i0.ɵɵtextInterpolate(ctx_r2.DependsOnEntities.length);
217
207
  i0.ɵɵadvance(3);
218
- i0.ɵɵtextInterpolate(ctx_r1.SelectedEntity.Name);
208
+ i0.ɵɵtextInterpolate(ctx_r2.SelectedEntity.Name);
219
209
  i0.ɵɵadvance(2);
220
- i0.ɵɵconditional(ctx_r1.DependsOnEntities.length > 0 ? 31 : -1);
210
+ i0.ɵɵconditional(ctx_r2.DependsOnEntities.length > 0 ? 31 : -1);
221
211
  i0.ɵɵadvance();
222
- i0.ɵɵconditional(ctx_r1.DependsOnEntities.length === 0 ? 32 : -1);
212
+ i0.ɵɵconditional(ctx_r2.DependsOnEntities.length === 0 ? 32 : -1);
223
213
  } }
224
- function VersionHistoryGraphResourceComponent_Conditional_2_Conditional_37_Template(rf, ctx) { if (rf & 1) {
225
- i0.ɵɵelementStart(0, "div", 26);
226
- i0.ɵɵelement(1, "i", 56);
214
+ function VersionHistoryGraphResourceComponent_Conditional_13_Conditional_8_Template(rf, ctx) { if (rf & 1) {
215
+ i0.ɵɵelementStart(0, "div", 19);
216
+ i0.ɵɵelement(1, "i", 46);
227
217
  i0.ɵɵelementStart(2, "h3");
228
218
  i0.ɵɵtext(3, "Select an Entity");
229
219
  i0.ɵɵelementEnd();
@@ -231,67 +221,22 @@ function VersionHistoryGraphResourceComponent_Conditional_2_Conditional_37_Templ
231
221
  i0.ɵɵtext(5, "Choose an entity from the list to explore its dependency relationships.");
232
222
  i0.ɵɵelementEnd()();
233
223
  } }
234
- function VersionHistoryGraphResourceComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
235
- const _r1 = i0.ɵɵgetCurrentView();
236
- i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "h2", 4);
237
- i0.ɵɵtext(3, "Entity Dependency Graph");
238
- i0.ɵɵelementEnd();
239
- i0.ɵɵelementStart(4, "p", 5);
240
- i0.ɵɵtext(5, "Explore entity relationships used by the version history system");
241
- i0.ɵɵelementEnd()();
242
- i0.ɵɵelementStart(6, "div", 6)(7, "button", 7);
243
- i0.ɵɵlistener("click", function VersionHistoryGraphResourceComponent_Conditional_2_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.Refresh()); });
244
- i0.ɵɵelement(8, "i", 8);
245
- i0.ɵɵelementEnd()()();
246
- i0.ɵɵelementStart(9, "div", 9)(10, "div", 10);
247
- i0.ɵɵelement(11, "i", 11);
248
- i0.ɵɵelementStart(12, "span");
249
- i0.ɵɵtext(13);
250
- i0.ɵɵelementEnd()();
251
- i0.ɵɵelementStart(14, "div", 10);
252
- i0.ɵɵelement(15, "i", 12);
253
- i0.ɵɵelementStart(16, "span");
254
- i0.ɵɵtext(17);
255
- i0.ɵɵelementEnd()();
256
- i0.ɵɵelementStart(18, "div", 10);
257
- i0.ɵɵelement(19, "i", 13);
258
- i0.ɵɵelementStart(20, "span");
259
- i0.ɵɵtext(21);
260
- i0.ɵɵelementEnd()()();
261
- i0.ɵɵelementStart(22, "div", 14)(23, "div", 15)(24, "div", 16)(25, "h3", 17);
262
- i0.ɵɵtext(26, "Entities");
224
+ function VersionHistoryGraphResourceComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
225
+ i0.ɵɵelementStart(0, "div", 11)(1, "div", 14)(2, "div", 15);
226
+ i0.ɵɵrepeaterCreate(3, VersionHistoryGraphResourceComponent_Conditional_13_For_4_Template, 6, 5, "div", 16, i0.ɵɵrepeaterTrackByIdentity);
227
+ i0.ɵɵconditionalCreate(5, VersionHistoryGraphResourceComponent_Conditional_13_Conditional_5_Template, 3, 0, "div", 17);
263
228
  i0.ɵɵelementEnd()();
264
- i0.ɵɵelementStart(27, "div", 18);
265
- i0.ɵɵelement(28, "i", 19);
266
- i0.ɵɵelementStart(29, "input", 20);
267
- i0.ɵɵlistener("ngModelChange", function VersionHistoryGraphResourceComponent_Conditional_2_Template_input_ngModelChange_29_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnSearchChange($event)); });
268
- i0.ɵɵelementEnd()();
269
- i0.ɵɵconditionalCreate(30, VersionHistoryGraphResourceComponent_Conditional_2_Conditional_30_Template, 3, 0, "div", 21);
270
- i0.ɵɵelementStart(31, "div", 22);
271
- i0.ɵɵrepeaterCreate(32, VersionHistoryGraphResourceComponent_Conditional_2_For_33_Template, 6, 5, "div", 23, i0.ɵɵrepeaterTrackByIdentity);
272
- i0.ɵɵconditionalCreate(34, VersionHistoryGraphResourceComponent_Conditional_2_Conditional_34_Template, 3, 0, "div", 24);
273
- i0.ɵɵelementEnd()();
274
- i0.ɵɵelementStart(35, "div", 25);
275
- i0.ɵɵconditionalCreate(36, VersionHistoryGraphResourceComponent_Conditional_2_Conditional_36_Template, 33, 10)(37, VersionHistoryGraphResourceComponent_Conditional_2_Conditional_37_Template, 6, 0, "div", 26);
229
+ i0.ɵɵelementStart(6, "div", 18);
230
+ i0.ɵɵconditionalCreate(7, VersionHistoryGraphResourceComponent_Conditional_13_Conditional_7_Template, 33, 10)(8, VersionHistoryGraphResourceComponent_Conditional_13_Conditional_8_Template, 6, 0, "div", 19);
276
231
  i0.ɵɵelementEnd()();
277
232
  } if (rf & 2) {
278
- const ctx_r1 = i0.ɵɵnextContext();
279
- i0.ɵɵadvance(13);
280
- i0.ɵɵtextInterpolate1("", ctx_r1.TotalEntities, " Entities");
281
- i0.ɵɵadvance(4);
282
- i0.ɵɵtextInterpolate1("", ctx_r1.EntitiesWithDependents, " with Dependents");
283
- i0.ɵɵadvance(4);
284
- i0.ɵɵtextInterpolate1("", ctx_r1.TotalRelationships, " Relationships");
285
- i0.ɵɵadvance(8);
286
- i0.ɵɵproperty("ngModel", ctx_r1.SearchText);
287
- i0.ɵɵadvance();
288
- i0.ɵɵconditional(ctx_r1.AvailableSchemas.length > 1 ? 30 : -1);
289
- i0.ɵɵadvance(2);
290
- i0.ɵɵrepeater(ctx_r1.FilteredEntities);
233
+ const ctx_r2 = i0.ɵɵnextContext();
234
+ i0.ɵɵadvance(3);
235
+ i0.ɵɵrepeater(ctx_r2.FilteredEntities);
291
236
  i0.ɵɵadvance(2);
292
- i0.ɵɵconditional(ctx_r1.FilteredEntities.length === 0 ? 34 : -1);
237
+ i0.ɵɵconditional(ctx_r2.FilteredEntities.length === 0 ? 5 : -1);
293
238
  i0.ɵɵadvance(2);
294
- i0.ɵɵconditional(ctx_r1.SelectedEntity ? 36 : 37);
239
+ i0.ɵɵconditional(ctx_r2.SelectedEntity ? 7 : 8);
295
240
  } }
296
241
  let VersionHistoryGraphResourceComponent = class VersionHistoryGraphResourceComponent extends BaseResourceComponent {
297
242
  static { VersionHistoryGraphResourceComponent_1 = this; }
@@ -498,17 +443,42 @@ let VersionHistoryGraphResourceComponent = class VersionHistoryGraphResourceComp
498
443
  this.LoadData();
499
444
  }
500
445
  static ɵfac = function VersionHistoryGraphResourceComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || VersionHistoryGraphResourceComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
501
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: VersionHistoryGraphResourceComponent, selectors: [["mj-version-history-graph-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 2, consts: [[1, "graph-container"], ["text", "Loading dependency graph..."], [1, "page-header"], [1, "header-left"], [1, "page-title"], [1, "page-subtitle"], [1, "header-actions"], ["title", "Refresh", 1, "btn-icon", 3, "click"], [1, "fa-solid", "fa-refresh"], [1, "stats-row"], [1, "stat-badge"], [1, "fa-solid", "fa-table"], [1, "fa-solid", "fa-diagram-project"], [1, "fa-solid", "fa-arrow-right-arrow-left"], [1, "graph-layout"], [1, "entity-list-panel"], [1, "panel-header"], [1, "panel-title"], [1, "search-bar"], [1, "fa-solid", "fa-search", "search-icon"], ["type", "text", "placeholder", "Filter entities...", 1, "search-input", 3, "ngModelChange", "ngModel"], [1, "schema-chips"], [1, "entity-scroll-list"], [1, "entity-list-item", 3, "selected"], [1, "empty-list"], [1, "entity-detail-panel"], [1, "no-selection"], [1, "schema-chip", 3, "active"], [1, "schema-chip", 3, "click"], [1, "schema-chip-count"], [1, "entity-list-item", 3, "click"], [1, "entity-list-name"], [1, "entity-list-badges"], ["title", "Referenced by (entities with FKs to this)", 1, "dep-badge", 3, "ngClass"], ["title", "Depends on (entities this has FKs to)", 1, "dep-badge", "level-depends-on"], [1, "fa-solid", "fa-arrow-down"], [1, "fa-solid", "fa-arrow-up"], [1, "detail-header"], [1, "fa-solid", "fa-table", "detail-icon"], [1, "detail-header-text"], [1, "detail-title"], [1, "detail-schema"], [1, "relationship-section"], [1, "section-header"], [1, "fa-solid", "fa-arrow-down", "section-icon", "referenced-by-icon"], [1, "section-count"], [1, "section-hint"], [1, "relationship-list"], [1, "empty-relationships"], [1, "fa-solid", "fa-arrow-up", "section-icon", "depends-on-icon"], [1, "relationship-item"], [1, "rel-main", 3, "click"], [1, "fa-solid", "fa-table", "rel-icon"], [1, "rel-entity-name"], [1, "rel-join-field"], [1, "fa-solid", "fa-link"], [1, "fa-solid", "fa-diagram-project", "no-selection-icon"]], template: function VersionHistoryGraphResourceComponent_Template(rf, ctx) { if (rf & 1) {
502
- i0.ɵɵelementStart(0, "div", 0);
503
- i0.ɵɵconditionalCreate(1, VersionHistoryGraphResourceComponent_Conditional_1_Template, 1, 0, "mj-loading", 1);
504
- i0.ɵɵconditionalCreate(2, VersionHistoryGraphResourceComponent_Conditional_2_Template, 38, 7);
446
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: VersionHistoryGraphResourceComponent, selectors: [["mj-version-history-graph-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 14, vars: 9, consts: [["Title", "Entity Dependency Graph", "Icon", "fa-solid fa-diagram-project", "Subtitle", "Explore entity relationships used by the version history system"], ["meta", ""], ["Icon", "fa-solid fa-table", "Label", "entities", 3, "Count"], ["Icon", "fa-solid fa-diagram-project", "Label", "with dependents", 3, "Count"], ["Icon", "fa-solid fa-arrow-right-arrow-left", "Label", "relationships", 3, "Count"], ["actions", ""], [3, "Clicked", "Loading"], ["toolbar", ""], ["Placeholder", "Filter entities...", 3, "ValueChange", "Value"], [3, "Flex"], ["text", "Loading dependency graph..."], [1, "graph-layout"], [3, "Label", "Count", "Active"], [3, "Clicked", "Label", "Count", "Active"], [1, "entity-list-panel"], [1, "entity-scroll-list"], [1, "entity-list-item", 3, "selected"], [1, "empty-list"], [1, "entity-detail-panel"], [1, "no-selection"], [1, "entity-list-item", 3, "click"], [1, "entity-list-name"], [1, "entity-list-badges"], ["title", "Referenced by (entities with FKs to this)", 1, "dep-badge", 3, "ngClass"], ["title", "Depends on (entities this has FKs to)", 1, "dep-badge", "level-depends-on"], [1, "fa-solid", "fa-arrow-down"], [1, "fa-solid", "fa-arrow-up"], [1, "detail-header"], [1, "fa-solid", "fa-table", "detail-icon"], [1, "detail-header-text"], [1, "detail-title"], [1, "detail-schema"], [1, "relationship-section"], [1, "section-header"], [1, "fa-solid", "fa-arrow-down", "section-icon", "referenced-by-icon"], [1, "section-count"], [1, "section-hint"], [1, "relationship-list"], [1, "empty-relationships"], [1, "fa-solid", "fa-arrow-up", "section-icon", "depends-on-icon"], [1, "relationship-item"], [1, "rel-main", 3, "click"], [1, "fa-solid", "fa-table", "rel-icon"], [1, "rel-entity-name"], [1, "rel-join-field"], [1, "fa-solid", "fa-link"], [1, "fa-solid", "fa-diagram-project", "no-selection-icon"]], template: function VersionHistoryGraphResourceComponent_Template(rf, ctx) { if (rf & 1) {
447
+ i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 0)(2, "div", 1);
448
+ i0.ɵɵelement(3, "mj-stat-badge", 2)(4, "mj-stat-badge", 3)(5, "mj-stat-badge", 4);
449
+ i0.ɵɵelementEnd();
450
+ i0.ɵɵelementStart(6, "div", 5)(7, "mj-refresh-button", 6);
451
+ i0.ɵɵlistener("Clicked", function VersionHistoryGraphResourceComponent_Template_mj_refresh_button_Clicked_7_listener() { return ctx.Refresh(); });
452
+ i0.ɵɵelementEnd()();
453
+ i0.ɵɵelementStart(8, "div", 7)(9, "mj-page-search", 8);
454
+ i0.ɵɵlistener("ValueChange", function VersionHistoryGraphResourceComponent_Template_mj_page_search_ValueChange_9_listener($event) { return ctx.OnSearchChange($event); });
505
455
  i0.ɵɵelementEnd();
456
+ i0.ɵɵconditionalCreate(10, VersionHistoryGraphResourceComponent_Conditional_10_Template, 2, 0);
457
+ i0.ɵɵelementEnd()();
458
+ i0.ɵɵelementStart(11, "mj-page-body", 9);
459
+ i0.ɵɵconditionalCreate(12, VersionHistoryGraphResourceComponent_Conditional_12_Template, 1, 0, "mj-loading", 10);
460
+ i0.ɵɵconditionalCreate(13, VersionHistoryGraphResourceComponent_Conditional_13_Template, 9, 2, "div", 11);
461
+ i0.ɵɵelementEnd()();
506
462
  } if (rf & 2) {
463
+ i0.ɵɵadvance(3);
464
+ i0.ɵɵproperty("Count", ctx.TotalEntities);
465
+ i0.ɵɵadvance();
466
+ i0.ɵɵproperty("Count", ctx.EntitiesWithDependents);
467
+ i0.ɵɵadvance();
468
+ i0.ɵɵproperty("Count", ctx.TotalRelationships);
469
+ i0.ɵɵadvance(2);
470
+ i0.ɵɵproperty("Loading", ctx.IsLoading);
471
+ i0.ɵɵadvance(2);
472
+ i0.ɵɵproperty("Value", ctx.SearchText);
473
+ i0.ɵɵadvance();
474
+ i0.ɵɵconditional(ctx.AvailableSchemas.length > 1 ? 10 : -1);
475
+ i0.ɵɵadvance();
476
+ i0.ɵɵproperty("Flex", true);
507
477
  i0.ɵɵadvance();
508
- i0.ɵɵconditional(ctx.IsLoading ? 1 : -1);
478
+ i0.ɵɵconditional(ctx.IsLoading ? 12 : -1);
509
479
  i0.ɵɵadvance();
510
- i0.ɵɵconditional(!ctx.IsLoading ? 2 : -1);
511
- } }, dependencies: [i1.NgClass, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, i3.LoadingComponent], styles: [".graph-container[_ngcontent-%COMP%] {\n padding: 24px;\n height: 100%;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n\n\n.page-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 20px;\n}\n\n.header-left[_ngcontent-%COMP%] { flex: 1; }\n\n.page-title[_ngcontent-%COMP%] {\n font-size: 24px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n}\n\n.page-subtitle[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n margin: 0;\n}\n\n.header-actions[_ngcontent-%COMP%] { display: flex; gap: 12px; }\n\n.btn-icon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-secondary);\n}\n\n.btn-icon[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n}\n\n\n\n.stats-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.stat-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 20px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.stat-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n\n\n.graph-layout[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 340px 1fr;\n gap: 20px;\n flex: 1;\n min-height: 0;\n}\n\n\n\n.entity-list-panel[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n display: flex;\n flex-direction: column;\n max-height: calc(100vh - 280px);\n}\n\n.panel-header[_ngcontent-%COMP%] {\n padding: 16px 20px 0;\n}\n\n.panel-title[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n}\n\n.search-bar[_ngcontent-%COMP%] {\n position: relative;\n padding: 12px 16px 8px;\n}\n\n.search-icon[_ngcontent-%COMP%] {\n position: absolute;\n left: 28px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--mj-text-secondary);\n font-size: 13px;\n}\n\n.search-input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px 12px 8px 34px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-strong);\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-primary);\n outline: none;\n box-sizing: border-box;\n}\n\n.search-input[_ngcontent-%COMP%]:focus {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n}\n\n\n\n.schema-chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n padding: 0 16px 10px;\n}\n\n.schema-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 4px 10px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: 14px;\n font-size: 11px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.schema-chip[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 6%, transparent);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.schema-chip.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n.schema-chip-count[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 4px;\n background: color-mix(in srgb, var(--mj-text-primary) 6%, transparent);\n border-radius: 9px;\n font-size: 10px;\n font-weight: 600;\n}\n\n.schema-chip.active[_ngcontent-%COMP%] .schema-chip-count[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.entity-scroll-list[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 0 8px 8px;\n}\n\n.entity-list-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.entity-list-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.entity-list-item.selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, transparent);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.entity-list-name[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1;\n}\n\n.entity-list-badges[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n flex-shrink: 0;\n}\n\n.dep-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.dep-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 9px; }\n\n.level-none[_ngcontent-%COMP%] { display: none; }\n\n.level-low[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n color: var(--mj-status-success);\n}\n\n.level-medium[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 10%, transparent);\n color: var(--mj-status-warning);\n}\n\n.level-high[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 10%, transparent);\n color: var(--mj-status-error);\n}\n\n.level-depends-on[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.empty-list[_ngcontent-%COMP%] {\n padding: 20px;\n text-align: center;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n\n\n.entity-detail-panel[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 24px;\n overflow-y: auto;\n max-height: calc(100vh - 280px);\n}\n\n.detail-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 28px;\n padding-bottom: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.detail-header-text[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.detail-icon[_ngcontent-%COMP%] {\n font-size: 20px;\n color: var(--mj-brand-primary);\n}\n\n.detail-title[_ngcontent-%COMP%] {\n font-size: 20px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0;\n}\n\n.detail-schema[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n\n\n.relationship-section[_ngcontent-%COMP%] {\n margin-bottom: 28px;\n}\n\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 4px;\n}\n\n.section-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n flex: 1;\n}\n\n.section-hint[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin: 0 0 12px 0;\n}\n\n.section-hint[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n}\n\n.section-icon[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.referenced-by-icon[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n.depends-on-icon[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n\n.section-count[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 24px;\n height: 24px;\n padding: 0 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.relationship-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.relationship-item[_ngcontent-%COMP%] {\n border-radius: 8px;\n transition: background 0.15s ease;\n}\n\n.relationship-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.rel-main[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n cursor: pointer;\n}\n\n.rel-icon[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-brand-primary);\n opacity: 0.7;\n flex-shrink: 0;\n}\n\n.rel-entity-name[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.rel-entity-name[_ngcontent-%COMP%]:hover {\n text-decoration: underline;\n}\n\n.rel-join-field[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n color: var(--mj-text-muted);\n font-family: 'SF Mono', 'Fira Code', monospace;\n margin-left: 4px;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 4px;\n}\n\n.rel-join-field[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n opacity: 0.5;\n}\n\n.empty-relationships[_ngcontent-%COMP%] {\n padding: 12px;\n text-align: center;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n\n\n.no-selection[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n height: 100%;\n}\n\n.no-selection-icon[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-text-muted);\n margin-bottom: 16px;\n}\n\n.no-selection[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n}\n\n.no-selection[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n margin: 0;\n max-width: 300px;\n}"], changeDetection: 0 });
480
+ i0.ɵɵconditional(!ctx.IsLoading ? 13 : -1);
481
+ } }, dependencies: [i1.NgClass, i2.MJPageHeaderComponent, i2.MJPageLayoutComponent, i2.MJPageBodyComponent, i2.MJPageSearchComponent, i2.MJFilterChipComponent, i2.MJStatBadgeComponent, i2.MJRefreshButtonComponent, i3.LoadingComponent], styles: ["\n\n.graph-layout[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 340px 1fr;\n gap: 20px;\n flex: 1;\n min-height: 0;\n}\n\n\n\n.entity-list-panel[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n display: flex;\n flex-direction: column;\n max-height: calc(100vh - 280px);\n}\n\n.entity-scroll-list[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 8px;\n}\n\n.entity-list-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.entity-list-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.entity-list-item.selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, transparent);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.entity-list-name[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1;\n}\n\n.entity-list-badges[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n flex-shrink: 0;\n}\n\n.dep-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.dep-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 9px; }\n\n.level-none[_ngcontent-%COMP%] { display: none; }\n\n.level-low[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n color: var(--mj-status-success);\n}\n\n.level-medium[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 10%, transparent);\n color: var(--mj-status-warning);\n}\n\n.level-high[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 10%, transparent);\n color: var(--mj-status-error);\n}\n\n.level-depends-on[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.empty-list[_ngcontent-%COMP%] {\n padding: 20px;\n text-align: center;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n\n\n.entity-detail-panel[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 24px;\n overflow-y: auto;\n max-height: calc(100vh - 280px);\n}\n\n.detail-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 28px;\n padding-bottom: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.detail-header-text[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.detail-icon[_ngcontent-%COMP%] {\n font-size: 20px;\n color: var(--mj-brand-primary);\n}\n\n.detail-title[_ngcontent-%COMP%] {\n font-size: 20px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0;\n}\n\n.detail-schema[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n\n\n.relationship-section[_ngcontent-%COMP%] {\n margin-bottom: 28px;\n}\n\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 4px;\n}\n\n.section-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n flex: 1;\n}\n\n.section-hint[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin: 0 0 12px 0;\n}\n\n.section-hint[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n}\n\n.section-icon[_ngcontent-%COMP%] {\n font-size: 14px;\n}\n\n.referenced-by-icon[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n.depends-on-icon[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n\n.section-count[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 24px;\n height: 24px;\n padding: 0 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.relationship-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.relationship-item[_ngcontent-%COMP%] {\n border-radius: 8px;\n transition: background 0.15s ease;\n}\n\n.relationship-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.rel-main[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n cursor: pointer;\n}\n\n.rel-icon[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-brand-primary);\n opacity: 0.7;\n flex-shrink: 0;\n}\n\n.rel-entity-name[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.rel-entity-name[_ngcontent-%COMP%]:hover {\n text-decoration: underline;\n}\n\n.rel-join-field[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n color: var(--mj-text-muted);\n font-family: 'SF Mono', 'Fira Code', monospace;\n margin-left: 4px;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 4px;\n}\n\n.rel-join-field[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 9px;\n opacity: 0.5;\n}\n\n.empty-relationships[_ngcontent-%COMP%] {\n padding: 12px;\n text-align: center;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n\n\n.no-selection[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n height: 100%;\n}\n\n.no-selection-icon[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-text-muted);\n margin-bottom: 16px;\n}\n\n.no-selection[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n}\n\n.no-selection[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-secondary);\n margin: 0;\n max-width: 300px;\n}"], changeDetection: 0 });
512
482
  };
513
483
  VersionHistoryGraphResourceComponent = VersionHistoryGraphResourceComponent_1 = __decorate([
514
484
  RegisterClass(BaseResourceComponent, 'VersionHistoryGraphResource')
@@ -516,7 +486,7 @@ VersionHistoryGraphResourceComponent = VersionHistoryGraphResourceComponent_1 =
516
486
  export { VersionHistoryGraphResourceComponent };
517
487
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(VersionHistoryGraphResourceComponent, [{
518
488
  type: Component,
519
- args: [{ standalone: false, selector: 'mj-version-history-graph-resource', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"graph-container\">\n @if (IsLoading) {\n <mj-loading text=\"Loading dependency graph...\"></mj-loading>\n }\n\n @if (!IsLoading) {\n <!-- Header -->\n <div class=\"page-header\">\n <div class=\"header-left\">\n <h2 class=\"page-title\">Entity Dependency Graph</h2>\n <p class=\"page-subtitle\">Explore entity relationships used by the version history system</p>\n </div>\n <div class=\"header-actions\">\n <button class=\"btn-icon\" (click)=\"Refresh()\" title=\"Refresh\">\n <i class=\"fa-solid fa-refresh\"></i>\n </button>\n </div>\n </div>\n <!-- Stats Row -->\n <div class=\"stats-row\">\n <div class=\"stat-badge\">\n <i class=\"fa-solid fa-table\"></i>\n <span>{{TotalEntities}} Entities</span>\n </div>\n <div class=\"stat-badge\">\n <i class=\"fa-solid fa-diagram-project\"></i>\n <span>{{EntitiesWithDependents}} with Dependents</span>\n </div>\n <div class=\"stat-badge\">\n <i class=\"fa-solid fa-arrow-right-arrow-left\"></i>\n <span>{{TotalRelationships}} Relationships</span>\n </div>\n </div>\n <!-- Main Layout: Entity List + Detail -->\n <div class=\"graph-layout\">\n <!-- Entity List -->\n <div class=\"entity-list-panel\">\n <div class=\"panel-header\">\n <h3 class=\"panel-title\">Entities</h3>\n </div>\n <div class=\"search-bar\">\n <i class=\"fa-solid fa-search search-icon\"></i>\n <input type=\"text\"\n class=\"search-input\"\n placeholder=\"Filter entities...\"\n [ngModel]=\"SearchText\"\n (ngModelChange)=\"OnSearchChange($event)\" />\n </div>\n <!-- Schema Filter Chips -->\n @if (AvailableSchemas.length > 1) {\n <div class=\"schema-chips\">\n @for (schema of AvailableSchemas; track schema) {\n <button class=\"schema-chip\"\n [class.active]=\"SchemaFilter === schema\"\n (click)=\"OnSchemaFilterChange(schema)\">\n {{schema}}\n <span class=\"schema-chip-count\">{{GetSchemaEntityCount(schema)}}</span>\n </button>\n }\n </div>\n }\n <div class=\"entity-scroll-list\">\n @for (entity of FilteredEntities; track entity) {\n <div class=\"entity-list-item\"\n [class.selected]=\"entity.IsSelected\"\n (click)=\"SelectEntity(entity)\">\n <div class=\"entity-list-name\">{{entity.Name}}</div>\n <div class=\"entity-list-badges\">\n @if (entity.ReferencedByCount > 0) {\n <span class=\"dep-badge\"\n [ngClass]=\"GetDependencyLevel(entity.ReferencedByCount)\"\n title=\"Referenced by (entities with FKs to this)\">\n {{entity.ReferencedByCount}} <i class=\"fa-solid fa-arrow-down\"></i>\n </span>\n }\n @if (entity.DependsOnCount > 0) {\n <span class=\"dep-badge level-depends-on\"\n title=\"Depends on (entities this has FKs to)\">\n {{entity.DependsOnCount}} <i class=\"fa-solid fa-arrow-up\"></i>\n </span>\n }\n </div>\n </div>\n }\n @if (FilteredEntities.length === 0) {\n <div class=\"empty-list\">\n <p>No entities match your search.</p>\n </div>\n }\n </div>\n </div>\n <!-- Detail Panel -->\n <div class=\"entity-detail-panel\">\n @if (SelectedEntity) {\n <div class=\"detail-header\">\n <i class=\"fa-solid fa-table detail-icon\"></i>\n <div class=\"detail-header-text\">\n <h3 class=\"detail-title\">{{SelectedEntity.Name}}</h3>\n <span class=\"detail-schema\">{{SelectedEntity.SchemaName}}</span>\n </div>\n </div>\n <!-- Referenced By (entities that have FKs pointing to this entity) -->\n <div class=\"relationship-section\">\n <div class=\"section-header\">\n <i class=\"fa-solid fa-arrow-down section-icon referenced-by-icon\"></i>\n <h4>Referenced By</h4>\n <span class=\"section-count\">{{ReferencedByEntities.length}}</span>\n </div>\n <p class=\"section-hint\">Entities that have foreign keys pointing to <strong>{{SelectedEntity.Name}}</strong></p>\n @if (ReferencedByEntities.length > 0) {\n <div class=\"relationship-list\">\n @for (rel of ReferencedByEntities; track rel) {\n <div class=\"relationship-item\">\n <div class=\"rel-main\"\n (click)=\"NavigateToEntity(rel.ToEntity)\">\n <i class=\"fa-solid fa-table rel-icon\"></i>\n <span class=\"rel-entity-name\">{{rel.ToEntity}}</span>\n <span class=\"rel-join-field\">\n <i class=\"fa-solid fa-link\"></i>\n {{rel.RelatedEntityJoinField}}\n </span>\n </div>\n </div>\n }\n </div>\n }\n @if (ReferencedByEntities.length === 0) {\n <div class=\"empty-relationships\">\n <p>No entities reference this entity.</p>\n </div>\n }\n </div>\n <!-- Depends On (entities this entity has FKs to) -->\n <div class=\"relationship-section\">\n <div class=\"section-header\">\n <i class=\"fa-solid fa-arrow-up section-icon depends-on-icon\"></i>\n <h4>Depends On</h4>\n <span class=\"section-count\">{{DependsOnEntities.length}}</span>\n </div>\n <p class=\"section-hint\"><strong>{{SelectedEntity.Name}}</strong> has foreign keys pointing to these entities</p>\n @if (DependsOnEntities.length > 0) {\n <div class=\"relationship-list\">\n @for (rel of DependsOnEntities; track rel) {\n <div class=\"relationship-item\">\n <div class=\"rel-main\"\n (click)=\"NavigateToEntity(rel.FromEntity)\">\n <i class=\"fa-solid fa-table rel-icon\"></i>\n <span class=\"rel-entity-name\">{{rel.FromEntity}}</span>\n <span class=\"rel-join-field\">\n <i class=\"fa-solid fa-link\"></i>\n {{rel.RelatedEntityJoinField}}\n </span>\n </div>\n </div>\n }\n </div>\n }\n @if (DependsOnEntities.length === 0) {\n <div class=\"empty-relationships\">\n <p>This entity has no foreign key dependencies.</p>\n </div>\n }\n </div>\n } @else {\n <div class=\"no-selection\">\n <i class=\"fa-solid fa-diagram-project no-selection-icon\"></i>\n <h3>Select an Entity</h3>\n <p>Choose an entity from the list to explore its dependency relationships.</p>\n </div>\n }\n </div>\n </div>\n }\n</div>\n", styles: [".graph-container {\n padding: 24px;\n height: 100%;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n}\n\n/* Header */\n.page-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 20px;\n}\n\n.header-left { flex: 1; }\n\n.page-title {\n font-size: 24px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0 0 4px 0;\n}\n\n.page-subtitle {\n font-size: 14px;\n color: var(--mj-text-secondary);\n margin: 0;\n}\n\n.header-actions { display: flex; gap: 12px; }\n\n.btn-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--mj-text-secondary);\n}\n\n.btn-icon:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n}\n\n/* Stats Row */\n.stats-row {\n display: flex;\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.stat-badge {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 20px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.stat-badge i {\n color: var(--mj-brand-primary);\n}\n\n/* Main Layout */\n.graph-layout {\n display: grid;\n grid-template-columns: 340px 1fr;\n gap: 20px;\n flex: 1;\n min-height: 0;\n}\n\n/* Entity List Panel */\n.entity-list-panel {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n display: flex;\n flex-direction: column;\n max-height: calc(100vh - 280px);\n}\n\n.panel-header {\n padding: 16px 20px 0;\n}\n\n.panel-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n}\n\n.search-bar {\n position: relative;\n padding: 12px 16px 8px;\n}\n\n.search-icon {\n position: absolute;\n left: 28px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--mj-text-secondary);\n font-size: 13px;\n}\n\n.search-input {\n width: 100%;\n padding: 8px 12px 8px 34px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-strong);\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-primary);\n outline: none;\n box-sizing: border-box;\n}\n\n.search-input:focus {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n}\n\n/* Schema Filter Chips */\n.schema-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n padding: 0 16px 10px;\n}\n\n.schema-chip {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 4px 10px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: 14px;\n font-size: 11px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.schema-chip:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 6%, transparent);\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n}\n\n.schema-chip.active {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n}\n\n.schema-chip-count {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 4px;\n background: color-mix(in srgb, var(--mj-text-primary) 6%, transparent);\n border-radius: 9px;\n font-size: 10px;\n font-weight: 600;\n}\n\n.schema-chip.active .schema-chip-count {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.entity-scroll-list {\n flex: 1;\n overflow-y: auto;\n padding: 0 8px 8px;\n}\n\n.entity-list-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.entity-list-item:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.entity-list-item.selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, transparent);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.entity-list-name {\n font-size: 13px;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1;\n}\n\n.entity-list-badges {\n display: flex;\n gap: 4px;\n flex-shrink: 0;\n}\n\n.dep-badge {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.dep-badge i { font-size: 9px; }\n\n.level-none { display: none; }\n\n.level-low {\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n color: var(--mj-status-success);\n}\n\n.level-medium {\n background: color-mix(in srgb, var(--mj-status-warning) 10%, transparent);\n color: var(--mj-status-warning);\n}\n\n.level-high {\n background: color-mix(in srgb, var(--mj-status-error) 10%, transparent);\n color: var(--mj-status-error);\n}\n\n.level-depends-on {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.empty-list {\n padding: 20px;\n text-align: center;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n/* Detail Panel */\n.entity-detail-panel {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 24px;\n overflow-y: auto;\n max-height: calc(100vh - 280px);\n}\n\n.detail-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 28px;\n padding-bottom: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.detail-header-text {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.detail-icon {\n font-size: 20px;\n color: var(--mj-brand-primary);\n}\n\n.detail-title {\n font-size: 20px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0;\n}\n\n.detail-schema {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n/* Relationship Sections */\n.relationship-section {\n margin-bottom: 28px;\n}\n\n.section-header {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 4px;\n}\n\n.section-header h4 {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n flex: 1;\n}\n\n.section-hint {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin: 0 0 12px 0;\n}\n\n.section-hint strong {\n color: var(--mj-text-secondary);\n}\n\n.section-icon {\n font-size: 14px;\n}\n\n.referenced-by-icon { color: var(--mj-status-success); }\n.depends-on-icon { color: var(--mj-brand-primary); }\n\n.section-count {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 24px;\n height: 24px;\n padding: 0 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.relationship-list {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.relationship-item {\n border-radius: 8px;\n transition: background 0.15s ease;\n}\n\n.relationship-item:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.rel-main {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n cursor: pointer;\n}\n\n.rel-icon {\n font-size: 12px;\n color: var(--mj-brand-primary);\n opacity: 0.7;\n flex-shrink: 0;\n}\n\n.rel-entity-name {\n font-size: 14px;\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.rel-entity-name:hover {\n text-decoration: underline;\n}\n\n.rel-join-field {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n color: var(--mj-text-muted);\n font-family: 'SF Mono', 'Fira Code', monospace;\n margin-left: 4px;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 4px;\n}\n\n.rel-join-field i {\n font-size: 9px;\n opacity: 0.5;\n}\n\n.empty-relationships {\n padding: 12px;\n text-align: center;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n/* No Selection */\n.no-selection {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n height: 100%;\n}\n\n.no-selection-icon {\n font-size: 48px;\n color: var(--mj-text-muted);\n margin-bottom: 16px;\n}\n\n.no-selection h3 {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n}\n\n.no-selection p {\n font-size: 14px;\n color: var(--mj-text-secondary);\n margin: 0;\n max-width: 300px;\n}\n"] }]
489
+ args: [{ standalone: false, selector: 'mj-version-history-graph-resource', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mj-page-layout>\n <mj-page-header\n Title=\"Entity Dependency Graph\"\n Icon=\"fa-solid fa-diagram-project\"\n Subtitle=\"Explore entity relationships used by the version history system\">\n <div meta>\n <mj-stat-badge Icon=\"fa-solid fa-table\" [Count]=\"TotalEntities\" Label=\"entities\"></mj-stat-badge>\n <mj-stat-badge Icon=\"fa-solid fa-diagram-project\" [Count]=\"EntitiesWithDependents\" Label=\"with dependents\"></mj-stat-badge>\n <mj-stat-badge Icon=\"fa-solid fa-arrow-right-arrow-left\" [Count]=\"TotalRelationships\" Label=\"relationships\"></mj-stat-badge>\n </div>\n <div actions>\n <mj-refresh-button [Loading]=\"IsLoading\" (Clicked)=\"Refresh()\"></mj-refresh-button>\n </div>\n <div toolbar>\n <mj-page-search\n Placeholder=\"Filter entities...\"\n [Value]=\"SearchText\"\n (ValueChange)=\"OnSearchChange($event)\">\n </mj-page-search>\n @if (AvailableSchemas.length > 1) {\n @for (schema of AvailableSchemas; track schema) {\n <mj-filter-chip\n [Label]=\"schema\"\n [Count]=\"GetSchemaEntityCount(schema)\"\n [Active]=\"SchemaFilter === schema\"\n (Clicked)=\"OnSchemaFilterChange(schema)\">\n </mj-filter-chip>\n }\n }\n </div>\n </mj-page-header>\n\n <mj-page-body [Flex]=\"true\">\n @if (IsLoading) {\n <mj-loading text=\"Loading dependency graph...\"></mj-loading>\n }\n\n @if (!IsLoading) {\n <!-- Main Layout: Entity List + Detail -->\n <div class=\"graph-layout\">\n <!-- Entity List \u2014 page-header [toolbar] owns search + schema chips -->\n <div class=\"entity-list-panel\">\n <div class=\"entity-scroll-list\">\n @for (entity of FilteredEntities; track entity) {\n <div class=\"entity-list-item\"\n [class.selected]=\"entity.IsSelected\"\n (click)=\"SelectEntity(entity)\">\n <div class=\"entity-list-name\">{{entity.Name}}</div>\n <div class=\"entity-list-badges\">\n @if (entity.ReferencedByCount > 0) {\n <span class=\"dep-badge\"\n [ngClass]=\"GetDependencyLevel(entity.ReferencedByCount)\"\n title=\"Referenced by (entities with FKs to this)\">\n {{entity.ReferencedByCount}} <i class=\"fa-solid fa-arrow-down\"></i>\n </span>\n }\n @if (entity.DependsOnCount > 0) {\n <span class=\"dep-badge level-depends-on\"\n title=\"Depends on (entities this has FKs to)\">\n {{entity.DependsOnCount}} <i class=\"fa-solid fa-arrow-up\"></i>\n </span>\n }\n </div>\n </div>\n }\n @if (FilteredEntities.length === 0) {\n <div class=\"empty-list\">\n <p>No entities match your search.</p>\n </div>\n }\n </div>\n </div>\n <!-- Detail Panel -->\n <div class=\"entity-detail-panel\">\n @if (SelectedEntity) {\n <div class=\"detail-header\">\n <i class=\"fa-solid fa-table detail-icon\"></i>\n <div class=\"detail-header-text\">\n <h3 class=\"detail-title\">{{SelectedEntity.Name}}</h3>\n <span class=\"detail-schema\">{{SelectedEntity.SchemaName}}</span>\n </div>\n </div>\n <!-- Referenced By (entities that have FKs pointing to this entity) -->\n <div class=\"relationship-section\">\n <div class=\"section-header\">\n <i class=\"fa-solid fa-arrow-down section-icon referenced-by-icon\"></i>\n <h4>Referenced By</h4>\n <span class=\"section-count\">{{ReferencedByEntities.length}}</span>\n </div>\n <p class=\"section-hint\">Entities that have foreign keys pointing to <strong>{{SelectedEntity.Name}}</strong></p>\n @if (ReferencedByEntities.length > 0) {\n <div class=\"relationship-list\">\n @for (rel of ReferencedByEntities; track rel) {\n <div class=\"relationship-item\">\n <div class=\"rel-main\"\n (click)=\"NavigateToEntity(rel.ToEntity)\">\n <i class=\"fa-solid fa-table rel-icon\"></i>\n <span class=\"rel-entity-name\">{{rel.ToEntity}}</span>\n <span class=\"rel-join-field\">\n <i class=\"fa-solid fa-link\"></i>\n {{rel.RelatedEntityJoinField}}\n </span>\n </div>\n </div>\n }\n </div>\n }\n @if (ReferencedByEntities.length === 0) {\n <div class=\"empty-relationships\">\n <p>No entities reference this entity.</p>\n </div>\n }\n </div>\n <!-- Depends On (entities this entity has FKs to) -->\n <div class=\"relationship-section\">\n <div class=\"section-header\">\n <i class=\"fa-solid fa-arrow-up section-icon depends-on-icon\"></i>\n <h4>Depends On</h4>\n <span class=\"section-count\">{{DependsOnEntities.length}}</span>\n </div>\n <p class=\"section-hint\"><strong>{{SelectedEntity.Name}}</strong> has foreign keys pointing to these entities</p>\n @if (DependsOnEntities.length > 0) {\n <div class=\"relationship-list\">\n @for (rel of DependsOnEntities; track rel) {\n <div class=\"relationship-item\">\n <div class=\"rel-main\"\n (click)=\"NavigateToEntity(rel.FromEntity)\">\n <i class=\"fa-solid fa-table rel-icon\"></i>\n <span class=\"rel-entity-name\">{{rel.FromEntity}}</span>\n <span class=\"rel-join-field\">\n <i class=\"fa-solid fa-link\"></i>\n {{rel.RelatedEntityJoinField}}\n </span>\n </div>\n </div>\n }\n </div>\n }\n @if (DependsOnEntities.length === 0) {\n <div class=\"empty-relationships\">\n <p>This entity has no foreign key dependencies.</p>\n </div>\n }\n </div>\n } @else {\n <div class=\"no-selection\">\n <i class=\"fa-solid fa-diagram-project no-selection-icon\"></i>\n <h3>Select an Entity</h3>\n <p>Choose an entity from the list to explore its dependency relationships.</p>\n </div>\n }\n </div>\n </div>\n }\n </mj-page-body>\n</mj-page-layout>\n", styles: ["/* Main Layout */\n.graph-layout {\n display: grid;\n grid-template-columns: 340px 1fr;\n gap: 20px;\n flex: 1;\n min-height: 0;\n}\n\n/* Entity List Panel */\n.entity-list-panel {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n display: flex;\n flex-direction: column;\n max-height: calc(100vh - 280px);\n}\n\n.entity-scroll-list {\n flex: 1;\n overflow-y: auto;\n padding: 8px;\n}\n\n.entity-list-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.entity-list-item:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.entity-list-item.selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, transparent);\n border-left: 3px solid var(--mj-brand-primary);\n}\n\n.entity-list-name {\n font-size: 13px;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1;\n}\n\n.entity-list-badges {\n display: flex;\n gap: 4px;\n flex-shrink: 0;\n}\n\n.dep-badge {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.dep-badge i { font-size: 9px; }\n\n.level-none { display: none; }\n\n.level-low {\n background: color-mix(in srgb, var(--mj-status-success) 10%, transparent);\n color: var(--mj-status-success);\n}\n\n.level-medium {\n background: color-mix(in srgb, var(--mj-status-warning) 10%, transparent);\n color: var(--mj-status-warning);\n}\n\n.level-high {\n background: color-mix(in srgb, var(--mj-status-error) 10%, transparent);\n color: var(--mj-status-error);\n}\n\n.level-depends-on {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n color: var(--mj-brand-primary);\n}\n\n.empty-list {\n padding: 20px;\n text-align: center;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n/* Detail Panel */\n.entity-detail-panel {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n padding: 24px;\n overflow-y: auto;\n max-height: calc(100vh - 280px);\n}\n\n.detail-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 28px;\n padding-bottom: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n\n.detail-header-text {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.detail-icon {\n font-size: 20px;\n color: var(--mj-brand-primary);\n}\n\n.detail-title {\n font-size: 20px;\n font-weight: 700;\n color: var(--mj-text-primary);\n margin: 0;\n}\n\n.detail-schema {\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n/* Relationship Sections */\n.relationship-section {\n margin-bottom: 28px;\n}\n\n.section-header {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 4px;\n}\n\n.section-header h4 {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0;\n flex: 1;\n}\n\n.section-hint {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin: 0 0 12px 0;\n}\n\n.section-hint strong {\n color: var(--mj-text-secondary);\n}\n\n.section-icon {\n font-size: 14px;\n}\n\n.referenced-by-icon { color: var(--mj-status-success); }\n.depends-on-icon { color: var(--mj-brand-primary); }\n\n.section-count {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 24px;\n height: 24px;\n padding: 0 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.relationship-list {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.relationship-item {\n border-radius: 8px;\n transition: background 0.15s ease;\n}\n\n.relationship-item:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.rel-main {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n cursor: pointer;\n}\n\n.rel-icon {\n font-size: 12px;\n color: var(--mj-brand-primary);\n opacity: 0.7;\n flex-shrink: 0;\n}\n\n.rel-entity-name {\n font-size: 14px;\n color: var(--mj-brand-primary);\n font-weight: 500;\n}\n\n.rel-entity-name:hover {\n text-decoration: underline;\n}\n\n.rel-join-field {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n color: var(--mj-text-muted);\n font-family: 'SF Mono', 'Fira Code', monospace;\n margin-left: 4px;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 4px;\n}\n\n.rel-join-field i {\n font-size: 9px;\n opacity: 0.5;\n}\n\n.empty-relationships {\n padding: 12px;\n text-align: center;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n/* No Selection */\n.no-selection {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n height: 100%;\n}\n\n.no-selection-icon {\n font-size: 48px;\n color: var(--mj-text-muted);\n margin-bottom: 16px;\n}\n\n.no-selection h3 {\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n}\n\n.no-selection p {\n font-size: 14px;\n color: var(--mj-text-secondary);\n margin: 0;\n max-width: 300px;\n}\n"] }]
520
490
  }], () => [{ type: i0.ChangeDetectorRef }], null); })();
521
491
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(VersionHistoryGraphResourceComponent, { className: "VersionHistoryGraphResourceComponent", filePath: "src/VersionHistory/components/graph-resource.component.ts", lineNumber: 35 }); })();
522
492
  //# sourceMappingURL=graph-resource.component.js.map