@memberjunction/ng-dashboards 5.38.0 → 5.40.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 (321) hide show
  1. package/README.md +14 -7
  2. package/dist/AI/components/agents/agent-configuration.component.js +199 -198
  3. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  4. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
  5. package/dist/AI/components/analytics/ai-analytics-resource.component.js +20 -17
  6. package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
  7. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +15 -0
  8. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
  9. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +166 -58
  10. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
  11. package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
  12. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +2 -1
  13. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
  14. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +1 -0
  15. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
  16. package/dist/AI/components/analytics/model-performance/model-performance.component.js +55 -36
  17. package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
  18. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts +9 -1
  19. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
  20. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +158 -117
  21. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
  22. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts +1 -0
  23. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
  24. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +22 -8
  25. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
  26. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +217 -860
  27. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  28. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +1717 -7802
  29. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  30. package/dist/AI/components/autotagging/components/classify-item-drilldown.component.d.ts +56 -0
  31. package/dist/AI/components/autotagging/components/classify-item-drilldown.component.d.ts.map +1 -0
  32. package/dist/AI/components/autotagging/components/classify-item-drilldown.component.js +423 -0
  33. package/dist/AI/components/autotagging/components/classify-item-drilldown.component.js.map +1 -0
  34. package/dist/AI/components/autotagging/components/classify-item-grid.component.d.ts +70 -0
  35. package/dist/AI/components/autotagging/components/classify-item-grid.component.d.ts.map +1 -0
  36. package/dist/AI/components/autotagging/components/classify-item-grid.component.js +308 -0
  37. package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -0
  38. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts +29 -0
  39. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -0
  40. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +186 -0
  41. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -0
  42. package/dist/AI/components/autotagging/components/classify-overview-analytics.component.d.ts +69 -0
  43. package/dist/AI/components/autotagging/components/classify-overview-analytics.component.d.ts.map +1 -0
  44. package/dist/AI/components/autotagging/components/classify-overview-analytics.component.js +278 -0
  45. package/dist/AI/components/autotagging/components/classify-overview-analytics.component.js.map +1 -0
  46. package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.d.ts +73 -0
  47. package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.d.ts.map +1 -0
  48. package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.js +393 -0
  49. package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.js.map +1 -0
  50. package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.d.ts +122 -0
  51. package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.d.ts.map +1 -0
  52. package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.js +908 -0
  53. package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.js.map +1 -0
  54. package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.d.ts +87 -0
  55. package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.d.ts.map +1 -0
  56. package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.js +475 -0
  57. package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.js.map +1 -0
  58. package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.d.ts +29 -0
  59. package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.d.ts.map +1 -0
  60. package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.js +208 -0
  61. package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.js.map +1 -0
  62. package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.d.ts +21 -0
  63. package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.d.ts.map +1 -0
  64. package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.js +70 -0
  65. package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.js.map +1 -0
  66. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts +333 -0
  67. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -0
  68. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +2125 -0
  69. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -0
  70. package/dist/AI/components/autotagging/shared/classify.dryrun.d.ts +61 -0
  71. package/dist/AI/components/autotagging/shared/classify.dryrun.d.ts.map +1 -0
  72. package/dist/AI/components/autotagging/shared/classify.dryrun.js +78 -0
  73. package/dist/AI/components/autotagging/shared/classify.dryrun.js.map +1 -0
  74. package/dist/AI/components/autotagging/shared/classify.format.d.ts +58 -0
  75. package/dist/AI/components/autotagging/shared/classify.format.d.ts.map +1 -0
  76. package/dist/AI/components/autotagging/shared/classify.format.js +260 -0
  77. package/dist/AI/components/autotagging/shared/classify.format.js.map +1 -0
  78. package/dist/AI/components/autotagging/shared/classify.types.d.ts +319 -0
  79. package/dist/AI/components/autotagging/shared/classify.types.d.ts.map +1 -0
  80. package/dist/AI/components/autotagging/shared/classify.types.js +6 -0
  81. package/dist/AI/components/autotagging/shared/classify.types.js.map +1 -0
  82. package/dist/AI/components/autotagging/tabs/health-tab.component.d.ts +103 -0
  83. package/dist/AI/components/autotagging/tabs/health-tab.component.d.ts.map +1 -0
  84. package/dist/AI/components/autotagging/tabs/health-tab.component.js +571 -0
  85. package/dist/AI/components/autotagging/tabs/health-tab.component.js.map +1 -0
  86. package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts +77 -0
  87. package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts.map +1 -0
  88. package/dist/AI/components/autotagging/tabs/history-tab.component.js +519 -0
  89. package/dist/AI/components/autotagging/tabs/history-tab.component.js.map +1 -0
  90. package/dist/AI/components/autotagging/tabs/inbox-tab.component.d.ts +107 -0
  91. package/dist/AI/components/autotagging/tabs/inbox-tab.component.d.ts.map +1 -0
  92. package/dist/AI/components/autotagging/tabs/inbox-tab.component.js +719 -0
  93. package/dist/AI/components/autotagging/tabs/inbox-tab.component.js.map +1 -0
  94. package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts +131 -0
  95. package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts.map +1 -0
  96. package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js +813 -0
  97. package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js.map +1 -0
  98. package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts +177 -0
  99. package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -0
  100. package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1465 -0
  101. package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -0
  102. package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts +78 -0
  103. package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts.map +1 -0
  104. package/dist/AI/components/autotagging/tabs/tags-tab.component.js +492 -0
  105. package/dist/AI/components/autotagging/tabs/tags-tab.component.js.map +1 -0
  106. package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.d.ts +397 -0
  107. package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.d.ts.map +1 -0
  108. package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.js +3490 -0
  109. package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.js.map +1 -0
  110. package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts +56 -0
  111. package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts.map +1 -0
  112. package/dist/AI/components/autotagging/tabs/types-tab.component.js +271 -0
  113. package/dist/AI/components/autotagging/tabs/types-tab.component.js.map +1 -0
  114. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +3 -0
  115. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  116. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +306 -290
  117. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  118. package/dist/AI/components/execution-monitoring.component.js +1 -1
  119. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  120. package/dist/AI/components/models/model-management.component.js +209 -208
  121. package/dist/AI/components/models/model-management.component.js.map +1 -1
  122. package/dist/AI/components/prompts/prompt-management.component.js +130 -128
  123. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  124. package/dist/AI/components/requests/agent-requests-resource.component.js +61 -61
  125. package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
  126. package/dist/AI/components/system/system-configuration.component.js +17 -17
  127. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  128. package/dist/AI/components/tags/tags-resource.component.d.ts +1 -0
  129. package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
  130. package/dist/AI/components/tags/tags-resource.component.js +578 -538
  131. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  132. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +3 -0
  133. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  134. package/dist/AI/components/vectors/vector-management-resource.component.js +331 -303
  135. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  136. package/dist/AI/services/ai-instrumentation.service.d.ts +5 -0
  137. package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
  138. package/dist/AI/services/ai-instrumentation.service.js +14 -2
  139. package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
  140. package/dist/AI/services/cache-metrics.d.ts +50 -0
  141. package/dist/AI/services/cache-metrics.d.ts.map +1 -0
  142. package/dist/AI/services/cache-metrics.js +43 -0
  143. package/dist/AI/services/cache-metrics.js.map +1 -0
  144. package/dist/APIKeys/api-applications-panel.component.js +2 -2
  145. package/dist/APIKeys/api-key-create-dialog.component.js +2 -2
  146. package/dist/APIKeys/api-key-edit-panel.component.js +2 -2
  147. package/dist/APIKeys/api-keys-resource.component.js +132 -131
  148. package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
  149. package/dist/Actions/components/actions-overview.component.js +141 -141
  150. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  151. package/dist/Actions/components/execution-monitoring.component.js +15 -15
  152. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  153. package/dist/Actions/components/explorer/action-explorer.component.d.ts +0 -5
  154. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  155. package/dist/Actions/components/explorer/action-explorer.component.js +139 -212
  156. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  157. package/dist/Admin/admin-data-schema.component.js +2 -2
  158. package/dist/Admin/admin-data-schema.component.js.map +1 -1
  159. package/dist/Admin/admin-dev-tools-resource.component.js +2 -2
  160. package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
  161. package/dist/Admin/admin-identity-access.component.js +2 -2
  162. package/dist/Admin/admin-identity-access.component.js.map +1 -1
  163. package/dist/Admin/admin-monitoring.component.js +2 -2
  164. package/dist/Admin/admin-monitoring.component.js.map +1 -1
  165. package/dist/ApplicationRoles/application-roles-resource.component.js +54 -49
  166. package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
  167. package/dist/Communication/communication-logs-resource.component.d.ts +6 -0
  168. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  169. package/dist/Communication/communication-logs-resource.component.js +72 -50
  170. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  171. package/dist/Communication/communication-monitor-resource.component.js +103 -102
  172. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  173. package/dist/Communication/communication-providers-resource.component.js +52 -51
  174. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  175. package/dist/Communication/communication-runs-resource.component.js +39 -38
  176. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  177. package/dist/Communication/communication-templates-resource.component.d.ts +6 -0
  178. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  179. package/dist/Communication/communication-templates-resource.component.js +92 -89
  180. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  181. package/dist/Credentials/components/credentials-audit-resource.component.js +136 -135
  182. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  183. package/dist/Credentials/components/credentials-categories-resource.component.js +155 -152
  184. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  185. package/dist/Credentials/components/credentials-list-resource.component.js +119 -118
  186. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  187. package/dist/Credentials/components/credentials-overview-resource.component.js +129 -128
  188. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  189. package/dist/Credentials/components/credentials-types-resource.component.js +107 -106
  190. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  191. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +31 -340
  192. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  193. package/dist/DataExplorer/data-explorer-dashboard.component.js +468 -1958
  194. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  195. package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
  196. package/dist/DataExplorer/data-explorer-resource.component.js +10 -0
  197. package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
  198. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +1 -1
  199. package/dist/DatabaseDesigner/components/entity-list.component.js +115 -114
  200. package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
  201. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +5 -6
  202. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
  203. package/dist/DatabaseDesigner/database-designer-dashboards.module.js +4 -5
  204. package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
  205. package/dist/DevTools/app-state-inspector.component.js +18 -17
  206. package/dist/DevTools/app-state-inspector.component.js.map +1 -1
  207. package/dist/DevTools/class-registry.component.js +88 -85
  208. package/dist/DevTools/class-registry.component.js.map +1 -1
  209. package/dist/DevTools/event-monitor.component.js +155 -150
  210. package/dist/DevTools/event-monitor.component.js.map +1 -1
  211. package/dist/DevTools/graphql-console.component.js +245 -243
  212. package/dist/DevTools/graphql-console.component.js.map +1 -1
  213. package/dist/DevTools/layout-inspector.component.js +18 -17
  214. package/dist/DevTools/layout-inspector.component.js.map +1 -1
  215. package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -19
  216. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  217. package/dist/Home/home-dashboard.component.js +2 -2
  218. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  219. package/dist/Integration/components/activity/activity.component.js +236 -229
  220. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  221. package/dist/Integration/components/connections/connections.component.js +390 -389
  222. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  223. package/dist/Integration/components/overview/overview.component.js +2 -2
  224. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -1
  225. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +14 -11
  226. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
  227. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +27 -2
  228. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -1
  229. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +244 -119
  230. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  231. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +293 -291
  232. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  233. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +62 -61
  234. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
  235. package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts +65 -0
  236. package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts.map +1 -0
  237. package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.js +176 -0
  238. package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.js.map +1 -0
  239. package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.d.ts +81 -0
  240. package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.d.ts.map +1 -0
  241. package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.js +308 -0
  242. package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.js.map +1 -0
  243. package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts +85 -0
  244. package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts.map +1 -0
  245. package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js +362 -0
  246. package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js.map +1 -0
  247. package/dist/KnowledgeHub/index.d.ts +3 -0
  248. package/dist/KnowledgeHub/index.d.ts.map +1 -1
  249. package/dist/KnowledgeHub/index.js +3 -0
  250. package/dist/KnowledgeHub/index.js.map +1 -1
  251. package/dist/Lists/components/lists-browse-resource.component.d.ts +6 -2
  252. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  253. package/dist/Lists/components/lists-browse-resource.component.js +525 -566
  254. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  255. package/dist/Lists/components/lists-categories-resource.component.js +135 -134
  256. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  257. package/dist/Lists/components/lists-my-lists-resource.component.js +199 -198
  258. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  259. package/dist/MCP/components/mcp-server-dialog.component.js +2 -2
  260. package/dist/MCP/mcp-dashboard.component.js +443 -438
  261. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  262. package/dist/QueryBrowser/query-browser-resource.component.js +1 -1
  263. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  264. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
  265. package/dist/Scheduling/components/scheduling-activity.component.js +146 -147
  266. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  267. package/dist/Scheduling/components/scheduling-jobs.component.js +76 -75
  268. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  269. package/dist/Scheduling/components/scheduling-overview.component.js +97 -96
  270. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  271. package/dist/Scheduling/scheduling-dashboard.component.js +24 -22
  272. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  273. package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts +2 -0
  274. package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts.map +1 -1
  275. package/dist/Scheduling/services/scheduling-instrumentation.service.js +1 -0
  276. package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
  277. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +1 -1
  278. package/dist/Testing/components/testing-explorer.component.d.ts +14 -4
  279. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  280. package/dist/Testing/components/testing-explorer.component.js +436 -427
  281. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  282. package/dist/Testing/components/testing-runs-resource.component.js +1 -1
  283. package/dist/Testing/components/testing-runs.component.js +116 -115
  284. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  285. package/dist/Testing/testing-dashboard.component.js +6 -7
  286. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  287. package/dist/VersionHistory/components/labels-resource.component.js +173 -172
  288. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  289. package/dist/VersionHistory/components/restore-resource.component.d.ts +6 -0
  290. package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -1
  291. package/dist/VersionHistory/components/restore-resource.component.js +116 -92
  292. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  293. package/dist/ai-dashboards.module.d.ts +57 -35
  294. package/dist/ai-dashboards.module.d.ts.map +1 -1
  295. package/dist/ai-dashboards.module.js +80 -1
  296. package/dist/ai-dashboards.module.js.map +1 -1
  297. package/dist/communication-dashboards.module.d.ts +1 -1
  298. package/dist/communication-dashboards.module.d.ts.map +1 -1
  299. package/dist/communication-dashboards.module.js +7 -1
  300. package/dist/communication-dashboards.module.js.map +1 -1
  301. package/dist/data-explorer-dashboards.module.d.ts +12 -14
  302. package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
  303. package/dist/data-explorer-dashboards.module.js +5 -14
  304. package/dist/data-explorer-dashboards.module.js.map +1 -1
  305. package/dist/public-api.d.ts +3 -0
  306. package/dist/public-api.d.ts.map +1 -1
  307. package/dist/public-api.js +3 -0
  308. package/dist/public-api.js.map +1 -1
  309. package/dist/testing-dashboards.module.d.ts +4 -5
  310. package/dist/testing-dashboards.module.d.ts.map +1 -1
  311. package/dist/testing-dashboards.module.js +7 -5
  312. package/dist/testing-dashboards.module.js.map +1 -1
  313. package/package.json +57 -54
  314. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts +0 -79
  315. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts.map +0 -1
  316. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +0 -195
  317. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +0 -1
  318. package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts +0 -226
  319. package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +0 -1
  320. package/dist/DataExplorer/components/view-selector/view-selector.component.js +0 -861
  321. package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-tab.component.js","sourceRoot":"","sources":["../../../../../src/AI/components/autotagging/tabs/pipeline-tab.component.ts","../../../../../src/AI/components/autotagging/tabs/pipeline-tab.component.html"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Classify · Pipeline Monitor tab.\n *\n * Presentational sub-page: owns its header-interior (with a Refresh action) and\n * the pipeline monitor body — KPI strip, pipeline-stage visualization, live\n * progress + controls, per-source live-run detail table, the recent-processing\n * feed (with its own search/sort/pagination), the trending-tags cloud, the\n * sources mini-list, and the collapsible pipeline-config panel.\n *\n * It is a VIEW only: all pipeline RUN orchestration (start/pause/resume/cancel,\n * the GraphQL progress subscription, shared data loading, and every `build*`\n * view-model method) stays in the host because it is shared by the global\n * \"Run Pipeline\" header button and the Sources tab. This tab receives the\n * already-built view models + run state via `@Input()` and emits user intents\n * (refresh, pause/resume/cancel, feed-item click, config toggle) via `@Output()`.\n */\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { KPIMetric, PipelineStageInfo, FeedItem, SourceMini, TagCloudItem, RunDetailRow } from '../shared/classify.types';\nimport { formatTokenCount } from '../shared/classify.format';\n\n/** Shape of the pipeline-config object the host owns and the config panel binds to (two-way via object reference). */\nexport interface PipelineConfigModel {\n Pipeline?: { BatchSize?: number; MaxConcurrentBatches?: number; DelayBetweenBatchesMs?: number; ResumeFromLastBatch?: boolean; ErrorThresholdPercent?: number };\n RateLimits?: { LLM?: { RequestsPerMinute?: number; TokensPerMinute?: number }; Embedding?: { RequestsPerMinute?: number; TokensPerMinute?: number }; VectorDB?: { RequestsPerMinute?: number } };\n}\n\n@Component({\n standalone: false,\n selector: 'classify-pipeline-tab',\n templateUrl: './pipeline-tab.component.html',\n styleUrls: ['./pipeline-tab.component.css']\n})\nexport class ClassifyPipelineTabComponent extends BaseAngularComponent {\n // ── Built view models (data DOWN from the host orchestrator) ──\n\n /** KPI strip cards. */\n @Input() KPIMetrics: KPIMetric[] = [];\n /** Pipeline-stage visualization (shown only during an active/paused run). */\n @Input() PipelineStages: PipelineStageInfo[] = [];\n /** Recent-processing feed source list (host keeps it index-aligned with its raw content items). */\n @Input() FeedItems: FeedItem[] = [];\n /** Sources mini-list (right sidebar). */\n @Input() SourceMinis: SourceMini[] = [];\n /** Trending-tags cloud. */\n @Input() TrendingTags: TagCloudItem[] = [];\n /** Per-source live-run detail rows (shown during an active run). */\n @Input() LiveRunDetailRows: RunDetailRow[] = [];\n /** Total content-item count in the DB (from TotalRowCount) — drives the \"Showing X of Y\" line. */\n @Input() TotalItemCount = 0;\n /** True while the host is loading the next page of content items. */\n @Input() IsLoadingMoreItems = false;\n\n // ── Run state (data DOWN from the host) ──\n\n @Input() IsRunning = false;\n @Input() IsPaused = false;\n @Input() RunProgress = 0;\n @Input() RunStage = '';\n @Input() RunCurrentItem = '';\n /** Server-side process run ID — gates the Pause button. */\n @Input() CurrentProcessRunID: string | null = null;\n\n /**\n * The pipeline-config object the host owns. Two-way bound in-place via the\n * config panel's `[(ngModel)]` bindings — since this is a shared object\n * reference, mutations flow straight back to the host without an output.\n */\n @Input() PipelineConfig: PipelineConfigModel = {};\n\n /** Config-panel expanded state — host persists this to user prefs + reports it to the agent. */\n @Input() ShowPipelineConfig = false;\n\n // ── Tab-local view state (purely presentational, pipeline-only) ──\n\n /** Feed search text. */\n public FeedSearchQuery = '';\n /** Current feed page (0-based). */\n public FeedPage = 0;\n public readonly FeedPageSize = 20;\n /** Sort order for the feed: 'newest' (default) or 'oldest'. */\n public FeedSortOrder: 'newest' | 'oldest' = 'newest';\n\n /** Template-facing formatter for token-count config values. */\n public readonly formatTokenCount = formatTokenCount;\n\n // ── User intents (events UP to the host) ──\n\n /** Refresh the pipeline data → host `LoadPipelineData()`. */\n @Output() RefreshRequested = new EventEmitter<void>();\n /** Pause the running pipeline → host `PausePipeline()`. */\n @Output() PauseRequested = new EventEmitter<void>();\n /** Resume the paused pipeline → host `ResumePipeline()`. */\n @Output() ResumeRequested = new EventEmitter<void>();\n /** Cancel the running/paused pipeline → host `CancelPipeline()`. */\n @Output() CancelRequested = new EventEmitter<void>();\n /** Reload live per-source progress → host `LoadLiveRunDetails()`. */\n @Output() LoadLiveRunDetailsRequested = new EventEmitter<void>();\n /** Open a feed item's detail slide-in (emits the item's original index into the host's FeedItems). */\n @Output() FeedItemClicked = new EventEmitter<number>();\n /** Toggle the config panel → host `TogglePipelineConfig()` (persists + reports to agent). */\n @Output() ConfigToggled = new EventEmitter<void>();\n /** Request the host load the next page of content items (no silent truncation). */\n @Output() LoadMoreItemsRequested = new EventEmitter<void>();\n\n /** Whether more content items exist in the DB than are currently loaded into the feed. */\n public get HasMoreItems(): boolean {\n return this.TotalItemCount > this.FeedItems.length;\n }\n\n public onLoadMoreItems(): void {\n this.LoadMoreItemsRequested.emit();\n }\n\n // ════════════════════════════════════════════\n // FEED — search, sort, pagination (presentational)\n // ════════════════════════════════════════════\n\n /** Feed items filtered by search query and sorted. */\n public get FilteredFeedItems(): FeedItem[] {\n let items = this.FeedItems;\n if (this.FeedSearchQuery.trim()) {\n const q = this.FeedSearchQuery.toLowerCase();\n items = items.filter(item =>\n item.Name.toLowerCase().includes(q) ||\n item.SourceName.toLowerCase().includes(q) ||\n item.Tags.some(t => t.toLowerCase().includes(q))\n );\n }\n if (this.FeedSortOrder === 'oldest') {\n return [...items].reverse();\n }\n return items;\n }\n\n /** Paginated feed items for the current page. */\n public get PaginatedFeedItems(): FeedItem[] {\n const items = this.FilteredFeedItems;\n const start = this.FeedPage * this.FeedPageSize;\n return items.slice(start, start + this.FeedPageSize);\n }\n\n /** Total pages for the feed. */\n public get FeedTotalPages(): number {\n return Math.max(1, Math.ceil(this.FilteredFeedItems.length / this.FeedPageSize));\n }\n\n /** Toggle feed sort order. */\n public ToggleFeedSort(): void {\n this.FeedSortOrder = this.FeedSortOrder === 'newest' ? 'oldest' : 'newest';\n this.FeedPage = 0;\n }\n\n /** Handle feed search input change. */\n public OnFeedSearchChange(): void {\n this.FeedPage = 0;\n }\n\n /** Navigate to the previous feed page. */\n public FeedPrevPage(): void {\n if (this.FeedPage > 0) {\n this.FeedPage--;\n }\n }\n\n /** Navigate to the next feed page. */\n public FeedNextPage(): void {\n if (this.FeedPage < this.FeedTotalPages - 1) {\n this.FeedPage++;\n }\n }\n\n /** Get the index in the host's original FeedItems array for a paginated item. */\n public GetFeedItemOriginalIndex(item: FeedItem): number {\n return this.FeedItems.indexOf(item);\n }\n\n // ── Intent emitters ──\n\n public onRefresh(): void {\n this.RefreshRequested.emit();\n }\n\n public onPause(): void {\n this.PauseRequested.emit();\n }\n\n public onResume(): void {\n this.ResumeRequested.emit();\n }\n\n public onCancel(): void {\n this.CancelRequested.emit();\n }\n\n public onLoadLiveRunDetails(): void {\n this.LoadLiveRunDetailsRequested.emit();\n }\n\n public onFeedItemClick(originalIndex: number): void {\n this.FeedItemClicked.emit(originalIndex);\n }\n\n public onToggleConfig(): void {\n this.ConfigToggled.emit();\n }\n}\n","<mj-page-header-interior\n Title=\"Pipeline Monitor\"\n Subtitle=\"Real-time processing status and recent activity\">\n <div actions>\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"onRefresh()\">\n <i class=\"fa-solid fa-arrows-rotate\"></i> <span class=\"mj-action-label\">Refresh</span>\n </button>\n </div>\n</mj-page-header-interior>\n\n<mj-page-body-interior [Padding]=\"false\" [Flex]=\"true\">\n<div class=\"at-main-area\">\n <div class=\"at-page-body\">\n <!-- KPIs -->\n <div class=\"at-kpi-strip\">\n @for (kpi of KPIMetrics; track kpi.Label) {\n <div class=\"at-kpi-card\">\n <div class=\"at-kpi-value\" [class.at-kpi-error-value]=\"kpi.Label === 'Errors' && kpi.Value > 0\">{{ kpi.Value | number }}</div>\n <div class=\"at-kpi-label\">{{ kpi.Label }}</div>\n @if (kpi.Trend) {\n <div class=\"at-kpi-trend\" [class.up]=\"kpi.TrendUp\">\n @if (kpi.TrendUp) { <i class=\"fa-solid fa-arrow-up\"></i> }\n {{ kpi.Trend }}\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Phase 4: Overview analytics (KPI cards + hand-rolled SVG charts) -->\n <div class=\"at-analytics-section\">\n <classify-overview-analytics [Provider]=\"Provider\"></classify-overview-analytics>\n </div>\n\n <div class=\"at-pipeline-layout\">\n <div class=\"at-pipeline-center\">\n <!-- Pipeline stages visualization (only during active run) -->\n @if (PipelineStages.length > 0 && (IsRunning || IsPaused)) {\n <div class=\"at-pipeline-stages\">\n @for (stage of PipelineStages; track stage.Name; let last = $last) {\n <div class=\"at-pipeline-stage\"\n [class.stage-idle]=\"stage.Status === 'idle'\"\n [class.stage-active]=\"stage.Status === 'active'\"\n [class.stage-complete]=\"stage.Status === 'complete'\">\n <div class=\"at-pipeline-stage-icon\">\n @if (stage.Status === 'active') {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n } @else if (stage.Status === 'complete') {\n <i class=\"fa-solid fa-check\"></i>\n } @else {\n <i [class]=\"stage.Icon\"></i>\n }\n </div>\n <div class=\"at-pipeline-stage-name\">{{ stage.Name }}</div>\n </div>\n @if (!last) {\n <div class=\"at-stage-connector\"\n [class.connector-complete]=\"stage.Status === 'complete'\">\n </div>\n }\n }\n </div>\n }\n\n <!-- Progress bar (visible during run or paused) -->\n @if (IsRunning || IsPaused) {\n <div class=\"at-progress-section\">\n <div class=\"at-progress-header\">\n <span class=\"at-progress-stage-label\">{{ RunStage }}</span>\n <span class=\"at-progress-pct\">{{ RunProgress | number:'1.0-0' }}%</span>\n </div>\n <div class=\"at-progress-bar\"><div class=\"at-progress-fill\" [style.width.%]=\"RunProgress\" [class.at-progress-fill-paused]=\"IsPaused\"></div></div>\n @if (RunCurrentItem) {\n <div class=\"at-progress-current\">{{ RunCurrentItem }}</div>\n }\n <div class=\"at-pipeline-controls\">\n @if (IsRunning && !IsPaused) {\n <button class=\"at-action-btn at-secondary-btn\" (click)=\"onPause()\" [disabled]=\"!CurrentProcessRunID\">\n <i class=\"fa-solid fa-pause\"></i> Pause\n </button>\n }\n @if (IsPaused) {\n <button class=\"at-action-btn at-primary-btn\" (click)=\"onResume()\">\n <i class=\"fa-solid fa-play\"></i> Resume\n </button>\n }\n <button class=\"at-action-btn at-danger-btn\" (click)=\"onCancel()\">\n <i class=\"fa-solid fa-stop\"></i> Cancel\n </button>\n </div>\n </div>\n }\n\n <!-- D2: Live Per-Source Progress (visible during run) -->\n @if (IsRunning && LiveRunDetailRows.length > 0) {\n <div class=\"at-card\" style=\"margin-bottom: 12px;\">\n <div class=\"at-card-header\">\n <span class=\"at-card-title\"><i class=\"fa-solid fa-list-check\"></i> Per-Source Progress</span>\n <button class=\"at-action-btn at-secondary-btn\" style=\"font-size: 11px; padding: 3px 8px;\" (click)=\"onLoadLiveRunDetails()\">\n <i class=\"fa-solid fa-arrows-rotate\"></i>\n </button>\n </div>\n <div class=\"at-card-body\" style=\"max-height: 200px; overflow-y: auto;\">\n <table class=\"at-run-table\">\n <thead>\n <tr>\n <th>Source</th>\n <th>Status</th>\n <th>Items</th>\n <th>Tagged</th>\n <th>Vectorized</th>\n <th>Errors</th>\n </tr>\n </thead>\n <tbody>\n @for (row of LiveRunDetailRows; track row.SourceName) {\n <tr>\n <td class=\"at-run-source-name\">{{ row.SourceName }}</td>\n <td>\n <span class=\"at-run-status-badge\" [class]=\"row.StatusClass\">\n @if (row.StatusClass === 'running') {\n <i class=\"fa-solid fa-spinner fa-spin\" style=\"font-size: 0.55rem\"></i>\n }\n {{ row.Status }}\n </span>\n </td>\n <td>{{ row.ItemsProcessed }}</td>\n <td>{{ row.ItemsTagged }}</td>\n <td>{{ row.ItemsVectorized }}</td>\n <td [class.run-error-text]=\"row.ErrorCount > 0\">{{ row.ErrorCount }}</td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n </div>\n }\n\n <!-- Recent Processing Feed -->\n <div class=\"at-card at-feed-card\">\n <div class=\"at-card-header\">\n <span class=\"at-card-title\"><i class=\"fa-solid fa-bolt\"></i> Recent Processing</span>\n <div class=\"at-feed-header-actions\">\n <button class=\"at-feed-sort-btn\" (click)=\"ToggleFeedSort()\"\n [title]=\"FeedSortOrder === 'newest' ? 'Showing newest first' : 'Showing oldest first'\">\n <i class=\"fa-solid\" [class.fa-arrow-down-short-wide]=\"FeedSortOrder === 'newest'\"\n [class.fa-arrow-up-short-wide]=\"FeedSortOrder === 'oldest'\"></i>\n {{ FeedSortOrder === 'newest' ? 'Newest' : 'Oldest' }}\n </button>\n <span class=\"at-feed-count\">{{ FilteredFeedItems.length }} items</span>\n </div>\n </div>\n <!-- Feed search bar -->\n <div class=\"at-feed-search-bar\">\n <i class=\"fa-solid fa-search at-feed-search-icon\"></i>\n <input type=\"text\"\n class=\"mj-input at-feed-search-input\"\n placeholder=\"Search items, sources, or tags...\"\n [(ngModel)]=\"FeedSearchQuery\"\n (input)=\"OnFeedSearchChange()\">\n @if (FeedSearchQuery) {\n <button class=\"at-feed-search-clear\" (click)=\"FeedSearchQuery = ''; OnFeedSearchChange()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n <div class=\"at-card-body at-feed-scroll-body\">\n @if (FilteredFeedItems.length === 0) {\n <div class=\"at-empty-state\">\n <i class=\"fa-solid fa-inbox\"></i>\n @if (FeedSearchQuery) {\n <p>No items match \"{{ FeedSearchQuery }}\"</p>\n } @else {\n <p>No processed items yet.</p>\n }\n </div>\n }\n @for (item of PaginatedFeedItems; track item.Name + item.SourceName + item.TimeAgo) {\n <div class=\"at-feed-item at-feed-item-clickable\" (click)=\"onFeedItemClick(GetFeedItemOriginalIndex(item))\">\n <div class=\"at-feed-status-dot\" [class]=\"item.Status\"></div>\n <div class=\"at-feed-item-content\">\n <span class=\"at-feed-item-name\">{{ item.Name }}</span>\n <span class=\"at-feed-item-source-label\">{{ item.SourceName }}</span>\n </div>\n <div class=\"at-feed-item-tags\">\n @for (tag of item.Tags; track tag) {\n <span class=\"at-feed-tag\">{{ tag }}</span>\n }\n </div>\n <span class=\"at-feed-item-time\">{{ item.TimeAgo }}</span>\n </div>\n }\n </div>\n <!-- Feed pagination -->\n @if (FeedTotalPages > 1) {\n <div class=\"at-feed-pagination\">\n <button class=\"at-action-btn at-secondary-btn\" [disabled]=\"FeedPage === 0\" (click)=\"FeedPrevPage()\">\n <i class=\"fa-solid fa-chevron-left\"></i>\n </button>\n <span class=\"at-feed-pagination-label\">Page {{ FeedPage + 1 }} of {{ FeedTotalPages }}</span>\n <button class=\"at-action-btn at-secondary-btn\" [disabled]=\"FeedPage >= FeedTotalPages - 1\" (click)=\"FeedNextPage()\">\n <i class=\"fa-solid fa-chevron-right\"></i>\n </button>\n </div>\n }\n @if (TotalItemCount > 0) {\n <div class=\"at-load-more-bar\">\n <span class=\"at-load-more-count\">Showing {{ FeedItems.length }} of {{ TotalItemCount }} items</span>\n @if (HasMoreItems) {\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"onLoadMoreItems()\" [disabled]=\"IsLoadingMoreItems\">\n @if (IsLoadingMoreItems) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Loading…\n } @else {\n <i class=\"fa-solid fa-chevron-down\"></i> Load more\n }\n </button>\n }\n </div>\n }\n </div>\n </div>\n\n <!-- Right sidebar -->\n <div class=\"at-pipeline-right\">\n <!-- Sources Quick List -->\n <div class=\"at-card\">\n <div class=\"at-card-header\">\n <span class=\"at-card-title\"><i class=\"fa-solid fa-database\"></i> Sources</span>\n </div>\n <div class=\"at-card-body\">\n @for (source of SourceMinis; track source.ID) {\n <div class=\"at-source-mini\">\n <div class=\"at-source-mini-icon\"><i [class]=\"source.Icon\"></i></div>\n <div class=\"at-source-mini-info\">\n <div class=\"at-source-mini-name\">{{ source.Name }}</div>\n <div class=\"at-source-mini-meta\">{{ source.Meta }}</div>\n </div>\n <div class=\"at-source-mini-status\" [class]=\"source.StatusClass\"></div>\n </div>\n }\n </div>\n </div>\n <!-- Trending Tags -->\n <div class=\"at-card at-tag-cloud-card\">\n <div class=\"at-card-title\" style=\"margin-bottom: 10px;\"><i class=\"fa-solid fa-chart-bar\"></i> Trending Tags</div>\n <div class=\"at-tag-cloud\">\n @for (tag of TrendingTags; track tag.Tag) {\n <span class=\"at-tag-pill\" [class]=\"tag.SizeClass\"\n [style.opacity]=\"0.4 + tag.AvgWeight * 0.6\"\n [title]=\"'Weight: ' + tag.AvgWeight.toFixed(2)\">{{ tag.Tag }}</span>\n }\n </div>\n </div>\n\n <!-- Pipeline Settings Widget -->\n <div class=\"at-card at-config-card\">\n <div class=\"at-card-header\" (click)=\"onToggleConfig()\" style=\"cursor:pointer\">\n <span class=\"at-card-title\"><i class=\"fa-solid fa-sliders\"></i> Pipeline Settings</span>\n <i class=\"fa-solid\" [class.fa-chevron-down]=\"!ShowPipelineConfig\" [class.fa-chevron-up]=\"ShowPipelineConfig\" style=\"font-size:0.7rem; color:var(--mj-text-muted)\"></i>\n </div>\n @if (ShowPipelineConfig) {\n <div class=\"at-card-body at-config-body\">\n <div class=\"at-config-row\">\n <label class=\"at-config-label\">Batch Size</label>\n <div class=\"at-config-control\">\n <input type=\"number\" class=\"at-config-input\" min=\"10\" max=\"1000\" step=\"10\"\n [(ngModel)]=\"PipelineConfig.Pipeline!.BatchSize\">\n </div>\n </div>\n <div class=\"at-config-row\">\n <label class=\"at-config-label\">Throttle (ms)</label>\n <div class=\"at-config-control\">\n <input type=\"range\" class=\"at-config-slider\" min=\"0\" max=\"5000\" step=\"100\"\n [(ngModel)]=\"PipelineConfig.Pipeline!.DelayBetweenBatchesMs\">\n <span class=\"at-config-value\">{{ PipelineConfig.Pipeline!.DelayBetweenBatchesMs }}ms</span>\n </div>\n </div>\n <div class=\"at-config-row\">\n <label class=\"at-config-label\">Error Tolerance</label>\n <div class=\"at-config-control\">\n <input type=\"range\" class=\"at-config-slider\" min=\"5\" max=\"50\" step=\"5\"\n [(ngModel)]=\"PipelineConfig.Pipeline!.ErrorThresholdPercent\">\n <span class=\"at-config-value\">{{ PipelineConfig.Pipeline!.ErrorThresholdPercent }}%</span>\n </div>\n </div>\n <div class=\"at-config-row\">\n <label class=\"at-config-label\">Auto-resume</label>\n <div class=\"at-config-control\">\n <label class=\"at-config-toggle\">\n <input type=\"checkbox\" [(ngModel)]=\"PipelineConfig.Pipeline!.ResumeFromLastBatch\">\n <span class=\"at-toggle-track\"><span class=\"at-toggle-thumb\"></span></span>\n </label>\n </div>\n </div>\n <div class=\"at-config-divider\"></div>\n <div class=\"at-config-section-label\">LLM Rate Limits</div>\n <div class=\"at-config-row\">\n <label class=\"at-config-label\">Requests/min</label>\n <div class=\"at-config-control\">\n <input type=\"number\" class=\"at-config-input\" min=\"1\" max=\"500\"\n [(ngModel)]=\"PipelineConfig.RateLimits!.LLM!.RequestsPerMinute\">\n </div>\n </div>\n <div class=\"at-config-row\">\n <label class=\"at-config-label\">Tokens/min</label>\n <div class=\"at-config-control\">\n <input type=\"number\" class=\"at-config-input\" min=\"1000\" max=\"5000000\" step=\"10000\"\n [(ngModel)]=\"PipelineConfig.RateLimits!.LLM!.TokensPerMinute\">\n <span class=\"at-config-value\">{{ formatTokenCount(PipelineConfig.RateLimits!.LLM!.TokensPerMinute ?? 0) }}</span>\n </div>\n </div>\n <div class=\"at-config-section-label\">Embedding Rate Limits</div>\n <div class=\"at-config-row\">\n <label class=\"at-config-label\">Requests/min</label>\n <div class=\"at-config-control\">\n <input type=\"number\" class=\"at-config-input\" min=\"1\" max=\"1000\"\n [(ngModel)]=\"PipelineConfig.RateLimits!.Embedding!.RequestsPerMinute\">\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</div>\n</mj-page-body-interior>\n"]}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * @fileoverview Classify · Content Sources tab.
3
+ *
4
+ * Self-contained sub-page: owns its header-interior, the source cards grid,
5
+ * the per-source detail slide-in, and the quick-schedule dialog. Receives the
6
+ * shared raw data needed to build the cards (sources, items, tags, runs, and
7
+ * the cached ScheduledAction + EntityRecordDocument lookups) from the host
8
+ * orchestrator via `@Input()`. Cross-tab concerns — opening the add/edit slide-in
9
+ * form, running the pipeline, opening a content-item detail, and reloading the
10
+ * shared source list after a mutation — bubble up via `@Output()`.
11
+ *
12
+ * Out of scope (stays in the host): the add/edit source slide-in FORM, the
13
+ * pipeline tab, and the Content Duplicates section.
14
+ */
15
+ import { EventEmitter } from '@angular/core';
16
+ import { BaseAngularComponent } from '@memberjunction/ng-base-types';
17
+ import { MJScheduledActionEntity } from '@memberjunction/core-entities';
18
+ import { SourceCard, SourceDetailInfo, ContentItemDetail, ItemPipelineStatus } from '../shared/classify.types';
19
+ import { formatNumber } from '../shared/classify.format';
20
+ import * as i0 from "@angular/core";
21
+ export declare class ClassifySourcesTabComponent extends BaseAngularComponent {
22
+ private cdr;
23
+ /** Raw `MJ: Content Sources` rows — the primary source for the cards. */
24
+ private _sources;
25
+ set Sources(value: Record<string, unknown>[]);
26
+ get Sources(): Record<string, unknown>[];
27
+ /** Raw `MJ: Content Items` rows — used to count items per source. */
28
+ private _items;
29
+ set Items(value: Record<string, unknown>[]);
30
+ get Items(): Record<string, unknown>[];
31
+ /** Raw `MJ: Content Item Tags` rows — used to count tags per source. */
32
+ private _tags;
33
+ set Tags(value: Record<string, unknown>[]);
34
+ get Tags(): Record<string, unknown>[];
35
+ /** Raw `MJ: Content Process Runs` rows — used to derive last-run + status. */
36
+ private _runs;
37
+ set Runs(value: Record<string, unknown>[]);
38
+ get Runs(): Record<string, unknown>[];
39
+ /** Accurate total item count from TotalRowCount (used when a single source exists). */
40
+ private _totalItemCount;
41
+ set TotalItemCount(value: number);
42
+ get TotalItemCount(): number;
43
+ /** Accurate total tag count from TotalRowCount (used when a single source exists). */
44
+ private _totalTagCount;
45
+ set TotalTagCount(value: number);
46
+ get TotalTagCount(): number;
47
+ /** Cached ScheduledAction entities, keyed by normalized ID, supplied by the host. */
48
+ private _scheduledActions;
49
+ set ScheduledActions(value: Map<string, MJScheduledActionEntity>);
50
+ get ScheduledActions(): Map<string, MJScheduledActionEntity>;
51
+ /** Cache: EntityRecordDocument ID → RecordID, supplied by the host. */
52
+ private _entityRecordDocCache;
53
+ set EntityRecordDocCache(value: Map<string, string>);
54
+ get EntityRecordDocCache(): Map<string, string>;
55
+ /** Shown while a manual Refresh() recomputes the source cards. */
56
+ IsLoading: boolean;
57
+ SourceCards: SourceCard[];
58
+ SelectedSource: SourceDetailInfo | null;
59
+ ShowSourceDetail: boolean;
60
+ SourceDetailLoading: boolean;
61
+ SourceDetailStatusFilter: ItemPipelineStatus | 'All';
62
+ readonly SourceDetailStatusOptions: (ItemPipelineStatus | 'All')[];
63
+ SourceDetailPage: number;
64
+ readonly SourceDetailPageSize = 10;
65
+ ShowDryRunPreview: boolean;
66
+ DryRunSourceCard: SourceCard | null;
67
+ ShowScheduleDialog: boolean;
68
+ ScheduleSaving: boolean;
69
+ SchedulingSourceCard: SourceCard | null;
70
+ ScheduleCron: string;
71
+ ScheduleEnabled: boolean;
72
+ /** Template-facing formatter. */
73
+ readonly formatNumber: typeof formatNumber;
74
+ /** Bubble "add source" up — host opens its slide-in CRUD form. */
75
+ AddSourceRequested: EventEmitter<void>;
76
+ /** Bubble "add source (guided)" up — host opens the setup wizard. */
77
+ AddSourceGuidedRequested: EventEmitter<void>;
78
+ /** Bubble "edit source" up — host opens its slide-in CRUD form pre-filled. */
79
+ EditSourceRequested: EventEmitter<SourceCard>;
80
+ /** Bubble "run pipeline for source" up — host runs the pipeline for the given source ID. */
81
+ RunSourceRequested: EventEmitter<string>;
82
+ /** Bubble "open content item detail" up — host owns the item-detail slide-in. */
83
+ OpenContentItemRequested: EventEmitter<ContentItemDetail>;
84
+ /** Fired after a delete / schedule change so the host reloads the shared source list. */
85
+ DataChanged: EventEmitter<void>;
86
+ /**
87
+ * Recompute the source cards from the current host-supplied inputs. The data
88
+ * itself is owned by the host (flows in via @Input); Refresh just rebuilds the
89
+ * view models and surfaces a brief loading state for user feedback.
90
+ */
91
+ Refresh(): Promise<void>;
92
+ onAddSource(): void;
93
+ onAddSourceGuided(): void;
94
+ onEditSource(card: SourceCard): void;
95
+ onRunSource(sourceID: string): void;
96
+ /** Opens the dry-run disposition preview for a source. */
97
+ OpenDryRunPreview(card: SourceCard): void;
98
+ CloseDryRunPreview(): void;
99
+ /** Rebuild the source card view models from the current inputs. */
100
+ private rebuild;
101
+ private countItemsBySource;
102
+ private countTagsBySource;
103
+ private getLastRunBySource;
104
+ private countTagsByItem;
105
+ private getAllWeightedTagsForItem;
106
+ /** Check if a source type's Configuration says RequiresFileType !== false */
107
+ private sourceTypeRequiresFileType;
108
+ /** Resolve the entity record ID from the EntityRecordDocument for entity-sourced content items */
109
+ private resolveEntityRecordID;
110
+ /** Resolve the entity name for an entity-sourced content source */
111
+ private resolveEntityName;
112
+ private resolveEmbeddingModelName;
113
+ private resolveVectorIndexName;
114
+ /**
115
+ * Infer embedding and tagging pipeline statuses for a content item. Uses tag
116
+ * count + run-history heuristics since dedicated status columns are not yet
117
+ * available on the ContentItem entity.
118
+ */
119
+ private inferPipelineStatuses;
120
+ private mapStatusString;
121
+ formatRelativeTime(dateStr: string | null | undefined): string;
122
+ /** Looks up the cron expression for a cached ScheduledAction by ID */
123
+ private getScheduledActionCron;
124
+ /** Returns the CSS class for a pipeline status badge color */
125
+ GetStatusBadgeClass(status: ItemPipelineStatus): string;
126
+ DeleteSource(card: SourceCard): Promise<void>;
127
+ OpenScheduleDialog(card: SourceCard): void;
128
+ CloseScheduleDialog(): void;
129
+ /**
130
+ * Saves a new ScheduledAction for the current source, links it via
131
+ * ContentSource.ScheduledActionID, and creates the default action params
132
+ * for the Autotag and Vectorize action.
133
+ */
134
+ SaveSchedule(): Promise<void>;
135
+ /**
136
+ * Removes the schedule from a source card by unlinking the ScheduledActionID.
137
+ */
138
+ RemoveSchedule(card: SourceCard): Promise<void>;
139
+ /** Returns the human-readable schedule description for a source card. */
140
+ GetScheduleLabel(card: SourceCard): string;
141
+ /** Returns a human-readable preview of a cron expression for the schedule dialog. */
142
+ GetCronPreview(cron: string): string;
143
+ /** Finds the Action ID for "Autotag and Vectorize Content" by querying actions */
144
+ private findAutotagActionID;
145
+ /**
146
+ * Creates a ScheduledActionParam that passes the source ID to the action.
147
+ * Looks up the "EntityNames" action param and sets the source ID as its value.
148
+ */
149
+ private createSourceIDParam;
150
+ /**
151
+ * Links (or unlinks) a ScheduledAction to a ContentSource by updating
152
+ * the ContentSource.ScheduledActionID field.
153
+ */
154
+ private linkScheduleToSource;
155
+ OpenSourceDetail(card: SourceCard): Promise<void>;
156
+ CloseSourceDetail(): void;
157
+ OpenContentItemDetail(item: ContentItemDetail): void;
158
+ OpenEditSourceFromDetail(): void;
159
+ RunSourceFromDetail(): void;
160
+ DeleteSourceFromDetail(): Promise<void>;
161
+ get FilteredSourceDetailItems(): ContentItemDetail[];
162
+ get FilteredSourceDetailTotal(): number;
163
+ get SourceDetailTotalPages(): number;
164
+ SourceDetailPrevPage(): void;
165
+ SourceDetailNextPage(): void;
166
+ OnSourceDetailStatusFilterChange(): void;
167
+ /**
168
+ * Placeholder handler for retrying failed items in source detail. Surfaces a
169
+ * notification; the pipeline re-processes failed items on the next run.
170
+ */
171
+ RetryFailedItems(): void;
172
+ private loadContentItemsForSource;
173
+ private loadRunHistoryForSource;
174
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClassifySourcesTabComponent, never>;
175
+ static ɵcmp: i0.ɵɵComponentDeclaration<ClassifySourcesTabComponent, "classify-sources-tab", never, { "Sources": { "alias": "Sources"; "required": false; }; "Items": { "alias": "Items"; "required": false; }; "Tags": { "alias": "Tags"; "required": false; }; "Runs": { "alias": "Runs"; "required": false; }; "TotalItemCount": { "alias": "TotalItemCount"; "required": false; }; "TotalTagCount": { "alias": "TotalTagCount"; "required": false; }; "ScheduledActions": { "alias": "ScheduledActions"; "required": false; }; "EntityRecordDocCache": { "alias": "EntityRecordDocCache"; "required": false; }; }, { "AddSourceRequested": "AddSourceRequested"; "AddSourceGuidedRequested": "AddSourceGuidedRequested"; "EditSourceRequested": "EditSourceRequested"; "RunSourceRequested": "RunSourceRequested"; "OpenContentItemRequested": "OpenContentItemRequested"; "DataChanged": "DataChanged"; }, never, never, false, never>;
176
+ }
177
+ //# sourceMappingURL=sources-tab.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sources-tab.component.d.ts","sourceRoot":"","sources":["../../../../../src/AI/components/autotagging/tabs/sources-tab.component.ts"],"names":[],"mappings":"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"}