@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,65 @@
1
+ /**
2
+ * @fileoverview Shared Record Drilldown Panel
3
+ *
4
+ * A single, reusable side panel that lists records behind a selection on the
5
+ * Knowledge Hub "Visualize" surface. It is driven entirely by inputs and emits
6
+ * record-open intents up to the host — it never imports NavigationService, so it
7
+ * stays a generic child that the KH resource host wires to navigation.
8
+ *
9
+ * Consumed by BOTH:
10
+ * - Cluster-point selection: the host passes a single record row.
11
+ * - Tag-cloud word selection: the host passes the records carrying that tag.
12
+ */
13
+ import { EventEmitter } from '@angular/core';
14
+ import * as i0 from "@angular/core";
15
+ /**
16
+ * A single record row shown in the drilldown panel. `EntityName` + `RecordID`
17
+ * are the open-intent payload; `Title`/`Subtitle`/`Weight` are display-only.
18
+ */
19
+ export interface DrilldownRecord {
20
+ /** Entity the record belongs to (e.g. 'MJ: Content Items' or a business entity). */
21
+ EntityName: string;
22
+ /** Primary-key URL segment used to open the record. */
23
+ RecordID: string;
24
+ /** Primary display label. */
25
+ Title: string;
26
+ /** Optional secondary line (source, content type, etc.). */
27
+ Subtitle?: string;
28
+ /** Optional weight/relevance shown as a chip (0.0 - 1.0). */
29
+ Weight?: number;
30
+ }
31
+ /**
32
+ * Emitted when the user asks to open one of the listed records. The host
33
+ * translates this into a NavigationService call.
34
+ */
35
+ export interface DrilldownOpenRequest {
36
+ EntityName: string;
37
+ RecordID: string;
38
+ }
39
+ export declare class RecordDrilldownComponent {
40
+ /** Panel heading (e.g. the tag text or the selected record's label). */
41
+ Title: string;
42
+ /** Optional sub-heading under the title (e.g. "12 records"). */
43
+ Subtitle: string;
44
+ /** Icon class shown next to the title. */
45
+ Icon: string;
46
+ /** Whether the panel is visible. */
47
+ Visible: boolean;
48
+ /** Whether records are currently loading. */
49
+ IsLoading: boolean;
50
+ /** The records to list. */
51
+ Records: DrilldownRecord[];
52
+ /** Emitted when the user closes the panel. */
53
+ Closed: EventEmitter<void>;
54
+ /** Emitted when the user clicks a record to open it. */
55
+ OpenRecord: EventEmitter<DrilldownOpenRequest>;
56
+ OnClose(): void;
57
+ OnOpen(record: DrilldownRecord): void;
58
+ TrackByRecord(_index: number, record: DrilldownRecord): string;
59
+ WeightPercent(weight: number | undefined): number;
60
+ static ɵfac: i0.ɵɵFactoryDeclaration<RecordDrilldownComponent, never>;
61
+ static ɵcmp: i0.ɵɵComponentDeclaration<RecordDrilldownComponent, "app-kh-record-drilldown", never, { "Title": { "alias": "Title"; "required": false; }; "Subtitle": { "alias": "Subtitle"; "required": false; }; "Icon": { "alias": "Icon"; "required": false; }; "Visible": { "alias": "Visible"; "required": false; }; "IsLoading": { "alias": "IsLoading"; "required": false; }; "Records": { "alias": "Records"; "required": false; }; }, { "Closed": "Closed"; "OpenRecord": "OpenRecord"; }, never, never, false, never>;
62
+ }
63
+ /** Tree-shaking prevention */
64
+ export declare function LoadRecordDrilldownComponent(): void;
65
+ //# sourceMappingURL=record-drilldown.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-drilldown.component.d.ts","sourceRoot":"","sources":["../../../../../src/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAA4B,YAAY,EAA2B,MAAM,eAAe,CAAC;;AAEhG;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B,oFAAoF;IACpF,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBAOa,wBAAwB;IACjC,wEAAwE;IAC/D,KAAK,SAAM;IACpB,gEAAgE;IACvD,QAAQ,SAAM;IACvB,0CAA0C;IACjC,IAAI,SAAsB;IACnC,oCAAoC;IAC3B,OAAO,UAAS;IACzB,6CAA6C;IACpC,SAAS,UAAS;IAC3B,2BAA2B;IAClB,OAAO,EAAE,eAAe,EAAE,CAAM;IAEzC,8CAA8C;IACpC,MAAM,qBAA4B;IAC5C,wDAAwD;IAC9C,UAAU,qCAA4C;IAEzD,OAAO,IAAI,IAAI;IAIf,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAOrC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM;IAI9D,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM;yCAlC/C,wBAAwB;2CAAxB,wBAAwB;CAwCpC;AAED,8BAA8B;AAC9B,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD"}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * @fileoverview Shared Record Drilldown Panel
3
+ *
4
+ * A single, reusable side panel that lists records behind a selection on the
5
+ * Knowledge Hub "Visualize" surface. It is driven entirely by inputs and emits
6
+ * record-open intents up to the host — it never imports NavigationService, so it
7
+ * stays a generic child that the KH resource host wires to navigation.
8
+ *
9
+ * Consumed by BOTH:
10
+ * - Cluster-point selection: the host passes a single record row.
11
+ * - Tag-cloud word selection: the host passes the records carrying that tag.
12
+ */
13
+ import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "@memberjunction/ng-shared-generic";
16
+ import * as i2 from "@memberjunction/ng-ui-components";
17
+ function RecordDrilldownComponent_Conditional_0_Conditional_7_Template(rf, ctx) { if (rf & 1) {
18
+ i0.ɵɵelementStart(0, "span", 5);
19
+ i0.ɵɵtext(1);
20
+ i0.ɵɵelementEnd();
21
+ } if (rf & 2) {
22
+ const ctx_r1 = i0.ɵɵnextContext(2);
23
+ i0.ɵɵadvance();
24
+ i0.ɵɵtextInterpolate(ctx_r1.Subtitle);
25
+ } }
26
+ function RecordDrilldownComponent_Conditional_0_Conditional_11_Template(rf, ctx) { if (rf & 1) {
27
+ i0.ɵɵelement(0, "mj-loading", 9);
28
+ } }
29
+ function RecordDrilldownComponent_Conditional_0_Conditional_12_Template(rf, ctx) { if (rf & 1) {
30
+ i0.ɵɵelementStart(0, "div", 10);
31
+ i0.ɵɵelement(1, "i", 11);
32
+ i0.ɵɵelementStart(2, "p");
33
+ i0.ɵɵtext(3, "No records found");
34
+ i0.ɵɵelementEnd()();
35
+ } }
36
+ function RecordDrilldownComponent_Conditional_0_Conditional_13_For_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
37
+ i0.ɵɵelementStart(0, "span", 16);
38
+ i0.ɵɵtext(1);
39
+ i0.ɵɵelementEnd();
40
+ } if (rf & 2) {
41
+ const record_r4 = i0.ɵɵnextContext().$implicit;
42
+ i0.ɵɵadvance();
43
+ i0.ɵɵtextInterpolate(record_r4.Subtitle);
44
+ } }
45
+ function RecordDrilldownComponent_Conditional_0_Conditional_13_For_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
46
+ i0.ɵɵelementStart(0, "span", 17);
47
+ i0.ɵɵtext(1);
48
+ i0.ɵɵelementEnd();
49
+ } if (rf & 2) {
50
+ const record_r4 = i0.ɵɵnextContext().$implicit;
51
+ const ctx_r1 = i0.ɵɵnextContext(3);
52
+ i0.ɵɵadvance();
53
+ i0.ɵɵtextInterpolate1("", ctx_r1.WeightPercent(record_r4.Weight), "%");
54
+ } }
55
+ function RecordDrilldownComponent_Conditional_0_Conditional_13_For_1_Template(rf, ctx) { if (rf & 1) {
56
+ const _r3 = i0.ɵɵgetCurrentView();
57
+ i0.ɵɵelementStart(0, "div", 13);
58
+ i0.ɵɵlistener("click", function RecordDrilldownComponent_Conditional_0_Conditional_13_For_1_Template_div_click_0_listener() { const record_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnOpen(record_r4)); });
59
+ i0.ɵɵelementStart(1, "div", 14)(2, "span", 15);
60
+ i0.ɵɵtext(3);
61
+ i0.ɵɵelementEnd();
62
+ i0.ɵɵconditionalCreate(4, RecordDrilldownComponent_Conditional_0_Conditional_13_For_1_Conditional_4_Template, 2, 1, "span", 16);
63
+ i0.ɵɵelementEnd();
64
+ i0.ɵɵconditionalCreate(5, RecordDrilldownComponent_Conditional_0_Conditional_13_For_1_Conditional_5_Template, 2, 1, "span", 17);
65
+ i0.ɵɵelement(6, "i", 18);
66
+ i0.ɵɵelementEnd();
67
+ } if (rf & 2) {
68
+ const record_r4 = ctx.$implicit;
69
+ i0.ɵɵadvance(3);
70
+ i0.ɵɵtextInterpolate(record_r4.Title);
71
+ i0.ɵɵadvance();
72
+ i0.ɵɵconditional(record_r4.Subtitle ? 4 : -1);
73
+ i0.ɵɵadvance();
74
+ i0.ɵɵconditional(record_r4.Weight != null ? 5 : -1);
75
+ } }
76
+ function RecordDrilldownComponent_Conditional_0_Conditional_13_Template(rf, ctx) { if (rf & 1) {
77
+ i0.ɵɵrepeaterCreate(0, RecordDrilldownComponent_Conditional_0_Conditional_13_For_1_Template, 7, 3, "div", 12, i0.ɵɵcomponentInstance().TrackByRecord, true);
78
+ } if (rf & 2) {
79
+ const ctx_r1 = i0.ɵɵnextContext(2);
80
+ i0.ɵɵrepeater(ctx_r1.Records);
81
+ } }
82
+ function RecordDrilldownComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
83
+ const _r1 = i0.ɵɵgetCurrentView();
84
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2);
85
+ i0.ɵɵelement(3, "i");
86
+ i0.ɵɵelementStart(4, "div", 3)(5, "span", 4);
87
+ i0.ɵɵtext(6);
88
+ i0.ɵɵelementEnd();
89
+ i0.ɵɵconditionalCreate(7, RecordDrilldownComponent_Conditional_0_Conditional_7_Template, 2, 1, "span", 5);
90
+ i0.ɵɵelementEnd()();
91
+ i0.ɵɵelementStart(8, "button", 6);
92
+ i0.ɵɵlistener("click", function RecordDrilldownComponent_Conditional_0_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnClose()); });
93
+ i0.ɵɵelement(9, "i", 7);
94
+ i0.ɵɵelementEnd()();
95
+ i0.ɵɵelementStart(10, "div", 8);
96
+ i0.ɵɵconditionalCreate(11, RecordDrilldownComponent_Conditional_0_Conditional_11_Template, 1, 0, "mj-loading", 9)(12, RecordDrilldownComponent_Conditional_0_Conditional_12_Template, 4, 0, "div", 10)(13, RecordDrilldownComponent_Conditional_0_Conditional_13_Template, 2, 0);
97
+ i0.ɵɵelementEnd()();
98
+ } if (rf & 2) {
99
+ const ctx_r1 = i0.ɵɵnextContext();
100
+ i0.ɵɵadvance(3);
101
+ i0.ɵɵclassMap(ctx_r1.Icon);
102
+ i0.ɵɵadvance(3);
103
+ i0.ɵɵtextInterpolate(ctx_r1.Title);
104
+ i0.ɵɵadvance();
105
+ i0.ɵɵconditional(ctx_r1.Subtitle ? 7 : -1);
106
+ i0.ɵɵadvance(4);
107
+ i0.ɵɵconditional(ctx_r1.IsLoading ? 11 : ctx_r1.Records.length === 0 ? 12 : 13);
108
+ } }
109
+ export class RecordDrilldownComponent {
110
+ /** Panel heading (e.g. the tag text or the selected record's label). */
111
+ Title = '';
112
+ /** Optional sub-heading under the title (e.g. "12 records"). */
113
+ Subtitle = '';
114
+ /** Icon class shown next to the title. */
115
+ Icon = 'fa-solid fa-list';
116
+ /** Whether the panel is visible. */
117
+ Visible = false;
118
+ /** Whether records are currently loading. */
119
+ IsLoading = false;
120
+ /** The records to list. */
121
+ Records = [];
122
+ /** Emitted when the user closes the panel. */
123
+ Closed = new EventEmitter();
124
+ /** Emitted when the user clicks a record to open it. */
125
+ OpenRecord = new EventEmitter();
126
+ OnClose() {
127
+ this.Closed.emit();
128
+ }
129
+ OnOpen(record) {
130
+ if (!record.EntityName || !record.RecordID) {
131
+ return;
132
+ }
133
+ this.OpenRecord.emit({ EntityName: record.EntityName, RecordID: record.RecordID });
134
+ }
135
+ TrackByRecord(_index, record) {
136
+ return `${record.EntityName}|${record.RecordID}`;
137
+ }
138
+ WeightPercent(weight) {
139
+ if (weight == null) {
140
+ return 0;
141
+ }
142
+ return Math.round(Math.max(0, Math.min(1, weight)) * 100);
143
+ }
144
+ static ɵfac = function RecordDrilldownComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RecordDrilldownComponent)(); };
145
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RecordDrilldownComponent, selectors: [["app-kh-record-drilldown"]], inputs: { Title: "Title", Subtitle: "Subtitle", Icon: "Icon", Visible: "Visible", IsLoading: "IsLoading", Records: "Records" }, outputs: { Closed: "Closed", OpenRecord: "OpenRecord" }, standalone: false, decls: 1, vars: 1, consts: [[1, "drilldown-panel"], [1, "drilldown-header"], [1, "drilldown-title"], [1, "drilldown-title-text"], [1, "drilldown-title-main"], [1, "drilldown-title-sub"], ["mjButton", "", "variant", "icon", "size", "sm", "title", "Close", 3, "click"], [1, "fa-solid", "fa-times"], [1, "drilldown-body"], ["text", "Loading records..."], [1, "drilldown-empty"], [1, "fa-solid", "fa-inbox"], [1, "drilldown-item"], [1, "drilldown-item", 3, "click"], [1, "drilldown-item-main"], [1, "drilldown-item-title"], [1, "drilldown-item-subtitle"], [1, "drilldown-item-weight"], [1, "fa-solid", "fa-chevron-right", "drilldown-item-chevron"]], template: function RecordDrilldownComponent_Template(rf, ctx) { if (rf & 1) {
146
+ i0.ɵɵconditionalCreate(0, RecordDrilldownComponent_Conditional_0_Template, 14, 5, "div", 0);
147
+ } if (rf & 2) {
148
+ i0.ɵɵconditional(ctx.Visible ? 0 : -1);
149
+ } }, dependencies: [i1.LoadingComponent, i2.MJButtonDirective], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n}\n\n.drilldown-panel[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 340px;\n max-width: 100%;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.drilldown-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.drilldown-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n}\n\n.drilldown-title[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 16px;\n}\n\n.drilldown-title-text[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n\n.drilldown-title-main[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.drilldown-title-sub[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.drilldown-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 8px;\n}\n\n.drilldown-empty[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 32px 16px;\n color: var(--mj-text-muted);\n text-align: center;\n}\n\n.drilldown-empty[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n font-size: 28px;\n opacity: 0.6;\n}\n\n.drilldown-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n border-radius: 6px;\n cursor: pointer;\n transition: background 0.15s ease;\n}\n\n.drilldown-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.drilldown-item-main[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n min-width: 0;\n flex: 1;\n}\n\n.drilldown-item-title[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.drilldown-item-subtitle[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.drilldown-item-weight[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n border-radius: 10px;\n padding: 2px 8px;\n flex-shrink: 0;\n}\n\n.drilldown-item-chevron[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n font-size: 12px;\n flex-shrink: 0;\n}"], changeDetection: 0 });
150
+ }
151
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RecordDrilldownComponent, [{
152
+ type: Component,
153
+ args: [{ selector: 'app-kh-record-drilldown', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (Visible) {\n <div class=\"drilldown-panel\">\n <div class=\"drilldown-header\">\n <div class=\"drilldown-title\">\n <i [class]=\"Icon\"></i>\n <div class=\"drilldown-title-text\">\n <span class=\"drilldown-title-main\">{{ Title }}</span>\n @if (Subtitle) {\n <span class=\"drilldown-title-sub\">{{ Subtitle }}</span>\n }\n </div>\n </div>\n <button mjButton variant=\"icon\" size=\"sm\" (click)=\"OnClose()\" title=\"Close\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <div class=\"drilldown-body\">\n @if (IsLoading) {\n <mj-loading text=\"Loading records...\"></mj-loading>\n } @else if (Records.length === 0) {\n <div class=\"drilldown-empty\">\n <i class=\"fa-solid fa-inbox\"></i>\n <p>No records found</p>\n </div>\n } @else {\n @for (record of Records; track TrackByRecord($index, record)) {\n <div class=\"drilldown-item\" (click)=\"OnOpen(record)\">\n <div class=\"drilldown-item-main\">\n <span class=\"drilldown-item-title\">{{ record.Title }}</span>\n @if (record.Subtitle) {\n <span class=\"drilldown-item-subtitle\">{{ record.Subtitle }}</span>\n }\n </div>\n @if (record.Weight != null) {\n <span class=\"drilldown-item-weight\">{{ WeightPercent(record.Weight) }}%</span>\n }\n <i class=\"fa-solid fa-chevron-right drilldown-item-chevron\"></i>\n </div>\n }\n }\n </div>\n </div>\n}\n", styles: [":host {\n display: block;\n height: 100%;\n}\n\n.drilldown-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 340px;\n max-width: 100%;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.drilldown-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 12px 16px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n}\n\n.drilldown-title {\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n}\n\n.drilldown-title > i {\n color: var(--mj-brand-primary);\n font-size: 16px;\n}\n\n.drilldown-title-text {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n\n.drilldown-title-main {\n font-weight: 600;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.drilldown-title-sub {\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n.drilldown-body {\n flex: 1;\n overflow-y: auto;\n padding: 8px;\n}\n\n.drilldown-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 32px 16px;\n color: var(--mj-text-muted);\n text-align: center;\n}\n\n.drilldown-empty > i {\n font-size: 28px;\n opacity: 0.6;\n}\n\n.drilldown-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 12px;\n border-radius: 6px;\n cursor: pointer;\n transition: background 0.15s ease;\n}\n\n.drilldown-item:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.drilldown-item-main {\n display: flex;\n flex-direction: column;\n min-width: 0;\n flex: 1;\n}\n\n.drilldown-item-title {\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.drilldown-item-subtitle {\n font-size: 12px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.drilldown-item-weight {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, transparent);\n border-radius: 10px;\n padding: 2px 8px;\n flex-shrink: 0;\n}\n\n.drilldown-item-chevron {\n color: var(--mj-text-disabled);\n font-size: 12px;\n flex-shrink: 0;\n}\n"] }]
154
+ }], null, { Title: [{
155
+ type: Input
156
+ }], Subtitle: [{
157
+ type: Input
158
+ }], Icon: [{
159
+ type: Input
160
+ }], Visible: [{
161
+ type: Input
162
+ }], IsLoading: [{
163
+ type: Input
164
+ }], Records: [{
165
+ type: Input
166
+ }], Closed: [{
167
+ type: Output
168
+ }], OpenRecord: [{
169
+ type: Output
170
+ }] }); })();
171
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RecordDrilldownComponent, { className: "RecordDrilldownComponent", filePath: "src/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.ts", lineNumber: 49 }); })();
172
+ /** Tree-shaking prevention */
173
+ export function LoadRecordDrilldownComponent() {
174
+ // Prevents tree-shaking of the component
175
+ }
176
+ //# sourceMappingURL=record-drilldown.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-drilldown.component.js","sourceRoot":"","sources":["../../../../../src/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.ts","../../../../../src/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.html"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;;;;;ICLpF,+BAAkC;IAAA,YAAc;IAAA,iBAAO;;;IAArB,cAAc;IAAd,qCAAc;;;IAWpD,gCAAmD;;;IAEnD,+BAA6B;IAC3B,wBAAiC;IACjC,yBAAG;IAAA,gCAAgB;IACrB,AADqB,iBAAI,EACnB;;;IAOE,gCAAsC;IAAA,YAAqB;IAAA,iBAAO;;;IAA5B,cAAqB;IAArB,wCAAqB;;;IAI7D,gCAAoC;IAAA,YAAmC;IAAA,iBAAO;;;;IAA1C,cAAmC;IAAnC,sEAAmC;;;;IAR3E,+BAAqD;IAAzB,2OAAS,wBAAc,KAAC;IAEhD,AADF,+BAAiC,eACI;IAAA,YAAkB;IAAA,iBAAO;IAC5D,+HAAuB;IAGzB,iBAAM;IACN,+HAA6B;IAG7B,wBAAgE;IAClE,iBAAM;;;IATiC,eAAkB;IAAlB,qCAAkB;IACrD,cAEC;IAFD,6CAEC;IAEH,cAEC;IAFD,mDAEC;;;IAVL,2JAaC;;;IAbD,6BAaC;;;;IApCH,AADF,AADF,8BAA6B,aACG,aACC;IAC3B,oBAAsB;IAEpB,AADF,8BAAkC,cACG;IAAA,YAAW;IAAA,iBAAO;IACrD,yGAAgB;IAIpB,AADE,iBAAM,EACF;IACN,iCAA4E;IAAlC,4LAAS,gBAAS,KAAC;IAC3D,uBAAiC;IAErC,AADE,iBAAS,EACL;IAEN,+BAA4B;IAQxB,AALA,AAFF,iHAAiB,qFAEkB,0EAK1B;IAiBb,AADE,iBAAM,EACF;;;IAtCG,eAAc;IAAd,0BAAc;IAEoB,eAAW;IAAX,kCAAW;IAC9C,cAEC;IAFD,0CAEC;IASL,eAsBC;IAtBD,+EAsBC;;ADQP,MAAM,OAAO,wBAAwB;IACjC,wEAAwE;IAC/D,KAAK,GAAG,EAAE,CAAC;IACpB,gEAAgE;IACvD,QAAQ,GAAG,EAAE,CAAC;IACvB,0CAA0C;IACjC,IAAI,GAAG,kBAAkB,CAAC;IACnC,oCAAoC;IAC3B,OAAO,GAAG,KAAK,CAAC;IACzB,6CAA6C;IACpC,SAAS,GAAG,KAAK,CAAC;IAC3B,2BAA2B;IAClB,OAAO,GAAsB,EAAE,CAAC;IAEzC,8CAA8C;IACpC,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC5C,wDAAwD;IAC9C,UAAU,GAAG,IAAI,YAAY,EAAwB,CAAC;IAEzD,OAAO;QACV,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,MAAuB;QACjC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzC,OAAO;QACX,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC;IAEM,aAAa,CAAC,MAAc,EAAE,MAAuB;QACxD,OAAO,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;IACrD,CAAC;IAEM,aAAa,CAAC,MAA0B;QAC3C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC;QACb,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC9D,CAAC;kHAvCQ,wBAAwB;6DAAxB,wBAAwB;YChDrC,2FAAe;;YAAf,sCA2CC;;;iFDKY,wBAAwB;cAPpC,SAAS;2BACI,yBAAyB,cACvB,KAAK,mBACA,uBAAuB,CAAC,MAAM;;kBAM9C,KAAK;;kBAEL,KAAK;;kBAEL,KAAK;;kBAEL,KAAK;;kBAEL,KAAK;;kBAEL,KAAK;;kBAGL,MAAM;;kBAEN,MAAM;;kFAjBE,wBAAwB;AA0CrC,8BAA8B;AAC9B,MAAM,UAAU,4BAA4B;IACxC,yCAAyC;AAC7C,CAAC","sourcesContent":["/**\n * @fileoverview Shared Record Drilldown Panel\n *\n * A single, reusable side panel that lists records behind a selection on the\n * Knowledge Hub \"Visualize\" surface. It is driven entirely by inputs and emits\n * record-open intents up to the host — it never imports NavigationService, so it\n * stays a generic child that the KH resource host wires to navigation.\n *\n * Consumed by BOTH:\n * - Cluster-point selection: the host passes a single record row.\n * - Tag-cloud word selection: the host passes the records carrying that tag.\n */\n\nimport { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\n\n/**\n * A single record row shown in the drilldown panel. `EntityName` + `RecordID`\n * are the open-intent payload; `Title`/`Subtitle`/`Weight` are display-only.\n */\nexport interface DrilldownRecord {\n /** Entity the record belongs to (e.g. 'MJ: Content Items' or a business entity). */\n EntityName: string;\n /** Primary-key URL segment used to open the record. */\n RecordID: string;\n /** Primary display label. */\n Title: string;\n /** Optional secondary line (source, content type, etc.). */\n Subtitle?: string;\n /** Optional weight/relevance shown as a chip (0.0 - 1.0). */\n Weight?: number;\n}\n\n/**\n * Emitted when the user asks to open one of the listed records. The host\n * translates this into a NavigationService call.\n */\nexport interface DrilldownOpenRequest {\n EntityName: string;\n RecordID: string;\n}\n\n@Component({\n selector: 'app-kh-record-drilldown',\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './record-drilldown.component.html',\n styleUrls: ['./record-drilldown.component.css'],\n})\nexport class RecordDrilldownComponent {\n /** Panel heading (e.g. the tag text or the selected record's label). */\n @Input() Title = '';\n /** Optional sub-heading under the title (e.g. \"12 records\"). */\n @Input() Subtitle = '';\n /** Icon class shown next to the title. */\n @Input() Icon = 'fa-solid fa-list';\n /** Whether the panel is visible. */\n @Input() Visible = false;\n /** Whether records are currently loading. */\n @Input() IsLoading = false;\n /** The records to list. */\n @Input() Records: DrilldownRecord[] = [];\n\n /** Emitted when the user closes the panel. */\n @Output() Closed = new EventEmitter<void>();\n /** Emitted when the user clicks a record to open it. */\n @Output() OpenRecord = new EventEmitter<DrilldownOpenRequest>();\n\n public OnClose(): void {\n this.Closed.emit();\n }\n\n public OnOpen(record: DrilldownRecord): void {\n if (!record.EntityName || !record.RecordID) {\n return;\n }\n this.OpenRecord.emit({ EntityName: record.EntityName, RecordID: record.RecordID });\n }\n\n public TrackByRecord(_index: number, record: DrilldownRecord): string {\n return `${record.EntityName}|${record.RecordID}`;\n }\n\n public WeightPercent(weight: number | undefined): number {\n if (weight == null) {\n return 0;\n }\n return Math.round(Math.max(0, Math.min(1, weight)) * 100);\n }\n}\n\n/** Tree-shaking prevention */\nexport function LoadRecordDrilldownComponent(): void {\n // Prevents tree-shaking of the component\n}\n","@if (Visible) {\n <div class=\"drilldown-panel\">\n <div class=\"drilldown-header\">\n <div class=\"drilldown-title\">\n <i [class]=\"Icon\"></i>\n <div class=\"drilldown-title-text\">\n <span class=\"drilldown-title-main\">{{ Title }}</span>\n @if (Subtitle) {\n <span class=\"drilldown-title-sub\">{{ Subtitle }}</span>\n }\n </div>\n </div>\n <button mjButton variant=\"icon\" size=\"sm\" (click)=\"OnClose()\" title=\"Close\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <div class=\"drilldown-body\">\n @if (IsLoading) {\n <mj-loading text=\"Loading records...\"></mj-loading>\n } @else if (Records.length === 0) {\n <div class=\"drilldown-empty\">\n <i class=\"fa-solid fa-inbox\"></i>\n <p>No records found</p>\n </div>\n } @else {\n @for (record of Records; track TrackByRecord($index, record)) {\n <div class=\"drilldown-item\" (click)=\"OnOpen(record)\">\n <div class=\"drilldown-item-main\">\n <span class=\"drilldown-item-title\">{{ record.Title }}</span>\n @if (record.Subtitle) {\n <span class=\"drilldown-item-subtitle\">{{ record.Subtitle }}</span>\n }\n </div>\n @if (record.Weight != null) {\n <span class=\"drilldown-item-weight\">{{ WeightPercent(record.Weight) }}%</span>\n }\n <i class=\"fa-solid fa-chevron-right drilldown-item-chevron\"></i>\n </div>\n }\n }\n </div>\n </div>\n}\n"]}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * @fileoverview Knowledge Hub Tag Cloud (Visualize > Tag Cloud mode)
3
+ *
4
+ * Renders a weighted tag cloud via `@memberjunction/ng-word-cloud`'s
5
+ * `MJWordCloudComponent`, driven by `TagCloudEngine.Instance.GetTagCloud(...)`.
6
+ *
7
+ * Provides a scope picker (Content Source / Content Type / Tag root) plus a
8
+ * sizing control. Loads on init and whenever the scope changes. Emits a
9
+ * `TagSelected` intent up to the host so the shared record-drilldown panel can
10
+ * be populated by the host (this component never touches NavigationService).
11
+ */
12
+ import { EventEmitter, OnInit } from '@angular/core';
13
+ import { IMetadataProvider } from '@memberjunction/core';
14
+ import { BaseAngularComponent } from '@memberjunction/ng-base-types';
15
+ import { TagCloudScope } from '@memberjunction/tag-engine-base';
16
+ import { WordCloudItem, WordCloudItemEvent } from '@memberjunction/ng-word-cloud';
17
+ import * as i0 from "@angular/core";
18
+ /** A selectable scope option (content source / content type / tag root). */
19
+ interface ScopeOption {
20
+ ID: string;
21
+ Name: string;
22
+ }
23
+ /**
24
+ * Emitted when the user clicks a tag word. The host resolves this into the
25
+ * shared drilldown panel (records carrying the tag).
26
+ */
27
+ export interface TagCloudSelection {
28
+ /** The clicked tag's text. */
29
+ Tag: string;
30
+ /** Raw frequency count carried from TagCloudItem. */
31
+ Count: number;
32
+ /** The scope currently applied (so the host can scope the drilldown query). */
33
+ Scope: TagCloudScope;
34
+ }
35
+ export declare class TagCloudComponent extends BaseAngularComponent implements OnInit {
36
+ private cdr;
37
+ /** Re-declared so the host can bind `[Provider]` and we thread it through. */
38
+ Provider: IMetadataProvider | null;
39
+ /** Emitted when a tag word is clicked. */
40
+ TagSelected: EventEmitter<TagCloudSelection>;
41
+ IsLoading: boolean;
42
+ Items: WordCloudItem[];
43
+ /** Scope picker options. */
44
+ ContentSourceOptions: ScopeOption[];
45
+ ContentTypeOptions: ScopeOption[];
46
+ TagRootOptions: ScopeOption[];
47
+ /** Current scope selections (empty string = "All"). */
48
+ SelectedContentSourceID: string;
49
+ SelectedContentTypeID: string;
50
+ SelectedTagRootID: string;
51
+ /** Sizing: maximum font size driven by weight. */
52
+ MaxFontSize: number;
53
+ MinFontSize: number;
54
+ /** Color mode passed to the word cloud. */
55
+ ColorMode: 'brand' | 'categorical' | 'weight-gradient';
56
+ ngOnInit(): Promise<void>;
57
+ /** Re-load the cloud for the current scope. Called on init + scope change. */
58
+ LoadCloud(): Promise<void>;
59
+ /** Reload after any scope dropdown change. */
60
+ OnScopeChanged(): void;
61
+ /** Apply a new max font size (sizing-by-weight control). */
62
+ OnSizeChanged(value: number): void;
63
+ /** Clear all scope filters and reload. */
64
+ ClearScope(): void;
65
+ get HasActiveScope(): boolean;
66
+ get HasItems(): boolean;
67
+ /** Word-cloud click handler — emits a selection up to the host. */
68
+ OnWordClicked(event: WordCloudItemEvent): void;
69
+ /** Build the current TagCloudScope from the picker selections. */
70
+ BuildScope(): TagCloudScope;
71
+ /** Map an engine TagCloudItem to a word-cloud WordCloudItem (Count → Metadata). */
72
+ private toWordCloudItem;
73
+ /** Populate scope-picker options from the KH + Tag engines. */
74
+ private loadScopeOptions;
75
+ static ɵfac: i0.ɵɵFactoryDeclaration<TagCloudComponent, never>;
76
+ static ɵcmp: i0.ɵɵComponentDeclaration<TagCloudComponent, "app-kh-tag-cloud", never, { "Provider": { "alias": "Provider"; "required": false; }; }, { "TagSelected": "TagSelected"; }, never, never, false, never>;
77
+ }
78
+ /** Tree-shaking prevention */
79
+ export declare function LoadTagCloudComponent(): void;
80
+ export {};
81
+ //# sourceMappingURL=tag-cloud.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag-cloud.component.d.ts","sourceRoot":"","sources":["../../../../../src/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAIH,YAAY,EAEZ,MAAM,EAET,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAEH,aAAa,EAEhB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;;AAElF,4EAA4E;AAC5E,UAAU,WAAW;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,KAAK,EAAE,aAAa,CAAC;CACxB;AAED,qBAMa,iBAAkB,SAAQ,oBAAqB,YAAW,MAAM;IACzE,OAAO,CAAC,GAAG,CAA6B;IAExC,8EAA8E;IAC5D,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAE5D,0CAA0C;IAChC,WAAW,kCAAyC;IAMvD,SAAS,UAAQ;IACjB,KAAK,EAAE,aAAa,EAAE,CAAM;IAEnC,4BAA4B;IACrB,oBAAoB,EAAE,WAAW,EAAE,CAAM;IACzC,kBAAkB,EAAE,WAAW,EAAE,CAAM;IACvC,cAAc,EAAE,WAAW,EAAE,CAAM;IAE1C,uDAAuD;IAChD,uBAAuB,SAAM;IAC7B,qBAAqB,SAAM;IAC3B,iBAAiB,SAAM;IAE9B,kDAAkD;IAC3C,WAAW,SAAM;IACjB,WAAW,SAAM;IAExB,2CAA2C;IACpC,SAAS,EAAE,OAAO,GAAG,aAAa,GAAG,iBAAiB,CAAqB;IAM5E,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B,8EAA8E;IACjE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBvC,8CAA8C;IACvC,cAAc,IAAI,IAAI;IAI7B,4DAA4D;IACrD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzC,0CAA0C;IACnC,UAAU,IAAI,IAAI;IAOzB,IAAW,cAAc,IAAI,OAAO,CAEnC;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,mEAAmE;IAC5D,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IASrD,kEAAkE;IAC3D,UAAU,IAAI,aAAa;IAkBlC,mFAAmF;IACnF,OAAO,CAAC,eAAe;IAQvB,+DAA+D;YACjD,gBAAgB;yCAxIrB,iBAAiB;2CAAjB,iBAAiB;CAiK7B;AAED,8BAA8B;AAC9B,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}