@memberjunction/ng-dashboards 5.23.0 → 5.25.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 (296) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.d.ts +15 -33
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  3. package/dist/AI/components/agents/agent-configuration.component.js +233 -493
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/agents/agent-editor.component.d.ts +2 -2
  6. package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
  7. package/dist/AI/components/agents/agent-editor.component.js +7 -7
  8. package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
  9. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +717 -8
  10. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  11. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +7166 -1889
  12. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  13. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +50 -4
  14. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  15. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +759 -491
  16. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  17. package/dist/AI/components/execution-monitoring.component.d.ts +4 -5
  18. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  19. package/dist/AI/components/execution-monitoring.component.js +14 -15
  20. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  21. package/dist/AI/components/models/model-management.component.d.ts +4 -4
  22. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  23. package/dist/AI/components/models/model-management.component.js +5 -5
  24. package/dist/AI/components/models/model-management.component.js.map +1 -1
  25. package/dist/AI/components/prompts/prompt-management.component.d.ts +4 -4
  26. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  27. package/dist/AI/components/prompts/prompt-management.component.js +5 -5
  28. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  29. package/dist/AI/components/requests/agent-requests-resource.component.d.ts +2 -1
  30. package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
  31. package/dist/AI/components/requests/agent-requests-resource.component.js +1 -0
  32. package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
  33. package/dist/AI/components/system/system-configuration.component.d.ts +2 -3
  34. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  35. package/dist/AI/components/system/system-configuration.component.js +9 -11
  36. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  37. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +62 -7
  38. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  39. package/dist/AI/components/vectors/vector-management-resource.component.js +825 -359
  40. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  41. package/dist/APIKeys/api-keys-resource.component.d.ts +2 -1
  42. package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
  43. package/dist/APIKeys/api-keys-resource.component.js +2 -0
  44. package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
  45. package/dist/Actions/components/actions-overview.component.d.ts +4 -5
  46. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  47. package/dist/Actions/components/actions-overview.component.js +11 -12
  48. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  49. package/dist/Actions/components/code-management.component.d.ts +2 -3
  50. package/dist/Actions/components/code-management.component.d.ts.map +1 -1
  51. package/dist/Actions/components/code-management.component.js +4 -6
  52. package/dist/Actions/components/code-management.component.js.map +1 -1
  53. package/dist/Actions/components/entity-integration.component.d.ts +2 -3
  54. package/dist/Actions/components/entity-integration.component.d.ts.map +1 -1
  55. package/dist/Actions/components/entity-integration.component.js +4 -6
  56. package/dist/Actions/components/entity-integration.component.js.map +1 -1
  57. package/dist/Actions/components/execution-monitoring.component.d.ts +4 -5
  58. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  59. package/dist/Actions/components/execution-monitoring.component.js +10 -11
  60. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  61. package/dist/Actions/components/explorer/action-explorer.component.d.ts +13 -12
  62. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  63. package/dist/Actions/components/explorer/action-explorer.component.js +39 -66
  64. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  65. package/dist/Actions/components/scheduled-actions.component.d.ts +2 -3
  66. package/dist/Actions/components/scheduled-actions.component.d.ts.map +1 -1
  67. package/dist/Actions/components/scheduled-actions.component.js +4 -6
  68. package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
  69. package/dist/Actions/components/security-permissions.component.d.ts +2 -3
  70. package/dist/Actions/components/security-permissions.component.d.ts.map +1 -1
  71. package/dist/Actions/components/security-permissions.component.js +4 -6
  72. package/dist/Actions/components/security-permissions.component.js.map +1 -1
  73. package/dist/ApplicationRoles/application-roles-resource.component.d.ts +112 -0
  74. package/dist/ApplicationRoles/application-roles-resource.component.d.ts.map +1 -0
  75. package/dist/ApplicationRoles/application-roles-resource.component.js +532 -0
  76. package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -0
  77. package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
  78. package/dist/Communication/communication-dashboard.component.js +1 -0
  79. package/dist/Communication/communication-dashboard.component.js.map +1 -1
  80. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  81. package/dist/Communication/communication-logs-resource.component.js +4 -1
  82. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  83. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  84. package/dist/Communication/communication-monitor-resource.component.js +4 -1
  85. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  86. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  87. package/dist/Communication/communication-providers-resource.component.js +4 -1
  88. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  89. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  90. package/dist/Communication/communication-runs-resource.component.js +4 -1
  91. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  92. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  93. package/dist/Communication/communication-templates-resource.component.js +4 -1
  94. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  95. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +2 -1
  96. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  97. package/dist/ComponentStudio/component-studio-dashboard.component.js +1 -0
  98. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  99. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  100. package/dist/Credentials/components/credentials-audit-resource.component.js +2 -0
  101. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  102. package/dist/Credentials/components/credentials-categories-resource.component.d.ts +2 -3
  103. package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
  104. package/dist/Credentials/components/credentials-categories-resource.component.js +10 -11
  105. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  106. package/dist/Credentials/components/credentials-list-resource.component.d.ts +2 -1
  107. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  108. package/dist/Credentials/components/credentials-list-resource.component.js +2 -0
  109. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  110. package/dist/Credentials/components/credentials-overview-resource.component.d.ts +4 -4
  111. package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
  112. package/dist/Credentials/components/credentials-overview-resource.component.js +8 -9
  113. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  114. package/dist/Credentials/components/credentials-types-resource.component.d.ts +2 -3
  115. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  116. package/dist/Credentials/components/credentials-types-resource.component.js +11 -12
  117. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  118. package/dist/Credentials/credentials-dashboard.component.d.ts.map +1 -1
  119. package/dist/Credentials/credentials-dashboard.component.js +1 -0
  120. package/dist/Credentials/credentials-dashboard.component.js.map +1 -1
  121. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +2 -3
  122. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
  123. package/dist/DashboardBrowser/dashboard-browser-resource.component.js +9 -10
  124. package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
  125. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +2 -2
  126. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts +23 -15
  127. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
  128. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +167 -213
  129. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
  130. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +68 -32
  131. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  132. package/dist/DataExplorer/data-explorer-dashboard.component.js +470 -437
  133. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  134. package/dist/DataExplorer/data-explorer-resource.component.d.ts +10 -3
  135. package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
  136. package/dist/DataExplorer/data-explorer-resource.component.js +35 -11
  137. package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
  138. package/dist/DataExplorer/models/explorer-state.interface.d.ts +12 -3
  139. package/dist/DataExplorer/models/explorer-state.interface.d.ts.map +1 -1
  140. package/dist/DataExplorer/models/explorer-state.interface.js +5 -1
  141. package/dist/DataExplorer/models/explorer-state.interface.js.map +1 -1
  142. package/dist/Home/home-dashboard.component.d.ts +4 -4
  143. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  144. package/dist/Home/home-dashboard.component.js +4 -5
  145. package/dist/Home/home-dashboard.component.js.map +1 -1
  146. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  147. package/dist/Integration/components/activity/activity.component.js +2 -0
  148. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  149. package/dist/Integration/components/connections/connections.component.d.ts.map +1 -1
  150. package/dist/Integration/components/connections/connections.component.js +3 -0
  151. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  152. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.d.ts.map +1 -1
  153. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +2 -0
  154. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  155. package/dist/Integration/components/overview/overview.component.d.ts.map +1 -1
  156. package/dist/Integration/components/overview/overview.component.js +3 -0
  157. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  158. package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
  159. package/dist/Integration/components/pipelines/pipelines.component.js +3 -0
  160. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  161. package/dist/Integration/components/schedules/schedules.component.d.ts.map +1 -1
  162. package/dist/Integration/components/schedules/schedules.component.js +3 -0
  163. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  164. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts +412 -0
  165. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -0
  166. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +4267 -0
  167. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -0
  168. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +39 -4
  169. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -1
  170. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +187 -13
  171. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  172. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +13 -2
  173. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
  174. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +329 -224
  175. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  176. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +76 -0
  177. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -0
  178. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +602 -0
  179. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -0
  180. package/dist/KnowledgeHub/index.d.ts +2 -1
  181. package/dist/KnowledgeHub/index.d.ts.map +1 -1
  182. package/dist/KnowledgeHub/index.js +2 -1
  183. package/dist/KnowledgeHub/index.js.map +1 -1
  184. package/dist/Lists/components/lists-browse-resource.component.d.ts +2 -1
  185. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  186. package/dist/Lists/components/lists-browse-resource.component.js +2 -0
  187. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  188. package/dist/Lists/components/lists-categories-resource.component.d.ts +2 -1
  189. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  190. package/dist/Lists/components/lists-categories-resource.component.js +2 -0
  191. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  192. package/dist/Lists/components/lists-my-lists-resource.component.d.ts +2 -1
  193. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  194. package/dist/Lists/components/lists-my-lists-resource.component.js +2 -0
  195. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  196. package/dist/Lists/components/lists-operations-resource.component.d.ts +2 -1
  197. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  198. package/dist/Lists/components/lists-operations-resource.component.js +2 -0
  199. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  200. package/dist/MCP/mcp-dashboard.component.d.ts +7 -28
  201. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  202. package/dist/MCP/mcp-dashboard.component.js +25 -107
  203. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  204. package/dist/MCP/mcp-resource.component.d.ts.map +1 -1
  205. package/dist/MCP/mcp-resource.component.js +1 -0
  206. package/dist/MCP/mcp-resource.component.js.map +1 -1
  207. package/dist/QueryBrowser/query-browser-resource.component.d.ts +10 -23
  208. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  209. package/dist/QueryBrowser/query-browser-resource.component.js +41 -103
  210. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  211. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
  212. package/dist/Scheduling/components/scheduling-activity-resource.component.js +1 -0
  213. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
  214. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  215. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +1 -0
  216. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  217. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
  218. package/dist/Scheduling/components/scheduling-overview-resource.component.js +1 -0
  219. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
  220. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  221. package/dist/Scheduling/scheduling-dashboard.component.js +1 -0
  222. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  223. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +4 -4
  224. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  225. package/dist/SystemDiagnostics/system-diagnostics.component.js +9 -10
  226. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  227. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  228. package/dist/Testing/components/testing-analytics-resource.component.js +2 -0
  229. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  230. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -1
  231. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  232. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +2 -0
  233. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  234. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
  235. package/dist/Testing/components/testing-explorer-resource.component.js +2 -0
  236. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
  237. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
  238. package/dist/Testing/components/testing-review-resource.component.js +2 -0
  239. package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
  240. package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
  241. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  242. package/dist/Testing/components/testing-runs-resource.component.js +2 -0
  243. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  244. package/dist/Testing/testing-dashboard.component.d.ts +2 -1
  245. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  246. package/dist/Testing/testing-dashboard.component.js +1 -0
  247. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  248. package/dist/VersionHistory/components/diff-resource.component.d.ts +4 -4
  249. package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
  250. package/dist/VersionHistory/components/diff-resource.component.js +9 -10
  251. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  252. package/dist/VersionHistory/components/graph-resource.component.d.ts +2 -1
  253. package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -1
  254. package/dist/VersionHistory/components/graph-resource.component.js +2 -0
  255. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
  256. package/dist/VersionHistory/components/labels-resource.component.d.ts +4 -4
  257. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
  258. package/dist/VersionHistory/components/labels-resource.component.js +10 -11
  259. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  260. package/dist/VersionHistory/components/restore-resource.component.d.ts +2 -1
  261. package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -1
  262. package/dist/VersionHistory/components/restore-resource.component.js +2 -0
  263. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  264. package/dist/__tests__/analytics-resource.test.d.ts +2 -0
  265. package/dist/__tests__/analytics-resource.test.d.ts.map +1 -0
  266. package/dist/__tests__/analytics-resource.test.js +181 -0
  267. package/dist/__tests__/analytics-resource.test.js.map +1 -0
  268. package/dist/__tests__/scheduling.test.d.ts +2 -0
  269. package/dist/__tests__/scheduling.test.d.ts.map +1 -0
  270. package/dist/__tests__/scheduling.test.js +205 -0
  271. package/dist/__tests__/scheduling.test.js.map +1 -0
  272. package/dist/ai-dashboards.module.d.ts +22 -18
  273. package/dist/ai-dashboards.module.d.ts.map +1 -1
  274. package/dist/ai-dashboards.module.js +29 -10
  275. package/dist/ai-dashboards.module.js.map +1 -1
  276. package/dist/core-dashboards.module.d.ts +19 -18
  277. package/dist/core-dashboards.module.d.ts.map +1 -1
  278. package/dist/core-dashboards.module.js +8 -0
  279. package/dist/core-dashboards.module.js.map +1 -1
  280. package/dist/data-explorer-dashboards.module.d.ts +2 -1
  281. package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
  282. package/dist/data-explorer-dashboards.module.js +7 -3
  283. package/dist/data-explorer-dashboards.module.js.map +1 -1
  284. package/dist/public-api.d.ts +2 -1
  285. package/dist/public-api.d.ts.map +1 -1
  286. package/dist/public-api.js +3 -1
  287. package/dist/public-api.js.map +1 -1
  288. package/dist/shared/entity-field-display.d.ts +44 -0
  289. package/dist/shared/entity-field-display.d.ts.map +1 -0
  290. package/dist/shared/entity-field-display.js +118 -0
  291. package/dist/shared/entity-field-display.js.map +1 -0
  292. package/package.json +47 -46
  293. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts +0 -85
  294. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts.map +0 -1
  295. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js +0 -461
  296. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"system-configuration.component.js","sourceRoot":"","sources":["../../../../src/AI/components/system/system-configuration.component.ts","../../../../src/AI/components/system/system-configuration.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, ChangeDetectorRef } from '@angular/core';\nimport { LogError, LogStatus, CompositeKey } from '@memberjunction/core';\nimport { MJAIConfigurationEntity, MJAIConfigurationParamEntity, ResourceData } from '@memberjunction/core-entities';\nimport { AIEngineBase } from '@memberjunction/ai-engine-base';\nimport { RegisterClass , UUIDsEqual } from '@memberjunction/global';\nimport { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';\nimport { MJAIPromptEntityExtended } from '@memberjunction/ai-core-plus';\n\ninterface SystemConfigFilter {\n searchTerm: string;\n status: string;\n isDefault: string;\n}\n\ninterface ConfigurationWithParams extends MJAIConfigurationEntity {\n params?: MJAIConfigurationParamEntity[];\n isExpanded?: boolean;\n compressionPrompt?: MJAIPromptEntityExtended | null;\n summarizationPrompt?: MJAIPromptEntityExtended | null;\n}\n/**\n * AI Configuration Resource - displays AI system configuration management\n * Extends BaseResourceComponent to work with the resource type system\n */\n@RegisterClass(BaseResourceComponent, 'AIConfigResource')\n@Component({\n standalone: false,\n selector: 'app-system-configuration',\n templateUrl: './system-configuration.component.html',\n styleUrls: ['./system-configuration.component.css']\n})\nexport class SystemConfigurationComponent extends BaseResourceComponent implements OnInit {\n\n public isLoading = false;\n public error: string | null = null;\n public filterPanelVisible = true;\n public viewMode: 'grid' | 'list' = 'grid';\n\n public configurations: ConfigurationWithParams[] = [];\n public filteredConfigurations: ConfigurationWithParams[] = [];\n public allParams: MJAIConfigurationParamEntity[] = [];\n public allPrompts: MJAIPromptEntityExtended[] = [];\n\n public currentFilters: SystemConfigFilter = {\n searchTerm: '',\n status: 'all',\n isDefault: 'all'\n };\n\n // Sorting\n public sortColumn: string = 'Name';\n public sortDirection: 'asc' | 'desc' = 'asc';\n\n // Detail panel\n public selectedConfig: ConfigurationWithParams | null = null;\n public detailPanelVisible = false;\n\n // Stats\n public totalConfigs = 0;\n public activeConfigs = 0;\n public defaultConfig: ConfigurationWithParams | null = null;\n\n constructor(\n private navigationService: NavigationService,\n private cdr: ChangeDetectorRef\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.loadData();\n }\n\n public async loadData(): Promise<void> {\n try {\n this.isLoading = true;\n this.error = null;\n this.cdr.detectChanges();\n\n // Ensure AIEngineBase is configured (no-op if already loaded)\n await AIEngineBase.Instance.Config(false);\n\n // Get cached data from AIEngineBase\n const configs = AIEngineBase.Instance.Configurations;\n const params = AIEngineBase.Instance.ConfigurationParams;\n const prompts = AIEngineBase.Instance.Prompts;\n\n // Create extended configurations with associated data\n this.configurations = configs.map(config => {\n const extended = config as ConfigurationWithParams;\n extended.params = params.filter(p => UUIDsEqual(p.ConfigurationID, config.ID));\n extended.isExpanded = false;\n\n // Find linked prompts\n if (config.DefaultPromptForContextCompressionID) {\n extended.compressionPrompt = prompts.find(p => UUIDsEqual(p.ID, config.DefaultPromptForContextCompressionID)) || null;\n }\n if (config.DefaultPromptForContextSummarizationID) {\n extended.summarizationPrompt = prompts.find(p => UUIDsEqual(p.ID, config.DefaultPromptForContextSummarizationID)) || null;\n }\n\n return extended;\n });\n\n this.allParams = params;\n this.allPrompts = prompts;\n\n // Calculate stats\n this.totalConfigs = this.configurations.length;\n this.activeConfigs = this.configurations.filter(c => c.Status === 'Active').length;\n this.defaultConfig = this.configurations.find(c => c.IsDefault) || null;\n\n this.applyFilters();\n LogStatus('AI Configurations loaded successfully');\n } catch (error) {\n this.error = 'Failed to load AI configurations. Please try again.';\n LogError('Error loading AI configurations', undefined, error);\n } finally {\n this.isLoading = false;\n this.NotifyLoadComplete();\n this.cdr.detectChanges();\n }\n }\n\n public toggleFilterPanel(): void {\n this.filterPanelVisible = !this.filterPanelVisible;\n }\n\n public setViewMode(mode: 'grid' | 'list'): void {\n this.viewMode = mode;\n }\n\n public toggleExpanded(config: ConfigurationWithParams): void {\n config.isExpanded = !config.isExpanded;\n }\n\n public onFiltersChange(filters: SystemConfigFilter): void {\n this.currentFilters = { ...filters };\n this.applyFilters();\n }\n\n public onFilterChange(): void {\n this.applyFilters();\n }\n\n public onResetFilters(): void {\n this.currentFilters = {\n searchTerm: '',\n status: 'all',\n isDefault: 'all'\n };\n this.applyFilters();\n }\n\n private applyFilters(): void {\n let filtered = [...this.configurations];\n\n // Apply search filter\n if (this.currentFilters.searchTerm) {\n const searchTerm = this.currentFilters.searchTerm.toLowerCase();\n filtered = filtered.filter(config =>\n config.Name.toLowerCase().includes(searchTerm) ||\n (config.Description || '').toLowerCase().includes(searchTerm) ||\n (config.params?.some(p => p.Name.toLowerCase().includes(searchTerm) ||\n (p.Description || '').toLowerCase().includes(searchTerm)))\n );\n }\n\n // Apply status filter\n if (this.currentFilters.status !== 'all') {\n filtered = filtered.filter(config => config.Status === this.currentFilters.status);\n }\n\n // Apply default configuration filter\n if (this.currentFilters.isDefault !== 'all') {\n const isDefault = this.currentFilters.isDefault === 'true';\n filtered = filtered.filter(config => config.IsDefault === isDefault);\n }\n\n // Apply sorting\n this.filteredConfigurations = this.applySorting(filtered);\n this.cdr.detectChanges();\n }\n\n /**\n * Sort the configurations by the specified column\n */\n public sortBy(column: string): void {\n if (this.sortColumn === column) {\n // Toggle direction if same column\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\n } else {\n // New column, default to ascending\n this.sortColumn = column;\n this.sortDirection = 'asc';\n }\n this.applyFilters();\n }\n\n /**\n * Apply sorting to the filtered list\n */\n private applySorting(configs: ConfigurationWithParams[]): ConfigurationWithParams[] {\n return configs.sort((a, b) => {\n let valueA: string | number | boolean | null | undefined;\n let valueB: string | number | boolean | null | undefined;\n\n switch (this.sortColumn) {\n case 'Name':\n valueA = a.Name;\n valueB = b.Name;\n break;\n case 'Status':\n valueA = a.Status;\n valueB = b.Status;\n break;\n case 'Parameters':\n valueA = a.params?.length || 0;\n valueB = b.params?.length || 0;\n break;\n case 'Updated':\n valueA = a.__mj_UpdatedAt ? new Date(a.__mj_UpdatedAt).getTime() : 0;\n valueB = b.__mj_UpdatedAt ? new Date(b.__mj_UpdatedAt).getTime() : 0;\n break;\n default:\n valueA = a.Name;\n valueB = b.Name;\n }\n\n // Handle numeric comparison\n if (typeof valueA === 'number' && typeof valueB === 'number') {\n const comparison = valueA - valueB;\n return this.sortDirection === 'desc' ? -comparison : comparison;\n }\n\n // Handle string/other comparison\n const strA = (valueA ?? '').toString().toLowerCase();\n const strB = (valueB ?? '').toString().toLowerCase();\n\n const comparison = strA.localeCompare(strB);\n return this.sortDirection === 'desc' ? -comparison : comparison;\n });\n }\n\n public onOpenConfiguration(config: ConfigurationWithParams): void {\n const compositeKey = new CompositeKey([{ FieldName: 'ID', Value: config.ID }]);\n this.navigationService.OpenEntityRecord('MJ: AI Configurations', compositeKey);\n }\n\n public onOpenPrompt(promptId: string): void {\n const compositeKey = new CompositeKey([{ FieldName: 'ID', Value: promptId }]);\n this.navigationService.OpenEntityRecord('MJ: AI Prompts', compositeKey);\n }\n\n public onOpenParam(param: MJAIConfigurationParamEntity): void {\n const compositeKey = new CompositeKey([{ FieldName: 'ID', Value: param.ID }]);\n this.navigationService.OpenEntityRecord('MJ: AI Configuration Params', compositeKey);\n }\n\n /**\n * Show the detail panel for a configuration\n */\n public showConfigDetails(config: ConfigurationWithParams, event?: Event): void {\n if (event) {\n event.stopPropagation();\n }\n this.selectedConfig = config;\n this.detailPanelVisible = true;\n }\n\n /**\n * Close the detail panel\n */\n public closeDetailPanel(): void {\n this.detailPanelVisible = false;\n // Delay clearing selectedConfig for smoother animation\n setTimeout(() => {\n if (!this.detailPanelVisible) {\n this.selectedConfig = null;\n }\n }, 300);\n }\n\n /**\n * Open the full entity record from the detail panel\n */\n public openConfigFromPanel(): void {\n if (this.selectedConfig) {\n this.onOpenConfiguration(this.selectedConfig);\n }\n }\n\n public getStatusClass(status: string): string {\n switch (status) {\n case 'Active': return 'status-active';\n case 'Preview': return 'status-preview';\n case 'Inactive': return 'status-inactive';\n case 'Deprecated': return 'status-deprecated';\n default: return 'status-unknown';\n }\n }\n\n public getStatusIcon(status: string): string {\n switch (status) {\n case 'Active': return 'fa-solid fa-circle-check';\n case 'Preview': return 'fa-solid fa-flask';\n case 'Inactive': return 'fa-solid fa-circle-pause';\n case 'Deprecated': return 'fa-solid fa-triangle-exclamation';\n default: return 'fa-solid fa-circle-question';\n }\n }\n\n public getParamTypeIcon(type: string): string {\n switch (type) {\n case 'string': return 'fa-solid fa-font';\n case 'number': return 'fa-solid fa-hashtag';\n case 'boolean': return 'fa-solid fa-toggle-on';\n case 'date': return 'fa-solid fa-calendar';\n case 'object': return 'fa-solid fa-brackets-curly';\n default: return 'fa-solid fa-code';\n }\n }\n\n public formatParamValue(param: MJAIConfigurationParamEntity): string {\n if (!param.Value) return '(not set)';\n\n switch (param.Type) {\n case 'boolean':\n return param.Value === 'true' ? 'Yes' : 'No';\n case 'object':\n try {\n return JSON.stringify(JSON.parse(param.Value), null, 2).substring(0, 50) + '...';\n } catch {\n return param.Value.substring(0, 50) + '...';\n }\n default:\n return param.Value.length > 50 ? param.Value.substring(0, 50) + '...' : param.Value;\n }\n }\n\n public formatDate(date: Date): string {\n if (!date) return 'N/A';\n return new Date(date).toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit'\n });\n }\n\n // BaseResourceComponent abstract method implementations\n async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'AI Configuration';\n }\n\n async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-sliders';\n }\n}\n","<div class=\"system-configuration-container\">\n <!-- Header -->\n <div class=\"dashboard-header\">\n <div class=\"header-info\">\n <h2 class=\"dashboard-title\">\n <i class=\"fa-solid fa-sliders\"></i>\n AI Configuration\n </h2>\n <button\n type=\"button\"\n class=\"filter-toggle-btn\"\n (click)=\"toggleFilterPanel()\"\n title=\"Toggle Filters\">\n <i class=\"fa-solid fa-filter\"></i>\n @if (filterPanelVisible) {\n Hide Filters\n } @else {\n Show Filters\n }\n </button>\n <span class=\"config-count\">\n {{ filteredConfigurations.length }} of {{ configurations.length }} configurations\n </span>\n </div>\n\n <div class=\"header-controls\">\n <!-- View Toggle -->\n <div class=\"view-toggle\">\n <button\n type=\"button\"\n class=\"view-btn\"\n [class.active]=\"viewMode === 'grid'\"\n (click)=\"setViewMode('grid')\"\n title=\"Grid View\">\n <i class=\"fa-solid fa-grid-2\"></i>\n </button>\n <button\n type=\"button\"\n class=\"view-btn\"\n [class.active]=\"viewMode === 'list'\"\n (click)=\"setViewMode('list')\"\n title=\"List View\">\n <i class=\"fa-solid fa-list\"></i>\n </button>\n </div>\n\n <button\n type=\"button\"\n class=\"control-btn\"\n (click)=\"loadData()\"\n [disabled]=\"isLoading\"\n title=\"Refresh\">\n <i class=\"fa-solid fa-refresh\" [class.fa-spin]=\"isLoading\"></i>\n Refresh\n </button>\n </div>\n </div>\n\n <!-- Main Content with Splitter -->\n <div class=\"main-content\">\n <as-split direction=\"horizontal\" class=\"main-splitter\">\n\n <!-- Filter Panel (Left) -->\n @if (filterPanelVisible) {\n <as-split-area [size]=\"20\" [minSize]=\"15\" [maxSize]=\"30\">\n <mj-system-config-filter-panel\n [configurations]=\"configurations\"\n [filteredConfigurations]=\"filteredConfigurations\"\n [filters]=\"currentFilters\"\n (filtersChange)=\"onFiltersChange($event)\"\n (filterChange)=\"onFilterChange()\"\n (resetFilters)=\"onResetFilters()\"\n (closePanel)=\"toggleFilterPanel()\">\n </mj-system-config-filter-panel>\n </as-split-area>\n }\n\n <!-- Configurations List Panel -->\n <as-split-area>\n <div class=\"configurations-content\">\n <!-- Loading State -->\n @if (isLoading) {\n <div class=\"loading-container\">\n <mj-loading text=\"Loading AI configurations...\" size=\"large\"></mj-loading>\n </div>\n }\n\n <!-- Error State -->\n @if (error && !isLoading) {\n <div class=\"error-container\">\n <p class=\"error-message\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n {{ error }}\n </p>\n </div>\n }\n\n <!-- Configurations Content -->\n @if (!isLoading && !error) {\n @if (filteredConfigurations.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-sliders\"></i>\n <h3>No configurations found</h3>\n <p>No AI configurations match your current filters. Try adjusting your search criteria or create a new configuration.</p>\n </div>\n } @else {\n <!-- Grid View -->\n @if (viewMode === 'grid') {\n <div class=\"configurations-grid\">\n @for (config of filteredConfigurations; track config.ID) {\n <div class=\"config-card\" [class.expanded]=\"config.isExpanded\">\n <!-- Card Header -->\n <div class=\"card-header\" (click)=\"toggleExpanded(config)\">\n <div class=\"config-info\">\n <div class=\"config-icon\">\n <i class=\"fa-solid fa-sliders\"></i>\n </div>\n <div class=\"config-details\">\n <h4 class=\"config-name\">{{ config.Name }}</h4>\n <div class=\"config-meta\">\n @if (config.IsDefault) {\n <span class=\"default-badge\">\n <i class=\"fa-solid fa-star\"></i>\n Default\n </span>\n }\n <span class=\"status-badge\" [ngClass]=\"getStatusClass(config.Status)\">\n <i [class]=\"getStatusIcon(config.Status)\"></i>\n {{ config.Status }}\n </span>\n </div>\n </div>\n </div>\n\n <i class=\"fa-solid fa-chevron-down expand-icon\"\n [class.rotated]=\"config.isExpanded\"></i>\n </div>\n\n <!-- Card Body -->\n <div class=\"card-body\">\n @if (config.Description) {\n <p class=\"config-description\">{{ config.Description }}</p>\n } @else {\n <p class=\"config-description text-muted\">No description provided</p>\n }\n\n <!-- Expanded Content -->\n @if (config.isExpanded) {\n <div class=\"expanded-content\">\n <!-- Stats Grid -->\n <div class=\"config-stats\">\n <div class=\"stat-item\">\n <span class=\"stat-label\">Parameters</span>\n <span class=\"stat-value\">{{ config.params?.length || 0 }}</span>\n </div>\n <div class=\"stat-item\">\n <span class=\"stat-label\">Created</span>\n <span class=\"stat-value\">{{ formatDate(config.__mj_CreatedAt) }}</span>\n </div>\n <div class=\"stat-item\">\n <span class=\"stat-label\">Updated</span>\n <span class=\"stat-value\">{{ formatDate(config.__mj_UpdatedAt) }}</span>\n </div>\n </div>\n\n <!-- Linked Prompts -->\n <div class=\"prompts-section\">\n <h5 class=\"section-title\">\n <i class=\"fa-solid fa-message-lines\"></i>\n Linked Prompts\n </h5>\n <div class=\"prompt-links\">\n @if (config.compressionPrompt) {\n <div class=\"prompt-link\" (click)=\"onOpenPrompt(config.DefaultPromptForContextCompressionID!); $event.stopPropagation()\">\n <div class=\"prompt-link-info\">\n <div class=\"prompt-link-icon\">\n <i class=\"fa-solid fa-compress\"></i>\n </div>\n <div class=\"prompt-link-details\">\n <span class=\"prompt-link-label\">Context Compression</span>\n <span class=\"prompt-link-name\">{{ config.compressionPrompt.Name }}</span>\n </div>\n </div>\n <i class=\"fa-solid fa-arrow-right prompt-link-arrow\"></i>\n </div>\n } @else {\n <div class=\"no-prompt\">No compression prompt configured</div>\n }\n\n @if (config.summarizationPrompt) {\n <div class=\"prompt-link\" (click)=\"onOpenPrompt(config.DefaultPromptForContextSummarizationID!); $event.stopPropagation()\">\n <div class=\"prompt-link-info\">\n <div class=\"prompt-link-icon\">\n <i class=\"fa-solid fa-file-lines\"></i>\n </div>\n <div class=\"prompt-link-details\">\n <span class=\"prompt-link-label\">Context Summarization</span>\n <span class=\"prompt-link-name\">{{ config.summarizationPrompt.Name }}</span>\n </div>\n </div>\n <i class=\"fa-solid fa-arrow-right prompt-link-arrow\"></i>\n </div>\n } @else {\n <div class=\"no-prompt\">No summarization prompt configured</div>\n }\n </div>\n </div>\n\n <!-- Configuration Parameters -->\n @if (config.params && config.params.length > 0) {\n <div class=\"params-section\">\n <h5 class=\"section-title\">\n <i class=\"fa-solid fa-gear\"></i>\n Configuration Parameters\n </h5>\n <div class=\"params-grid\">\n @for (param of config.params; track param.ID) {\n <div class=\"param-item\" (click)=\"onOpenParam(param); $event.stopPropagation()\">\n <div class=\"param-info\">\n <div class=\"param-type-icon\">\n <i [class]=\"getParamTypeIcon(param.Type)\"></i>\n </div>\n <div class=\"param-details\">\n <span class=\"param-name\">{{ param.Name }}</span>\n <span class=\"param-type\">{{ param.Type }}</span>\n </div>\n </div>\n <span class=\"param-value\">{{ formatParamValue(param) }}</span>\n </div>\n }\n </div>\n </div>\n } @else {\n <div class=\"params-section\">\n <h5 class=\"section-title\">\n <i class=\"fa-solid fa-gear\"></i>\n Configuration Parameters\n </h5>\n <div class=\"no-params\">No parameters configured</div>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Card Actions -->\n <div class=\"card-actions\" (click)=\"$event.stopPropagation()\">\n <button\n type=\"button\"\n class=\"action-btn\"\n (click)=\"showConfigDetails(config, $event)\"\n title=\"View Details\">\n <i class=\"fa-solid fa-eye\"></i>\n Details\n </button>\n\n <button\n type=\"button\"\n class=\"action-btn action-btn-primary\"\n (click)=\"onOpenConfiguration(config)\">\n <i class=\"fa-solid fa-edit\"></i>\n Configure\n </button>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- List View -->\n @if (viewMode === 'list') {\n <div class=\"configurations-list\">\n <table class=\"configurations-table\">\n <thead>\n <tr>\n <th (click)=\"sortBy('Name')\"\n [class.sorted]=\"sortColumn === 'Name'\"\n [class.desc]=\"sortColumn === 'Name' && sortDirection === 'desc'\">\n <span class=\"sort-header\">\n Configuration\n <i class=\"fa-solid fa-chevron-up sort-icon\"></i>\n </span>\n </th>\n <th (click)=\"sortBy('Status')\"\n [class.sorted]=\"sortColumn === 'Status'\"\n [class.desc]=\"sortColumn === 'Status' && sortDirection === 'desc'\">\n <span class=\"sort-header\">\n Status\n <i class=\"fa-solid fa-chevron-up sort-icon\"></i>\n </span>\n </th>\n <th (click)=\"sortBy('Parameters')\"\n [class.sorted]=\"sortColumn === 'Parameters'\"\n [class.desc]=\"sortColumn === 'Parameters' && sortDirection === 'desc'\">\n <span class=\"sort-header\">\n Parameters\n <i class=\"fa-solid fa-chevron-up sort-icon\"></i>\n </span>\n </th>\n <th (click)=\"sortBy('Updated')\"\n [class.sorted]=\"sortColumn === 'Updated'\"\n [class.desc]=\"sortColumn === 'Updated' && sortDirection === 'desc'\">\n <span class=\"sort-header\">\n Updated\n <i class=\"fa-solid fa-chevron-up sort-icon\"></i>\n </span>\n </th>\n <th>Actions</th>\n </tr>\n </thead>\n <tbody>\n @for (config of filteredConfigurations; track config.ID) {\n <tr>\n <td>\n <div class=\"config-name-cell\">\n <div class=\"config-icon-small\">\n <i class=\"fa-solid fa-sliders\"></i>\n </div>\n <div>\n <div class=\"config-name-text\">\n {{ config.Name }}\n @if (config.IsDefault) {\n <span class=\"default-badge\" style=\"margin-left: 8px;\">\n <i class=\"fa-solid fa-star\"></i>\n Default\n </span>\n }\n </div>\n @if (config.Description) {\n <div class=\"config-description-small\">{{ config.Description }}</div>\n }\n </div>\n </div>\n </td>\n <td>\n <span class=\"status-badge\" [ngClass]=\"getStatusClass(config.Status)\">\n <i [class]=\"getStatusIcon(config.Status)\"></i>\n {{ config.Status }}\n </span>\n </td>\n <td>{{ config.params?.length || 0 }}</td>\n <td>{{ formatDate(config.__mj_UpdatedAt) }}</td>\n <td>\n <div class=\"table-actions\">\n <button\n type=\"button\"\n class=\"action-btn-small\"\n (click)=\"showConfigDetails(config)\"\n title=\"View Details\">\n <i class=\"fa-solid fa-eye\"></i>\n </button>\n <button\n type=\"button\"\n class=\"action-btn-small primary\"\n (click)=\"onOpenConfiguration(config)\">\n <i class=\"fa-solid fa-edit\"></i>\n </button>\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n }\n }\n </div>\n </as-split-area>\n </as-split>\n </div>\n\n <!-- Detail Panel Overlay -->\n @if (detailPanelVisible) {\n <div class=\"detail-panel-overlay\" (click)=\"closeDetailPanel()\"></div>\n }\n\n <!-- Detail Panel -->\n <div class=\"detail-panel\" [class.visible]=\"detailPanelVisible\">\n @if (selectedConfig) {\n <!-- Panel Header -->\n <div class=\"detail-panel-header\">\n <div class=\"detail-panel-title\">\n <div class=\"detail-icon\">\n <i class=\"fa-solid fa-sliders\"></i>\n </div>\n <div class=\"detail-title-info\">\n <h3>{{ selectedConfig.Name }}</h3>\n <span class=\"detail-subtitle\">AI Configuration</span>\n </div>\n </div>\n <button class=\"detail-panel-close\" (click)=\"closeDetailPanel()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <!-- Panel Content -->\n <div class=\"detail-panel-content\">\n <!-- Status Section -->\n <div class=\"detail-section\">\n <div class=\"detail-badges\">\n <span class=\"status-badge\" [ngClass]=\"getStatusClass(selectedConfig.Status)\">\n <i [class]=\"getStatusIcon(selectedConfig.Status)\"></i>\n {{ selectedConfig.Status }}\n </span>\n @if (selectedConfig.IsDefault) {\n <span class=\"feature-badge default\">\n <i class=\"fa-solid fa-star\"></i>\n Default Configuration\n </span>\n }\n </div>\n </div>\n\n <!-- Description -->\n @if (selectedConfig.Description) {\n <div class=\"detail-section\">\n <h4 class=\"detail-section-title\">\n <i class=\"fa-solid fa-align-left\"></i>\n Description\n </h4>\n <p class=\"detail-description\">{{ selectedConfig.Description }}</p>\n </div>\n }\n\n <!-- Configuration Stats -->\n <div class=\"detail-section\">\n <h4 class=\"detail-section-title\">\n <i class=\"fa-solid fa-chart-bar\"></i>\n Overview\n </h4>\n <div class=\"detail-grid\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Parameters</span>\n <span class=\"detail-value\">{{ selectedConfig.params?.length || 0 }}</span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Status</span>\n <span class=\"detail-value\">{{ selectedConfig.Status }}</span>\n </div>\n </div>\n </div>\n\n <!-- Linked Prompts -->\n <div class=\"detail-section\">\n <h4 class=\"detail-section-title\">\n <i class=\"fa-solid fa-message-lines\"></i>\n Linked Prompts\n </h4>\n <div class=\"detail-grid single-column\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Context Compression</span>\n <span class=\"detail-value\">\n @if (selectedConfig.compressionPrompt) {\n {{ selectedConfig.compressionPrompt.Name }}\n } @else {\n <span class=\"muted\">Not configured</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Context Summarization</span>\n <span class=\"detail-value\">\n @if (selectedConfig.summarizationPrompt) {\n {{ selectedConfig.summarizationPrompt.Name }}\n } @else {\n <span class=\"muted\">Not configured</span>\n }\n </span>\n </div>\n </div>\n </div>\n\n <!-- Parameters Preview -->\n @if (selectedConfig.params && selectedConfig.params.length > 0) {\n <div class=\"detail-section\">\n <h4 class=\"detail-section-title\">\n <i class=\"fa-solid fa-gear\"></i>\n Parameters ({{ selectedConfig.params.length }})\n </h4>\n <div class=\"detail-params-list\">\n @for (param of selectedConfig.params.slice(0, 5); track param.ID) {\n <div class=\"detail-param-item\">\n <div class=\"param-info\">\n <i [class]=\"getParamTypeIcon(param.Type)\"></i>\n <span class=\"param-name\">{{ param.Name }}</span>\n </div>\n <span class=\"param-value\">{{ formatParamValue(param) }}</span>\n </div>\n }\n @if (selectedConfig.params.length > 5) {\n <div class=\"params-more\">\n +{{ selectedConfig.params.length - 5 }} more parameters\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Timestamps -->\n <div class=\"detail-section\">\n <h4 class=\"detail-section-title\">\n <i class=\"fa-solid fa-clock\"></i>\n Timestamps\n </h4>\n <div class=\"detail-grid\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Created</span>\n <span class=\"detail-value\">{{ formatDate(selectedConfig.__mj_CreatedAt) }}</span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Updated</span>\n <span class=\"detail-value\">{{ formatDate(selectedConfig.__mj_UpdatedAt) }}</span>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Panel Actions -->\n <div class=\"detail-panel-actions\">\n <button\n type=\"button\"\n class=\"detail-action-btn primary\"\n (click)=\"openConfigFromPanel()\">\n <i class=\"fa-solid fa-edit\"></i>\n Open Full Record\n </button>\n </div>\n }\n </div>\n</div>\n"]}
1
+ {"version":3,"file":"system-configuration.component.js","sourceRoot":"","sources":["../../../../src/AI/components/system/system-configuration.component.ts","../../../../src/AI/components/system/system-configuration.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, ChangeDetectorRef } from '@angular/core';\nimport { LogError, LogStatus, CompositeKey } from '@memberjunction/core';\nimport { MJAIConfigurationEntity, MJAIConfigurationParamEntity, ResourceData } from '@memberjunction/core-entities';\nimport { AIEngineBase } from '@memberjunction/ai-engine-base';\nimport { RegisterClass , UUIDsEqual } from '@memberjunction/global';\nimport { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';\nimport { MJAIPromptEntityExtended } from '@memberjunction/ai-core-plus';\n\ninterface SystemConfigFilter {\n searchTerm: string;\n status: string;\n isDefault: string;\n}\n\ninterface ConfigurationWithParams extends MJAIConfigurationEntity {\n params?: MJAIConfigurationParamEntity[];\n isExpanded?: boolean;\n compressionPrompt?: MJAIPromptEntityExtended | null;\n summarizationPrompt?: MJAIPromptEntityExtended | null;\n}\n/**\n * AI Configuration Resource - displays AI system configuration management\n * Extends BaseResourceComponent to work with the resource type system\n */\n@RegisterClass(BaseResourceComponent, 'AIConfigResource')\n@Component({\n standalone: false,\n selector: 'app-system-configuration',\n templateUrl: './system-configuration.component.html',\n styleUrls: ['./system-configuration.component.css']\n})\nexport class SystemConfigurationComponent extends BaseResourceComponent implements OnInit {\n\n public isLoading = false;\n public error: string | null = null;\n public filterPanelVisible = true;\n public viewMode: 'grid' | 'list' = 'grid';\n\n public configurations: ConfigurationWithParams[] = [];\n public filteredConfigurations: ConfigurationWithParams[] = [];\n public allParams: MJAIConfigurationParamEntity[] = [];\n public allPrompts: MJAIPromptEntityExtended[] = [];\n\n public currentFilters: SystemConfigFilter = {\n searchTerm: '',\n status: 'all',\n isDefault: 'all'\n };\n\n // Sorting\n public sortColumn: string = 'Name';\n public sortDirection: 'asc' | 'desc' = 'asc';\n\n // Detail panel\n public selectedConfig: ConfigurationWithParams | null = null;\n public detailPanelVisible = false;\n\n // Stats\n public totalConfigs = 0;\n public activeConfigs = 0;\n public defaultConfig: ConfigurationWithParams | null = null;\n\n constructor(\n private cdr: ChangeDetectorRef\n ) {\n super();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.loadData();\n }\n\n public async loadData(): Promise<void> {\n try {\n this.isLoading = true;\n this.error = null;\n this.cdr.detectChanges();\n\n // Ensure AIEngineBase is configured (no-op if already loaded)\n await AIEngineBase.Instance.Config(false);\n\n // Get cached data from AIEngineBase\n const configs = AIEngineBase.Instance.Configurations;\n const params = AIEngineBase.Instance.ConfigurationParams;\n const prompts = AIEngineBase.Instance.Prompts;\n\n // Create extended configurations with associated data\n this.configurations = configs.map(config => {\n const extended = config as ConfigurationWithParams;\n extended.params = params.filter(p => UUIDsEqual(p.ConfigurationID, config.ID));\n extended.isExpanded = false;\n\n // Find linked prompts\n if (config.DefaultPromptForContextCompressionID) {\n extended.compressionPrompt = prompts.find(p => UUIDsEqual(p.ID, config.DefaultPromptForContextCompressionID)) || null;\n }\n if (config.DefaultPromptForContextSummarizationID) {\n extended.summarizationPrompt = prompts.find(p => UUIDsEqual(p.ID, config.DefaultPromptForContextSummarizationID)) || null;\n }\n\n return extended;\n });\n\n this.allParams = params;\n this.allPrompts = prompts;\n\n // Calculate stats\n this.totalConfigs = this.configurations.length;\n this.activeConfigs = this.configurations.filter(c => c.Status === 'Active').length;\n this.defaultConfig = this.configurations.find(c => c.IsDefault) || null;\n\n this.applyFilters();\n LogStatus('AI Configurations loaded successfully');\n } catch (error) {\n this.error = 'Failed to load AI configurations. Please try again.';\n LogError('Error loading AI configurations', undefined, error);\n } finally {\n this.isLoading = false;\n this.NotifyLoadComplete();\n this.cdr.detectChanges();\n }\n }\n\n public toggleFilterPanel(): void {\n this.filterPanelVisible = !this.filterPanelVisible;\n }\n\n public setViewMode(mode: 'grid' | 'list'): void {\n this.viewMode = mode;\n }\n\n public toggleExpanded(config: ConfigurationWithParams): void {\n config.isExpanded = !config.isExpanded;\n }\n\n public onFiltersChange(filters: SystemConfigFilter): void {\n this.currentFilters = { ...filters };\n this.applyFilters();\n }\n\n public onFilterChange(): void {\n this.applyFilters();\n }\n\n public onResetFilters(): void {\n this.currentFilters = {\n searchTerm: '',\n status: 'all',\n isDefault: 'all'\n };\n this.applyFilters();\n }\n\n private applyFilters(): void {\n let filtered = [...this.configurations];\n\n // Apply search filter\n if (this.currentFilters.searchTerm) {\n const searchTerm = this.currentFilters.searchTerm.toLowerCase();\n filtered = filtered.filter(config =>\n config.Name.toLowerCase().includes(searchTerm) ||\n (config.Description || '').toLowerCase().includes(searchTerm) ||\n (config.params?.some(p => p.Name.toLowerCase().includes(searchTerm) ||\n (p.Description || '').toLowerCase().includes(searchTerm)))\n );\n }\n\n // Apply status filter\n if (this.currentFilters.status !== 'all') {\n filtered = filtered.filter(config => config.Status === this.currentFilters.status);\n }\n\n // Apply default configuration filter\n if (this.currentFilters.isDefault !== 'all') {\n const isDefault = this.currentFilters.isDefault === 'true';\n filtered = filtered.filter(config => config.IsDefault === isDefault);\n }\n\n // Apply sorting\n this.filteredConfigurations = this.applySorting(filtered);\n this.cdr.detectChanges();\n }\n\n /**\n * Sort the configurations by the specified column\n */\n public sortBy(column: string): void {\n if (this.sortColumn === column) {\n // Toggle direction if same column\n this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';\n } else {\n // New column, default to ascending\n this.sortColumn = column;\n this.sortDirection = 'asc';\n }\n this.applyFilters();\n }\n\n /**\n * Apply sorting to the filtered list\n */\n private applySorting(configs: ConfigurationWithParams[]): ConfigurationWithParams[] {\n return configs.sort((a, b) => {\n let valueA: string | number | boolean | null | undefined;\n let valueB: string | number | boolean | null | undefined;\n\n switch (this.sortColumn) {\n case 'Name':\n valueA = a.Name;\n valueB = b.Name;\n break;\n case 'Status':\n valueA = a.Status;\n valueB = b.Status;\n break;\n case 'Parameters':\n valueA = a.params?.length || 0;\n valueB = b.params?.length || 0;\n break;\n case 'Updated':\n valueA = a.__mj_UpdatedAt ? new Date(a.__mj_UpdatedAt).getTime() : 0;\n valueB = b.__mj_UpdatedAt ? new Date(b.__mj_UpdatedAt).getTime() : 0;\n break;\n default:\n valueA = a.Name;\n valueB = b.Name;\n }\n\n // Handle numeric comparison\n if (typeof valueA === 'number' && typeof valueB === 'number') {\n const comparison = valueA - valueB;\n return this.sortDirection === 'desc' ? -comparison : comparison;\n }\n\n // Handle string/other comparison\n const strA = (valueA ?? '').toString().toLowerCase();\n const strB = (valueB ?? '').toString().toLowerCase();\n\n const comparison = strA.localeCompare(strB);\n return this.sortDirection === 'desc' ? -comparison : comparison;\n });\n }\n\n public onOpenConfiguration(config: ConfigurationWithParams): void {\n const compositeKey = new CompositeKey([{ FieldName: 'ID', Value: config.ID }]);\n this.navigationService.OpenEntityRecord('MJ: AI Configurations', compositeKey);\n }\n\n public onOpenPrompt(promptId: string): void {\n const compositeKey = new CompositeKey([{ FieldName: 'ID', Value: promptId }]);\n this.navigationService.OpenEntityRecord('MJ: AI Prompts', compositeKey);\n }\n\n public onOpenParam(param: MJAIConfigurationParamEntity): void {\n const compositeKey = new CompositeKey([{ FieldName: 'ID', Value: param.ID }]);\n this.navigationService.OpenEntityRecord('MJ: AI Configuration Params', compositeKey);\n }\n\n /**\n * Show the detail panel for a configuration\n */\n public showConfigDetails(config: ConfigurationWithParams, event?: Event): void {\n if (event) {\n event.stopPropagation();\n }\n this.selectedConfig = config;\n this.detailPanelVisible = true;\n }\n\n /**\n * Close the detail panel\n */\n public closeDetailPanel(): void {\n this.detailPanelVisible = false;\n // Delay clearing selectedConfig for smoother animation\n setTimeout(() => {\n if (!this.detailPanelVisible) {\n this.selectedConfig = null;\n }\n }, 300);\n }\n\n /**\n * Open the full entity record from the detail panel\n */\n public openConfigFromPanel(): void {\n if (this.selectedConfig) {\n this.onOpenConfiguration(this.selectedConfig);\n }\n }\n\n public getStatusClass(status: string): string {\n switch (status) {\n case 'Active': return 'status-active';\n case 'Preview': return 'status-preview';\n case 'Inactive': return 'status-inactive';\n case 'Deprecated': return 'status-deprecated';\n default: return 'status-unknown';\n }\n }\n\n public getStatusIcon(status: string): string {\n switch (status) {\n case 'Active': return 'fa-solid fa-circle-check';\n case 'Preview': return 'fa-solid fa-flask';\n case 'Inactive': return 'fa-solid fa-circle-pause';\n case 'Deprecated': return 'fa-solid fa-triangle-exclamation';\n default: return 'fa-solid fa-circle-question';\n }\n }\n\n public getParamTypeIcon(type: string): string {\n switch (type) {\n case 'string': return 'fa-solid fa-font';\n case 'number': return 'fa-solid fa-hashtag';\n case 'boolean': return 'fa-solid fa-toggle-on';\n case 'date': return 'fa-solid fa-calendar';\n case 'object': return 'fa-solid fa-brackets-curly';\n default: return 'fa-solid fa-code';\n }\n }\n\n public formatParamValue(param: MJAIConfigurationParamEntity): string {\n if (!param.Value) return '(not set)';\n\n switch (param.Type) {\n case 'boolean':\n return param.Value === 'true' ? 'Yes' : 'No';\n case 'object':\n try {\n return JSON.stringify(JSON.parse(param.Value), null, 2).substring(0, 50) + '...';\n } catch {\n return param.Value.substring(0, 50) + '...';\n }\n default:\n return param.Value.length > 50 ? param.Value.substring(0, 50) + '...' : param.Value;\n }\n }\n\n public formatDate(date: Date): string {\n if (!date) return 'N/A';\n return new Date(date).toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit'\n });\n }\n\n // BaseResourceComponent abstract method implementations\n async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'AI Configuration';\n }\n\n async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-sliders';\n }\n}\n","<div class=\"system-configuration-container\">\n <!-- Header -->\n <div class=\"dashboard-header\">\n <div class=\"header-info\">\n <h2 class=\"dashboard-title\">\n <i class=\"fa-solid fa-sliders\"></i>\n AI Configuration\n </h2>\n <button\n type=\"button\"\n class=\"filter-toggle-btn\"\n (click)=\"toggleFilterPanel()\"\n title=\"Toggle Filters\">\n <i class=\"fa-solid fa-filter\"></i>\n @if (filterPanelVisible) {\n Hide Filters\n } @else {\n Show Filters\n }\n </button>\n <span class=\"config-count\">\n {{ filteredConfigurations.length }} of {{ configurations.length }} configurations\n </span>\n </div>\n\n <div class=\"header-controls\">\n <!-- View Toggle -->\n <div class=\"view-toggle\">\n <button\n type=\"button\"\n class=\"view-btn\"\n [class.active]=\"viewMode === 'grid'\"\n (click)=\"setViewMode('grid')\"\n title=\"Grid View\">\n <i class=\"fa-solid fa-grid-2\"></i>\n </button>\n <button\n type=\"button\"\n class=\"view-btn\"\n [class.active]=\"viewMode === 'list'\"\n (click)=\"setViewMode('list')\"\n title=\"List View\">\n <i class=\"fa-solid fa-list\"></i>\n </button>\n </div>\n\n <button\n type=\"button\"\n class=\"control-btn\"\n (click)=\"loadData()\"\n [disabled]=\"isLoading\"\n title=\"Refresh\">\n <i class=\"fa-solid fa-refresh\" [class.fa-spin]=\"isLoading\"></i>\n Refresh\n </button>\n </div>\n </div>\n\n <!-- Main Content with Splitter -->\n <div class=\"main-content\">\n <as-split direction=\"horizontal\" class=\"main-splitter\">\n\n <!-- Filter Panel (Left) -->\n @if (filterPanelVisible) {\n <as-split-area [size]=\"20\" [minSize]=\"15\" [maxSize]=\"30\">\n <mj-system-config-filter-panel\n [configurations]=\"configurations\"\n [filteredConfigurations]=\"filteredConfigurations\"\n [filters]=\"currentFilters\"\n (filtersChange)=\"onFiltersChange($event)\"\n (filterChange)=\"onFilterChange()\"\n (resetFilters)=\"onResetFilters()\"\n (closePanel)=\"toggleFilterPanel()\">\n </mj-system-config-filter-panel>\n </as-split-area>\n }\n\n <!-- Configurations List Panel -->\n <as-split-area>\n <div class=\"configurations-content\">\n <!-- Loading State -->\n @if (isLoading) {\n <div class=\"loading-container\">\n <mj-loading text=\"Loading AI configurations...\" size=\"large\"></mj-loading>\n </div>\n }\n\n <!-- Error State -->\n @if (error && !isLoading) {\n <div class=\"error-container\">\n <p class=\"error-message\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n {{ error }}\n </p>\n </div>\n }\n\n <!-- Configurations Content -->\n @if (!isLoading && !error) {\n @if (filteredConfigurations.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-sliders\"></i>\n <h3>No configurations found</h3>\n <p>No AI configurations match your current filters. Try adjusting your search criteria or create a new configuration.</p>\n </div>\n } @else {\n <!-- Grid View -->\n @if (viewMode === 'grid') {\n <div class=\"configurations-grid\">\n @for (config of filteredConfigurations; track config.ID) {\n <div class=\"config-card\" [class.expanded]=\"config.isExpanded\">\n <!-- Card Header -->\n <div class=\"card-header\" (click)=\"toggleExpanded(config)\">\n <div class=\"config-info\">\n <div class=\"config-icon\">\n <i class=\"fa-solid fa-sliders\"></i>\n </div>\n <div class=\"config-details\">\n <h4 class=\"config-name\">{{ config.Name }}</h4>\n <div class=\"config-meta\">\n @if (config.IsDefault) {\n <span class=\"default-badge\">\n <i class=\"fa-solid fa-star\"></i>\n Default\n </span>\n }\n <span class=\"status-badge\" [ngClass]=\"getStatusClass(config.Status)\">\n <i [class]=\"getStatusIcon(config.Status)\"></i>\n {{ config.Status }}\n </span>\n </div>\n </div>\n </div>\n\n <i class=\"fa-solid fa-chevron-down expand-icon\"\n [class.rotated]=\"config.isExpanded\"></i>\n </div>\n\n <!-- Card Body -->\n <div class=\"card-body\">\n @if (config.Description) {\n <p class=\"config-description\">{{ config.Description }}</p>\n } @else {\n <p class=\"config-description text-muted\">No description provided</p>\n }\n\n <!-- Expanded Content -->\n @if (config.isExpanded) {\n <div class=\"expanded-content\">\n <!-- Stats Grid -->\n <div class=\"config-stats\">\n <div class=\"stat-item\">\n <span class=\"stat-label\">Parameters</span>\n <span class=\"stat-value\">{{ config.params?.length || 0 }}</span>\n </div>\n <div class=\"stat-item\">\n <span class=\"stat-label\">Created</span>\n <span class=\"stat-value\">{{ formatDate(config.__mj_CreatedAt) }}</span>\n </div>\n <div class=\"stat-item\">\n <span class=\"stat-label\">Updated</span>\n <span class=\"stat-value\">{{ formatDate(config.__mj_UpdatedAt) }}</span>\n </div>\n </div>\n\n <!-- Linked Prompts -->\n <div class=\"prompts-section\">\n <h5 class=\"section-title\">\n <i class=\"fa-solid fa-message-lines\"></i>\n Linked Prompts\n </h5>\n <div class=\"prompt-links\">\n @if (config.compressionPrompt) {\n <div class=\"prompt-link\" (click)=\"onOpenPrompt(config.DefaultPromptForContextCompressionID!); $event.stopPropagation()\">\n <div class=\"prompt-link-info\">\n <div class=\"prompt-link-icon\">\n <i class=\"fa-solid fa-compress\"></i>\n </div>\n <div class=\"prompt-link-details\">\n <span class=\"prompt-link-label\">Context Compression</span>\n <span class=\"prompt-link-name\">{{ config.compressionPrompt.Name }}</span>\n </div>\n </div>\n <i class=\"fa-solid fa-arrow-right prompt-link-arrow\"></i>\n </div>\n } @else {\n <div class=\"no-prompt\">No compression prompt configured</div>\n }\n\n @if (config.summarizationPrompt) {\n <div class=\"prompt-link\" (click)=\"onOpenPrompt(config.DefaultPromptForContextSummarizationID!); $event.stopPropagation()\">\n <div class=\"prompt-link-info\">\n <div class=\"prompt-link-icon\">\n <i class=\"fa-solid fa-file-lines\"></i>\n </div>\n <div class=\"prompt-link-details\">\n <span class=\"prompt-link-label\">Context Summarization</span>\n <span class=\"prompt-link-name\">{{ config.summarizationPrompt.Name }}</span>\n </div>\n </div>\n <i class=\"fa-solid fa-arrow-right prompt-link-arrow\"></i>\n </div>\n } @else {\n <div class=\"no-prompt\">No summarization prompt configured</div>\n }\n </div>\n </div>\n\n <!-- Configuration Parameters -->\n @if (config.params && config.params.length > 0) {\n <div class=\"params-section\">\n <h5 class=\"section-title\">\n <i class=\"fa-solid fa-gear\"></i>\n Configuration Parameters\n </h5>\n <div class=\"params-grid\">\n @for (param of config.params; track param.ID) {\n <div class=\"param-item\" (click)=\"onOpenParam(param); $event.stopPropagation()\">\n <div class=\"param-info\">\n <div class=\"param-type-icon\">\n <i [class]=\"getParamTypeIcon(param.Type)\"></i>\n </div>\n <div class=\"param-details\">\n <span class=\"param-name\">{{ param.Name }}</span>\n <span class=\"param-type\">{{ param.Type }}</span>\n </div>\n </div>\n <span class=\"param-value\">{{ formatParamValue(param) }}</span>\n </div>\n }\n </div>\n </div>\n } @else {\n <div class=\"params-section\">\n <h5 class=\"section-title\">\n <i class=\"fa-solid fa-gear\"></i>\n Configuration Parameters\n </h5>\n <div class=\"no-params\">No parameters configured</div>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Card Actions -->\n <div class=\"card-actions\" (click)=\"$event.stopPropagation()\">\n <button\n type=\"button\"\n class=\"action-btn\"\n (click)=\"showConfigDetails(config, $event)\"\n title=\"View Details\">\n <i class=\"fa-solid fa-eye\"></i>\n Details\n </button>\n\n <button\n type=\"button\"\n class=\"action-btn action-btn-primary\"\n (click)=\"onOpenConfiguration(config)\">\n <i class=\"fa-solid fa-edit\"></i>\n Configure\n </button>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- List View -->\n @if (viewMode === 'list') {\n <div class=\"configurations-list\">\n <table class=\"configurations-table\">\n <thead>\n <tr>\n <th (click)=\"sortBy('Name')\"\n [class.sorted]=\"sortColumn === 'Name'\"\n [class.desc]=\"sortColumn === 'Name' && sortDirection === 'desc'\">\n <span class=\"sort-header\">\n Configuration\n <i class=\"fa-solid fa-chevron-up sort-icon\"></i>\n </span>\n </th>\n <th (click)=\"sortBy('Status')\"\n [class.sorted]=\"sortColumn === 'Status'\"\n [class.desc]=\"sortColumn === 'Status' && sortDirection === 'desc'\">\n <span class=\"sort-header\">\n Status\n <i class=\"fa-solid fa-chevron-up sort-icon\"></i>\n </span>\n </th>\n <th (click)=\"sortBy('Parameters')\"\n [class.sorted]=\"sortColumn === 'Parameters'\"\n [class.desc]=\"sortColumn === 'Parameters' && sortDirection === 'desc'\">\n <span class=\"sort-header\">\n Parameters\n <i class=\"fa-solid fa-chevron-up sort-icon\"></i>\n </span>\n </th>\n <th (click)=\"sortBy('Updated')\"\n [class.sorted]=\"sortColumn === 'Updated'\"\n [class.desc]=\"sortColumn === 'Updated' && sortDirection === 'desc'\">\n <span class=\"sort-header\">\n Updated\n <i class=\"fa-solid fa-chevron-up sort-icon\"></i>\n </span>\n </th>\n <th>Actions</th>\n </tr>\n </thead>\n <tbody>\n @for (config of filteredConfigurations; track config.ID) {\n <tr>\n <td>\n <div class=\"config-name-cell\">\n <div class=\"config-icon-small\">\n <i class=\"fa-solid fa-sliders\"></i>\n </div>\n <div>\n <div class=\"config-name-text\">\n {{ config.Name }}\n @if (config.IsDefault) {\n <span class=\"default-badge\" style=\"margin-left: 8px;\">\n <i class=\"fa-solid fa-star\"></i>\n Default\n </span>\n }\n </div>\n @if (config.Description) {\n <div class=\"config-description-small\">{{ config.Description }}</div>\n }\n </div>\n </div>\n </td>\n <td>\n <span class=\"status-badge\" [ngClass]=\"getStatusClass(config.Status)\">\n <i [class]=\"getStatusIcon(config.Status)\"></i>\n {{ config.Status }}\n </span>\n </td>\n <td>{{ config.params?.length || 0 }}</td>\n <td>{{ formatDate(config.__mj_UpdatedAt) }}</td>\n <td>\n <div class=\"table-actions\">\n <button\n type=\"button\"\n class=\"action-btn-small\"\n (click)=\"showConfigDetails(config)\"\n title=\"View Details\">\n <i class=\"fa-solid fa-eye\"></i>\n </button>\n <button\n type=\"button\"\n class=\"action-btn-small primary\"\n (click)=\"onOpenConfiguration(config)\">\n <i class=\"fa-solid fa-edit\"></i>\n </button>\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n }\n }\n </div>\n </as-split-area>\n </as-split>\n </div>\n\n <!-- Detail Panel Overlay -->\n @if (detailPanelVisible) {\n <div class=\"detail-panel-overlay\" (click)=\"closeDetailPanel()\"></div>\n }\n\n <!-- Detail Panel -->\n <div class=\"detail-panel\" [class.visible]=\"detailPanelVisible\">\n @if (selectedConfig) {\n <!-- Panel Header -->\n <div class=\"detail-panel-header\">\n <div class=\"detail-panel-title\">\n <div class=\"detail-icon\">\n <i class=\"fa-solid fa-sliders\"></i>\n </div>\n <div class=\"detail-title-info\">\n <h3>{{ selectedConfig.Name }}</h3>\n <span class=\"detail-subtitle\">AI Configuration</span>\n </div>\n </div>\n <button class=\"detail-panel-close\" (click)=\"closeDetailPanel()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <!-- Panel Content -->\n <div class=\"detail-panel-content\">\n <!-- Status Section -->\n <div class=\"detail-section\">\n <div class=\"detail-badges\">\n <span class=\"status-badge\" [ngClass]=\"getStatusClass(selectedConfig.Status)\">\n <i [class]=\"getStatusIcon(selectedConfig.Status)\"></i>\n {{ selectedConfig.Status }}\n </span>\n @if (selectedConfig.IsDefault) {\n <span class=\"feature-badge default\">\n <i class=\"fa-solid fa-star\"></i>\n Default Configuration\n </span>\n }\n </div>\n </div>\n\n <!-- Description -->\n @if (selectedConfig.Description) {\n <div class=\"detail-section\">\n <h4 class=\"detail-section-title\">\n <i class=\"fa-solid fa-align-left\"></i>\n Description\n </h4>\n <p class=\"detail-description\">{{ selectedConfig.Description }}</p>\n </div>\n }\n\n <!-- Configuration Stats -->\n <div class=\"detail-section\">\n <h4 class=\"detail-section-title\">\n <i class=\"fa-solid fa-chart-bar\"></i>\n Overview\n </h4>\n <div class=\"detail-grid\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Parameters</span>\n <span class=\"detail-value\">{{ selectedConfig.params?.length || 0 }}</span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Status</span>\n <span class=\"detail-value\">{{ selectedConfig.Status }}</span>\n </div>\n </div>\n </div>\n\n <!-- Linked Prompts -->\n <div class=\"detail-section\">\n <h4 class=\"detail-section-title\">\n <i class=\"fa-solid fa-message-lines\"></i>\n Linked Prompts\n </h4>\n <div class=\"detail-grid single-column\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Context Compression</span>\n <span class=\"detail-value\">\n @if (selectedConfig.compressionPrompt) {\n {{ selectedConfig.compressionPrompt.Name }}\n } @else {\n <span class=\"muted\">Not configured</span>\n }\n </span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Context Summarization</span>\n <span class=\"detail-value\">\n @if (selectedConfig.summarizationPrompt) {\n {{ selectedConfig.summarizationPrompt.Name }}\n } @else {\n <span class=\"muted\">Not configured</span>\n }\n </span>\n </div>\n </div>\n </div>\n\n <!-- Parameters Preview -->\n @if (selectedConfig.params && selectedConfig.params.length > 0) {\n <div class=\"detail-section\">\n <h4 class=\"detail-section-title\">\n <i class=\"fa-solid fa-gear\"></i>\n Parameters ({{ selectedConfig.params.length }})\n </h4>\n <div class=\"detail-params-list\">\n @for (param of selectedConfig.params.slice(0, 5); track param.ID) {\n <div class=\"detail-param-item\">\n <div class=\"param-info\">\n <i [class]=\"getParamTypeIcon(param.Type)\"></i>\n <span class=\"param-name\">{{ param.Name }}</span>\n </div>\n <span class=\"param-value\">{{ formatParamValue(param) }}</span>\n </div>\n }\n @if (selectedConfig.params.length > 5) {\n <div class=\"params-more\">\n +{{ selectedConfig.params.length - 5 }} more parameters\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Timestamps -->\n <div class=\"detail-section\">\n <h4 class=\"detail-section-title\">\n <i class=\"fa-solid fa-clock\"></i>\n Timestamps\n </h4>\n <div class=\"detail-grid\">\n <div class=\"detail-item\">\n <span class=\"detail-label\">Created</span>\n <span class=\"detail-value\">{{ formatDate(selectedConfig.__mj_CreatedAt) }}</span>\n </div>\n <div class=\"detail-item\">\n <span class=\"detail-label\">Updated</span>\n <span class=\"detail-value\">{{ formatDate(selectedConfig.__mj_UpdatedAt) }}</span>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Panel Actions -->\n <div class=\"detail-panel-actions\">\n <button\n type=\"button\"\n class=\"detail-action-btn primary\"\n (click)=\"openConfigFromPanel()\">\n <i class=\"fa-solid fa-edit\"></i>\n Open Full Record\n </button>\n </div>\n }\n </div>\n</div>\n"]}
@@ -6,9 +6,10 @@
6
6
  * an entity sync table, and sidebar panels for DB health, embedding model info,
7
7
  * and storage usage.
8
8
  */
9
- import { OnDestroy, AfterViewInit } from '@angular/core';
9
+ import { OnDestroy, AfterViewInit, ElementRef } from '@angular/core';
10
+ import { Subject } from 'rxjs';
10
11
  import { ResourceData, MJVectorDatabaseEntity } from '@memberjunction/core-entities';
11
- import { BaseResourceComponent } from '@memberjunction/ng-shared';
12
+ import { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';
12
13
  import { KPICardData } from '../widgets/kpi-card.component';
13
14
  import * as i0 from "@angular/core";
14
15
  /** Flattened row for the entity sync table */
@@ -43,7 +44,8 @@ interface DocumentSuggestionResult {
43
44
  }
44
45
  export declare class VectorManagementResourceComponent extends BaseResourceComponent implements AfterViewInit, OnDestroy {
45
46
  private cdr;
46
- private destroy$;
47
+ protected navigationService: NavigationService;
48
+ protected destroy$: Subject<void>;
47
49
  /** View mode: 'index' = Option A (shared index as hero, entity docs as children),
48
50
  * 'operations' = Option C (operations monitoring with real-time sync status) */
49
51
  ViewMode: 'index' | 'operations';
@@ -70,11 +72,42 @@ export declare class VectorManagementResourceComponent extends BaseResourceCompo
70
72
  EditDocAIModelID: string;
71
73
  EditDocVectorIndexID: string;
72
74
  EditDocStatus: string;
75
+ EditDocTemplate: string;
76
+ IsEditRegenerating: boolean;
77
+ /** Parse {{ FieldName }} patterns from the edit panel's template */
78
+ get EditDocSelectedFields(): string[];
79
+ ShowNoIndexWarning: boolean;
73
80
  /** Open the edit panel for an entity document */
74
- OpenEditPanel(entityDocumentId: string): void;
81
+ OpenEditPanel(entityDocumentId: string): Promise<void>;
82
+ /** Load the template text for the edit panel from the associated Template Contents record */
83
+ private loadEditDocTemplate;
75
84
  CloseEditPanel(): void;
76
85
  SaveEditedDocument(): Promise<void>;
86
+ /** Save the edited template text back to the Template Contents record */
87
+ private saveEditDocTemplate;
88
+ /** Regenerate the template using AI for the current edit panel entity */
89
+ RegenerateTemplate(): Promise<void>;
90
+ /** Handle template edits from the edit panel's code editor */
91
+ OnEditTemplateChange(newValue: string): void;
77
92
  DeleteEntityDocument(): Promise<void>;
93
+ ShowScheduleSyncDialog: boolean;
94
+ ScheduleSyncSaving: boolean;
95
+ ScheduleSyncDocID: string;
96
+ ScheduleSyncDocName: string;
97
+ ScheduleSyncCron: string;
98
+ ScheduleSyncEnabled: boolean;
99
+ /** Opens the schedule sync dialog for a specific entity document */
100
+ OpenScheduleSyncDialog(entityDocumentId: string): void;
101
+ /** Closes the schedule sync dialog */
102
+ CloseScheduleSyncDialog(): void;
103
+ /** Returns a human-readable description of a cron expression */
104
+ GetScheduleCronPreview(cron: string): string;
105
+ /** Saves a new ScheduledAction for vectorizing the selected entity document */
106
+ SaveScheduleSync(): Promise<void>;
107
+ /** Find the __VectorizeEntity action ID */
108
+ private findVectorizeActionID;
109
+ /** Create a ScheduledActionParam linking the entity document ID */
110
+ private createVectorizeScheduleParam;
78
111
  ShowSuggestDialog: boolean;
79
112
  IsSuggesting: boolean;
80
113
  SuggestEntityName: string;
@@ -140,11 +173,15 @@ export declare class VectorManagementResourceComponent extends BaseResourceCompo
140
173
  EntitySearchText: string;
141
174
  /** Whether the entity picker dropdown is open */
142
175
  ShowEntityPicker: boolean;
176
+ SelectedEntityIndex: number;
177
+ /** Reference to the entity search input for programmatic focus */
178
+ entitySearchInput?: ElementRef<HTMLInputElement>;
143
179
  private entityDocuments;
144
180
  protected vectorDatabases: MJVectorDatabaseEntity[];
145
181
  private vectorIndexes;
146
- private recordDocuments;
147
182
  private aiModels;
183
+ /** Lightweight aggregate stats per EntityDocumentID — avoids loading all record documents */
184
+ private erdStats;
148
185
  ngAfterViewInit(): Promise<void>;
149
186
  ngOnDestroy(): void;
150
187
  GetResourceDisplayName(_data: ResourceData): Promise<string>;
@@ -165,12 +202,31 @@ export declare class VectorManagementResourceComponent extends BaseResourceCompo
165
202
  * change detection picks up the mutation in template bindings.
166
203
  */
167
204
  private removeSyncingId;
168
- /** Opens the AI suggestion dialog */
205
+ /** Opens the AI suggestion dialog, or shows a warning if no vector indexes exist */
169
206
  OpenSuggestDialog(): void;
207
+ /** Close the no-index warning dialog */
208
+ CloseNoIndexWarning(): void;
209
+ /** Navigate to the Configuration section from the no-index warning */
210
+ GoToConfiguration(): Promise<void>;
170
211
  /** Select an entity from the grouped picker */
171
212
  SelectEntity(entityName: string): void;
172
213
  /** Filter entities by search text */
173
214
  FilterEntities(): void;
215
+ /**
216
+ * Get a flat list of all entities across groups (for keyboard navigation indexing)
217
+ */
218
+ get FlatFilteredEntities(): {
219
+ Name: string;
220
+ ID: string;
221
+ }[];
222
+ /**
223
+ * Handle keyboard events in the entity picker search input
224
+ */
225
+ OnEntityPickerKeyDown(event: KeyboardEvent): void;
226
+ /**
227
+ * Scroll the currently selected entity picker item into view
228
+ */
229
+ private scrollSelectedEntityIntoView;
174
230
  /** Toggle entity picker visibility */
175
231
  ToggleEntityPicker(): void;
176
232
  /** Handle template edits from code editor */
@@ -199,7 +255,6 @@ export declare class VectorManagementResourceComponent extends BaseResourceCompo
199
255
  get DBHealthClass(): string;
200
256
  private fetchAllData;
201
257
  private buildSyncRows;
202
- private computeLastSynced;
203
258
  private computeSyncStatus;
204
259
  private buildKPICards;
205
260
  private buildSidebarData;
@@ -1 +1 @@
1
- {"version":3,"file":"vector-management-resource.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/vectors/vector-management-resource.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vector-management-resource.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/vectors/vector-management-resource.component.ts"],"names":[],"mappings":"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"}