@memberjunction/ng-dashboards 6.2.0-edge.5 → 6.2.0-edge.7

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 (293) hide show
  1. package/README.md +35 -0
  2. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +2 -2
  3. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
  4. package/dist/AI/components/analytics/realtime/realtime-management.component.d.ts.map +1 -1
  5. package/dist/AI/components/analytics/realtime/realtime-management.component.js +3 -1
  6. package/dist/AI/components/analytics/realtime/realtime-management.component.js.map +1 -1
  7. package/dist/AI/components/analytics/realtime/realtime-overview.component.d.ts +1 -1
  8. package/dist/AI/components/analytics/realtime/realtime-overview.component.js +3 -3
  9. package/dist/AI/components/analytics/realtime/realtime-overview.component.js.map +1 -1
  10. package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts +6 -4
  11. package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts.map +1 -1
  12. package/dist/AI/components/analytics/realtime/realtime-session-data.js +8 -2
  13. package/dist/AI/components/analytics/realtime/realtime-session-data.js.map +1 -1
  14. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +1 -1
  15. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  16. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +21 -13
  17. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  18. package/dist/AI/components/autotagging/components/classify-item-grid.component.js +1 -1
  19. package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -1
  20. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -1
  21. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +1 -0
  22. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -1
  23. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -1
  24. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +1 -0
  25. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -1
  26. package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -1
  27. package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1 -0
  28. package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -1
  29. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +7 -1
  30. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  31. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +210 -57
  32. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  33. package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts +12 -11
  34. package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts.map +1 -1
  35. package/dist/AI/components/duplicates/duplicate-detection-run-scope.js +15 -15
  36. package/dist/AI/components/duplicates/duplicate-detection-run-scope.js.map +1 -1
  37. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  38. package/dist/AI/components/execution-monitoring.component.js +28 -16
  39. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  40. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +1 -0
  41. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
  42. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +32 -8
  43. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
  44. package/dist/AI/components/tags/tags-resource.component.d.ts +1 -1
  45. package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
  46. package/dist/AI/components/tags/tags-resource.component.js +18 -9
  47. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  48. package/dist/AI/components/vectors/sensitive-fields.d.ts +9 -4
  49. package/dist/AI/components/vectors/sensitive-fields.d.ts.map +1 -1
  50. package/dist/AI/components/vectors/sensitive-fields.js +39 -14
  51. package/dist/AI/components/vectors/sensitive-fields.js.map +1 -1
  52. package/dist/AI/components/vectors/vector-document-rules.d.ts +13 -0
  53. package/dist/AI/components/vectors/vector-document-rules.d.ts.map +1 -1
  54. package/dist/AI/components/vectors/vector-document-rules.js +14 -0
  55. package/dist/AI/components/vectors/vector-document-rules.js.map +1 -1
  56. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +34 -14
  57. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  58. package/dist/AI/components/vectors/vector-management-resource.component.js +134 -51
  59. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  60. package/dist/AI/components/vectors/vector-store-selection.d.ts +32 -0
  61. package/dist/AI/components/vectors/vector-store-selection.d.ts.map +1 -0
  62. package/dist/AI/components/vectors/vector-store-selection.js +57 -0
  63. package/dist/AI/components/vectors/vector-store-selection.js.map +1 -0
  64. package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
  65. package/dist/AI/services/ai-instrumentation.service.js +4 -2
  66. package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
  67. package/dist/Actions/action-result-code.d.ts +80 -0
  68. package/dist/Actions/action-result-code.d.ts.map +1 -0
  69. package/dist/Actions/action-result-code.js +163 -0
  70. package/dist/Actions/action-result-code.js.map +1 -0
  71. package/dist/Actions/components/actions-overview.component.d.ts +8 -0
  72. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  73. package/dist/Actions/components/actions-overview.component.js +12 -9
  74. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  75. package/dist/Actions/components/execution-monitoring.component.d.ts +29 -9
  76. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  77. package/dist/Actions/components/execution-monitoring.component.js +65 -42
  78. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  79. package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
  80. package/dist/Actions/components/explorer/action-card.component.js +5 -4
  81. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  82. package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts +198 -0
  83. package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts.map +1 -0
  84. package/dist/ChiefOfStaff/chief-of-staff-agent-context.js +289 -0
  85. package/dist/ChiefOfStaff/chief-of-staff-agent-context.js.map +1 -0
  86. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts +29 -0
  87. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts.map +1 -0
  88. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js +666 -0
  89. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js.map +1 -0
  90. package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts +56 -0
  91. package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts.map +1 -0
  92. package/dist/ChiefOfStaff/chief-of-staff-governance.component.js +515 -0
  93. package/dist/ChiefOfStaff/chief-of-staff-governance.component.js.map +1 -0
  94. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts +14 -0
  95. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts.map +1 -0
  96. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js +39 -0
  97. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js.map +1 -0
  98. package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts +17 -0
  99. package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts.map +1 -0
  100. package/dist/ChiefOfStaff/chief-of-staff-overview.component.js +485 -0
  101. package/dist/ChiefOfStaff/chief-of-staff-overview.component.js.map +1 -0
  102. package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts +139 -0
  103. package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts.map +1 -0
  104. package/dist/ChiefOfStaff/chief-of-staff-page-base.js +602 -0
  105. package/dist/ChiefOfStaff/chief-of-staff-page-base.js.map +1 -0
  106. package/dist/ChiefOfStaff/index.d.ts +6 -0
  107. package/dist/ChiefOfStaff/index.d.ts.map +1 -0
  108. package/dist/ChiefOfStaff/index.js +6 -0
  109. package/dist/ChiefOfStaff/index.js.map +1 -0
  110. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  111. package/dist/Communication/communication-logs-resource.component.js +2 -1
  112. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  113. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  114. package/dist/Communication/communication-monitor-resource.component.js +26 -21
  115. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  116. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  117. package/dist/Communication/communication-runs-resource.component.js +14 -13
  118. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  119. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  120. package/dist/ComponentStudio/component-studio-dashboard.component.js +1 -0
  121. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  122. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  123. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +2 -1
  124. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  125. package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -1
  126. package/dist/ComponentStudio/services/component-version.service.js +3 -0
  127. package/dist/ComponentStudio/services/component-version.service.js.map +1 -1
  128. package/dist/DashboardEditor/dashboard-editor.component.d.ts +17 -2
  129. package/dist/DashboardEditor/dashboard-editor.component.d.ts.map +1 -1
  130. package/dist/DashboardEditor/dashboard-editor.component.js +94 -43
  131. package/dist/DashboardEditor/dashboard-editor.component.js.map +1 -1
  132. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +45 -2
  133. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  134. package/dist/DataExplorer/data-explorer-dashboard.component.js +178 -55
  135. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  136. package/dist/DataExplorer/models/explorer-state.interface.d.ts +2 -0
  137. package/dist/DataExplorer/models/explorer-state.interface.d.ts.map +1 -1
  138. package/dist/DataExplorer/models/explorer-state.interface.js.map +1 -1
  139. package/dist/DevTools/graphql-console.component.js +2 -2
  140. package/dist/DevTools/lazy-module-status.component.js +2 -2
  141. package/dist/FormBuilder/form-builder-resource.component.d.ts.map +1 -1
  142. package/dist/FormBuilder/form-builder-resource.component.js +5 -0
  143. package/dist/FormBuilder/form-builder-resource.component.js.map +1 -1
  144. package/dist/Integration/components/connections/connections.component.js +2 -2
  145. package/dist/Integration/services/integration-data.service.d.ts +1 -1
  146. package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
  147. package/dist/Integration/services/integration-data.service.js +4 -3
  148. package/dist/Integration/services/integration-data.service.js.map +1 -1
  149. package/dist/Lists/components/lists-browse-resource.component.js +1 -1
  150. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  151. package/dist/Lists/components/lists-my-lists-resource.component.js +1 -1
  152. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  153. package/dist/LoginStudio/login-studio-resource.component.d.ts +10 -2
  154. package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -1
  155. package/dist/LoginStudio/login-studio-resource.component.js +111 -77
  156. package/dist/LoginStudio/login-studio-resource.component.js.map +1 -1
  157. package/dist/MCP/mcp-dashboard.component.d.ts +24 -4
  158. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  159. package/dist/MCP/mcp-dashboard.component.js +118 -65
  160. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  161. package/dist/PredictiveStudio/business-predictions.view-models.d.ts +1 -1
  162. package/dist/PredictiveStudio/business-predictions.view-models.d.ts.map +1 -1
  163. package/dist/PredictiveStudio/business-predictions.view-models.js +3 -3
  164. package/dist/PredictiveStudio/business-predictions.view-models.js.map +1 -1
  165. package/dist/PredictiveStudio/components/ps-experiments.component.d.ts +6 -63
  166. package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
  167. package/dist/PredictiveStudio/components/ps-experiments.component.js +257 -521
  168. package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
  169. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts +0 -18
  170. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts.map +1 -1
  171. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +124 -251
  172. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js.map +1 -1
  173. package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts +5 -9
  174. package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts.map +1 -1
  175. package/dist/PredictiveStudio/components/ps-pipelines.component.js +98 -130
  176. package/dist/PredictiveStudio/components/ps-pipelines.component.js.map +1 -1
  177. package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts +53 -4
  178. package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -1
  179. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +338 -326
  180. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -1
  181. package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts +19 -0
  182. package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts.map +1 -0
  183. package/dist/PredictiveStudio/components/ps-row-drivers.component.js +85 -0
  184. package/dist/PredictiveStudio/components/ps-row-drivers.component.js.map +1 -0
  185. package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts +19 -1
  186. package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts.map +1 -1
  187. package/dist/PredictiveStudio/engine/predictive-studio.engine.js +52 -2
  188. package/dist/PredictiveStudio/engine/predictive-studio.engine.js.map +1 -1
  189. package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts +3 -1
  190. package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts.map +1 -1
  191. package/dist/PredictiveStudio/predictive-studio-agent-context.js +3 -0
  192. package/dist/PredictiveStudio/predictive-studio-agent-context.js.map +1 -1
  193. package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts +27 -4
  194. package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts.map +1 -1
  195. package/dist/PredictiveStudio/predictive-studio-score-history.service.js +94 -61
  196. package/dist/PredictiveStudio/predictive-studio-score-history.service.js.map +1 -1
  197. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts +29 -5
  198. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
  199. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +186 -103
  200. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
  201. package/dist/PredictiveStudio/resources/ps-studio-resource.component.js +1 -1
  202. package/dist/PredictiveStudio/resources/ps-studio-resource.component.js.map +1 -1
  203. package/dist/QueryBrowser/query-browser-resource.component.d.ts +26 -0
  204. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  205. package/dist/QueryBrowser/query-browser-resource.component.js +375 -252
  206. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  207. package/dist/UserRoutines/user-routines-resource.component.d.ts +8 -1
  208. package/dist/UserRoutines/user-routines-resource.component.d.ts.map +1 -1
  209. package/dist/UserRoutines/user-routines-resource.component.js +22 -4
  210. package/dist/UserRoutines/user-routines-resource.component.js.map +1 -1
  211. package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
  212. package/dist/VersionHistory/components/diff-resource.component.js +1 -0
  213. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  214. package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts +162 -0
  215. package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts.map +1 -0
  216. package/dist/VideoStudio/components/vs-archetype-editor.component.js +1105 -0
  217. package/dist/VideoStudio/components/vs-archetype-editor.component.js.map +1 -0
  218. package/dist/VideoStudio/components/vs-audio-options.component.d.ts +27 -0
  219. package/dist/VideoStudio/components/vs-audio-options.component.d.ts.map +1 -0
  220. package/dist/VideoStudio/components/vs-audio-options.component.js +119 -0
  221. package/dist/VideoStudio/components/vs-audio-options.component.js.map +1 -0
  222. package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts +105 -0
  223. package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts.map +1 -0
  224. package/dist/VideoStudio/components/vs-copilot-panel.component.js +560 -0
  225. package/dist/VideoStudio/components/vs-copilot-panel.component.js.map +1 -0
  226. package/dist/VideoStudio/components/vs-production-brief.component.d.ts +163 -0
  227. package/dist/VideoStudio/components/vs-production-brief.component.d.ts.map +1 -0
  228. package/dist/VideoStudio/components/vs-production-brief.component.js +1054 -0
  229. package/dist/VideoStudio/components/vs-production-brief.component.js.map +1 -0
  230. package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts +43 -0
  231. package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts.map +1 -0
  232. package/dist/VideoStudio/components/vs-setup-health-card.component.js +412 -0
  233. package/dist/VideoStudio/components/vs-setup-health-card.component.js.map +1 -0
  234. package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts +73 -0
  235. package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts.map +1 -0
  236. package/dist/VideoStudio/components/vs-studio-slide-in.component.js +271 -0
  237. package/dist/VideoStudio/components/vs-studio-slide-in.component.js.map +1 -0
  238. package/dist/VideoStudio/index.d.ts +12 -0
  239. package/dist/VideoStudio/index.d.ts.map +1 -0
  240. package/dist/VideoStudio/index.js +12 -0
  241. package/dist/VideoStudio/index.js.map +1 -0
  242. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts +118 -0
  243. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts.map +1 -0
  244. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js +964 -0
  245. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js.map +1 -0
  246. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts +70 -0
  247. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts.map +1 -0
  248. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js +600 -0
  249. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js.map +1 -0
  250. package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts +182 -0
  251. package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts.map +1 -0
  252. package/dist/VideoStudio/resources/video-studio-productions-resource.component.js +1481 -0
  253. package/dist/VideoStudio/resources/video-studio-productions-resource.component.js.map +1 -0
  254. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts +102 -0
  255. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts.map +1 -0
  256. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js +240 -0
  257. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js.map +1 -0
  258. package/dist/VideoStudio/video-studio-agent-context.d.ts +495 -0
  259. package/dist/VideoStudio/video-studio-agent-context.d.ts.map +1 -0
  260. package/dist/VideoStudio/video-studio-agent-context.js +992 -0
  261. package/dist/VideoStudio/video-studio-agent-context.js.map +1 -0
  262. package/dist/ai-dashboards.module.d.ts +25 -21
  263. package/dist/ai-dashboards.module.d.ts.map +1 -1
  264. package/dist/ai-dashboards.module.js +25 -3
  265. package/dist/ai-dashboards.module.js.map +1 -1
  266. package/dist/module.d.ts +13 -12
  267. package/dist/module.d.ts.map +1 -1
  268. package/dist/module.js +7 -0
  269. package/dist/module.js.map +1 -1
  270. package/dist/public-api.d.ts +8 -0
  271. package/dist/public-api.d.ts.map +1 -1
  272. package/dist/public-api.js +10 -0
  273. package/dist/public-api.js.map +1 -1
  274. package/dist/shared/action-scheduled-job.d.ts.map +1 -1
  275. package/dist/shared/action-scheduled-job.js +2 -0
  276. package/dist/shared/action-scheduled-job.js.map +1 -1
  277. package/dist/video-studio-dashboards.module.d.ts +40 -0
  278. package/dist/video-studio-dashboards.module.d.ts.map +1 -0
  279. package/dist/video-studio-dashboards.module.js +159 -0
  280. package/dist/video-studio-dashboards.module.js.map +1 -0
  281. package/package.json +77 -71
  282. package/dist/PredictiveStudio/at-risk.view-models.d.ts +0 -120
  283. package/dist/PredictiveStudio/at-risk.view-models.d.ts.map +0 -1
  284. package/dist/PredictiveStudio/at-risk.view-models.js +0 -261
  285. package/dist/PredictiveStudio/at-risk.view-models.js.map +0 -1
  286. package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts +0 -109
  287. package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts.map +0 -1
  288. package/dist/PredictiveStudio/components/ps-confirm-modal.component.js +0 -323
  289. package/dist/PredictiveStudio/components/ps-confirm-modal.component.js.map +0 -1
  290. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts +0 -137
  291. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts.map +0 -1
  292. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js +0 -826
  293. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js.map +0 -1
@@ -204,7 +204,7 @@ export class ClassifyItemGridComponent extends BaseAngularComponent {
204
204
  }
205
205
  const tagCounts = await this.loadTagCounts(result.Results.map(r => r['ID']));
206
206
  const rows = result.Results.map(r => this.toRow(r, tagCounts));
207
- this.applyRows(rows, result.TotalRowCount);
207
+ this.applyRows(rows, result.TotalRowCount ?? 0);
208
208
  }
209
209
  /**
210
210
  * Build the item-level filter that scopes to a pipeline run: the run's
@@ -1 +1 @@
1
- {"version":3,"file":"classify-item-grid.component.js","sourceRoot":"","sources":["../../../../../src/AI/components/autotagging/components/classify-item-grid.component.ts","../../../../../src/AI/components/autotagging/components/classify-item-grid.component.html"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Classify · Content Item Grid (Phase 4 audit/analytics).\n *\n * Thin, reusable AG Grid listing of content items in one of two modes:\n * - scoped to a single pipeline run via `[RunID]` (items processed in that run), or\n * - all items (when `[RunID]` is null).\n *\n * Read-only: uses `ResultType:'simple'` + an explicit narrow `Fields` list, and a\n * load-more / page-size widening approach mirroring the host dashboard. Selecting a\n * row bubbles `(ItemSelected)` UP — this component owns no navigation (the host owns\n * NavigationService and opens the drilldown).\n */\nimport {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n inject,\n} from '@angular/core';\nimport { RunView } from '@memberjunction/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport {\n ColDef,\n GridApi,\n GridOptions,\n GridReadyEvent,\n ModuleRegistry,\n AllCommunityModule,\n Theme,\n themeAlpine,\n RowClickedEvent,\n} from 'ag-grid-community';\nimport { ClassifyItemGridRow } from '../shared/classify.types';\nimport { DeriveDisplayName, FormatDate } from '../shared/classify.format';\n\n// Register AG Grid community modules once (idempotent across grids in the bundle).\nModuleRegistry.registerModules([AllCommunityModule]);\n\n@Component({\n standalone: false,\n selector: 'classify-item-grid',\n templateUrl: './classify-item-grid.component.html',\n styleUrls: ['./classify-item-grid.component.css'],\n})\nexport class ClassifyItemGridComponent extends BaseAngularComponent {\n private cdr = inject(ChangeDetectorRef);\n\n /** One page worth of additional rows fetched when \"Load more\" is clicked. */\n private static readonly PAGE_SIZE = 100;\n\n /**\n * When set, scope the grid to items processed by this pipeline run. When null,\n * show all content items. Re-fetches on change (setter pattern, not ngOnChanges).\n */\n private _runID: string | null = null;\n @Input()\n set RunID(value: string | null) {\n if (value === this._runID) return;\n this._runID = value;\n this._pageSize = ClassifyItemGridComponent.PAGE_SIZE;\n void this.loadItems();\n }\n get RunID(): string | null {\n return this._runID;\n }\n\n /** When true, the grid loads its data on init. Lets a parent defer the query until the section is shown. */\n private _autoLoad = true;\n @Input()\n set AutoLoad(value: boolean) {\n const was = this._autoLoad;\n this._autoLoad = value;\n if (value && !was && !this._loaded) void this.loadItems();\n }\n get AutoLoad(): boolean {\n return this._autoLoad;\n }\n\n /** Emits the selected content item's ID when a row is clicked. */\n @Output() ItemSelected = new EventEmitter<string>();\n\n public Rows: ClassifyItemGridRow[] = [];\n public IsLoading = false;\n public IsLoadingMore = false;\n public TotalCount = 0;\n\n private _loaded = false;\n private _pageSize = ClassifyItemGridComponent.PAGE_SIZE;\n private gridApi: GridApi | null = null;\n\n public get HasMore(): boolean {\n return this.TotalCount > this.Rows.length;\n }\n\n // ── AG Grid configuration ──\n\n public Theme: Theme = themeAlpine.withParams({\n backgroundColor: 'var(--mj-bg-surface)',\n foregroundColor: 'var(--mj-text-primary)',\n textColor: 'var(--mj-text-primary)',\n borderColor: 'var(--mj-border-default)',\n chromeBackgroundColor: 'var(--mj-bg-surface-card)',\n headerBackgroundColor: 'var(--mj-bg-surface-card)',\n headerTextColor: 'var(--mj-text-secondary)',\n cellTextColor: 'var(--mj-text-primary)',\n subtleTextColor: 'var(--mj-text-muted)',\n dataBackgroundColor: 'var(--mj-bg-surface)',\n oddRowBackgroundColor: 'var(--mj-bg-surface-card)',\n rowHoverColor: 'var(--mj-bg-surface-hover, color-mix(in srgb, var(--mj-brand-primary) 5%, var(--mj-bg-surface)))',\n selectedRowBackgroundColor: 'color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface))',\n accentColor: 'var(--mj-brand-primary)',\n borderRadius: 'var(--mj-radius-sm)',\n browserColorScheme: 'inherit',\n });\n\n public GridOptions: GridOptions<ClassifyItemGridRow> = {\n animateRows: true,\n rowHeight: 36,\n headerHeight: 40,\n suppressCellFocus: true,\n enableCellTextSelection: true,\n suppressNoRowsOverlay: true,\n };\n\n public DefaultColDef: ColDef = {\n sortable: true,\n resizable: true,\n minWidth: 80,\n };\n\n public ColumnDefs: ColDef<ClassifyItemGridRow>[] = [\n { field: 'DisplayName', headerName: 'Item', flex: 2, minWidth: 220, tooltipField: 'DisplayName' },\n { field: 'SourceName', headerName: 'Source', flex: 1, minWidth: 140 },\n { field: 'TagCount', headerName: 'Tags', width: 90, type: 'numericColumn' },\n { field: 'TaggingStatus', headerName: 'Status', width: 130 },\n { field: 'UpdatedAt', headerName: 'Updated', width: 160, sort: 'desc',\n comparator: (_a, _b, nodeA, nodeB) =>\n (nodeA.data?.UpdatedAtRaw ?? 0) - (nodeB.data?.UpdatedAtRaw ?? 0) },\n ];\n\n public OnGridReady(event: GridReadyEvent<ClassifyItemGridRow>): void {\n this.gridApi = event.api;\n this.gridApi.setGridOption('rowData', this.Rows);\n }\n\n public OnRowClicked(event: RowClickedEvent<ClassifyItemGridRow>): void {\n if (event.data) this.ItemSelected.emit(event.data.ID);\n }\n\n /** Public refresh entry point (parent toolbar / load-more handler). */\n public async Reload(): Promise<void> {\n this._pageSize = ClassifyItemGridComponent.PAGE_SIZE;\n await this.loadItems();\n }\n\n public async LoadMore(): Promise<void> {\n if (this.IsLoadingMore || !this.HasMore) return;\n this.IsLoadingMore = true;\n this.cdr.detectChanges();\n this._pageSize += ClassifyItemGridComponent.PAGE_SIZE;\n await this.loadItems();\n this.IsLoadingMore = false;\n this.cdr.detectChanges();\n }\n\n private async loadItems(): Promise<void> {\n if (!this._autoLoad) return;\n this.IsLoading = true;\n this.cdr.detectChanges();\n\n // When scoped to a run, resolve the run's source + time window so we can\n // constrain the item query. There is no per-item run join table in the\n // schema, so we scope by ContentSource + the run's processing window\n // (same time-correlation basis the rest of the pipeline uses).\n let extraFilter = '';\n if (this._runID) {\n const scope = await this.resolveRunScope(this._runID);\n if (scope === null) {\n this.applyRows([], 0);\n return;\n }\n extraFilter = scope;\n }\n\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<Record<string, unknown>>({\n EntityName: 'MJ: Content Items',\n ExtraFilter: extraFilter,\n OrderBy: '__mj_UpdatedAt DESC',\n MaxRows: this._pageSize,\n StartRow: 0,\n ResultType: 'simple',\n Fields: ['ID', 'Name', 'Description', 'ContentSource', 'TaggingStatus', 'EmbeddingStatus', '__mj_UpdatedAt'],\n }, this.ProviderToUse.CurrentUser);\n\n if (!result.Success) {\n this.applyRows([], 0);\n return;\n }\n\n const tagCounts = await this.loadTagCounts(result.Results.map(r => r['ID'] as string));\n const rows = result.Results.map(r => this.toRow(r, tagCounts));\n this.applyRows(rows, result.TotalRowCount);\n }\n\n /**\n * Build the item-level filter that scopes to a pipeline run: the run's\n * ContentSource, optionally bounded by the run's processing window. Returns\n * null on a hard failure (so the caller short-circuits to an empty grid).\n */\n private async resolveRunScope(runID: string): Promise<string | null> {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<{ SourceID: string; StartTime: string | null; EndTime: string | null }>({\n EntityName: 'MJ: Content Process Runs',\n ExtraFilter: `ID='${runID}'`,\n Fields: ['SourceID', 'StartTime', 'EndTime'],\n ResultType: 'simple',\n }, this.ProviderToUse.CurrentUser);\n if (!result.Success || result.Results.length === 0) return null;\n\n const run = result.Results[0];\n const fragments = [`ContentSourceID='${run.SourceID.replace(/'/g, '')}'`];\n if (run.StartTime) fragments.push(`__mj_UpdatedAt >= '${this.toSqlDate(run.StartTime)}'`);\n if (run.EndTime) fragments.push(`__mj_UpdatedAt <= '${this.toSqlDate(run.EndTime)}'`);\n return fragments.join(' AND ');\n }\n\n /** Format an ISO date value for a SQL string literal (UTC, no tz suffix surprises). */\n private toSqlDate(value: string): string {\n const d = new Date(value);\n return isNaN(d.getTime()) ? value.replace(/'/g, '') : d.toISOString().replace('T', ' ').replace('Z', '');\n }\n\n /** Count tags per item for the visible page (one RunView, aggregated client-side). */\n private async loadTagCounts(itemIDs: string[]): Promise<Map<string, number>> {\n const counts = new Map<string, number>();\n if (itemIDs.length === 0) return counts;\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<{ ItemID: string }>({\n EntityName: 'MJ: Content Item Tags',\n ExtraFilter: this.buildItemIDInFilter(itemIDs, 'ItemID'),\n Fields: ['ItemID'],\n ResultType: 'simple',\n }, this.ProviderToUse.CurrentUser);\n if (result.Success) {\n for (const r of result.Results) {\n counts.set(r.ItemID, (counts.get(r.ItemID) ?? 0) + 1);\n }\n }\n return counts;\n }\n\n private toRow(r: Record<string, unknown>, tagCounts: Map<string, number>): ClassifyItemGridRow {\n const id = r['ID'] as string;\n const updatedAt = (r['__mj_UpdatedAt'] as Date | string | null) ?? null;\n return {\n ID: id,\n DisplayName: DeriveDisplayName({ Name: r['Name'] as string | null, Description: r['Description'] as string | null }),\n SourceName: (r['ContentSource'] as string) ?? 'Unknown',\n TagCount: tagCounts.get(id) ?? 0,\n EmbeddingStatus: (r['EmbeddingStatus'] as string) ?? '',\n TaggingStatus: (r['TaggingStatus'] as string) ?? '',\n UpdatedAt: updatedAt ? FormatDate(updatedAt) : '—',\n UpdatedAtRaw: updatedAt ? new Date(updatedAt).getTime() : 0,\n };\n }\n\n private applyRows(rows: ClassifyItemGridRow[], total: number): void {\n this.Rows = rows;\n this.TotalCount = total;\n this.IsLoading = false;\n this._loaded = true;\n this.gridApi?.setGridOption('rowData', rows);\n this.cdr.detectChanges();\n }\n\n /** Build an `IN (...)` filter from item IDs, defensively stripping quotes. */\n private buildItemIDInFilter(ids: string[], column = 'ID'): string {\n const quoted = ids.map(id => `'${id.replace(/'/g, '')}'`).join(',');\n return `${column} IN (${quoted})`;\n }\n}\n","<div class=\"cig-wrap\">\n @if (IsLoading && Rows.length === 0) {\n <mj-loading text=\"Loading items...\" size=\"small\"></mj-loading>\n } @else if (Rows.length === 0) {\n <mj-empty-state class=\"cig-empty\" Icon=\"fa-solid fa-inbox\" Title=\"No content items found.\" />\n } @else {\n <ag-grid-angular\n class=\"cig-grid\"\n [theme]=\"Theme\"\n [columnDefs]=\"ColumnDefs\"\n [defaultColDef]=\"DefaultColDef\"\n [gridOptions]=\"GridOptions\"\n [rowData]=\"Rows\"\n (gridReady)=\"OnGridReady($event)\"\n (rowClicked)=\"OnRowClicked($event)\">\n </ag-grid-angular>\n\n <div class=\"cig-footer\">\n <span class=\"cig-count\">Showing {{ Rows.length }} of {{ TotalCount }} items</span>\n @if (HasMore) {\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"LoadMore()\" [disabled]=\"IsLoadingMore\">\n @if (IsLoadingMore) {\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"]}
1
+ {"version":3,"file":"classify-item-grid.component.js","sourceRoot":"","sources":["../../../../../src/AI/components/autotagging/components/classify-item-grid.component.ts","../../../../../src/AI/components/autotagging/components/classify-item-grid.component.html"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Classify · Content Item Grid (Phase 4 audit/analytics).\n *\n * Thin, reusable AG Grid listing of content items in one of two modes:\n * - scoped to a single pipeline run via `[RunID]` (items processed in that run), or\n * - all items (when `[RunID]` is null).\n *\n * Read-only: uses `ResultType:'simple'` + an explicit narrow `Fields` list, and a\n * load-more / page-size widening approach mirroring the host dashboard. Selecting a\n * row bubbles `(ItemSelected)` UP — this component owns no navigation (the host owns\n * NavigationService and opens the drilldown).\n */\nimport {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n inject,\n} from '@angular/core';\nimport { RunView } from '@memberjunction/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport {\n ColDef,\n GridApi,\n GridOptions,\n GridReadyEvent,\n ModuleRegistry,\n AllCommunityModule,\n Theme,\n themeAlpine,\n RowClickedEvent,\n} from 'ag-grid-community';\nimport { ClassifyItemGridRow } from '../shared/classify.types';\nimport { DeriveDisplayName, FormatDate } from '../shared/classify.format';\n\n// Register AG Grid community modules once (idempotent across grids in the bundle).\nModuleRegistry.registerModules([AllCommunityModule]);\n\n@Component({\n standalone: false,\n selector: 'classify-item-grid',\n templateUrl: './classify-item-grid.component.html',\n styleUrls: ['./classify-item-grid.component.css'],\n})\nexport class ClassifyItemGridComponent extends BaseAngularComponent {\n private cdr = inject(ChangeDetectorRef);\n\n /** One page worth of additional rows fetched when \"Load more\" is clicked. */\n private static readonly PAGE_SIZE = 100;\n\n /**\n * When set, scope the grid to items processed by this pipeline run. When null,\n * show all content items. Re-fetches on change (setter pattern, not ngOnChanges).\n */\n private _runID: string | null = null;\n @Input()\n set RunID(value: string | null) {\n if (value === this._runID) return;\n this._runID = value;\n this._pageSize = ClassifyItemGridComponent.PAGE_SIZE;\n void this.loadItems();\n }\n get RunID(): string | null {\n return this._runID;\n }\n\n /** When true, the grid loads its data on init. Lets a parent defer the query until the section is shown. */\n private _autoLoad = true;\n @Input()\n set AutoLoad(value: boolean) {\n const was = this._autoLoad;\n this._autoLoad = value;\n if (value && !was && !this._loaded) void this.loadItems();\n }\n get AutoLoad(): boolean {\n return this._autoLoad;\n }\n\n /** Emits the selected content item's ID when a row is clicked. */\n @Output() ItemSelected = new EventEmitter<string>();\n\n public Rows: ClassifyItemGridRow[] = [];\n public IsLoading = false;\n public IsLoadingMore = false;\n public TotalCount = 0;\n\n private _loaded = false;\n private _pageSize = ClassifyItemGridComponent.PAGE_SIZE;\n private gridApi: GridApi | null = null;\n\n public get HasMore(): boolean {\n return this.TotalCount > this.Rows.length;\n }\n\n // ── AG Grid configuration ──\n\n public Theme: Theme = themeAlpine.withParams({\n backgroundColor: 'var(--mj-bg-surface)',\n foregroundColor: 'var(--mj-text-primary)',\n textColor: 'var(--mj-text-primary)',\n borderColor: 'var(--mj-border-default)',\n chromeBackgroundColor: 'var(--mj-bg-surface-card)',\n headerBackgroundColor: 'var(--mj-bg-surface-card)',\n headerTextColor: 'var(--mj-text-secondary)',\n cellTextColor: 'var(--mj-text-primary)',\n subtleTextColor: 'var(--mj-text-muted)',\n dataBackgroundColor: 'var(--mj-bg-surface)',\n oddRowBackgroundColor: 'var(--mj-bg-surface-card)',\n rowHoverColor: 'var(--mj-bg-surface-hover, color-mix(in srgb, var(--mj-brand-primary) 5%, var(--mj-bg-surface)))',\n selectedRowBackgroundColor: 'color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface))',\n accentColor: 'var(--mj-brand-primary)',\n borderRadius: 'var(--mj-radius-sm)',\n browserColorScheme: 'inherit',\n });\n\n public GridOptions: GridOptions<ClassifyItemGridRow> = {\n animateRows: true,\n rowHeight: 36,\n headerHeight: 40,\n suppressCellFocus: true,\n enableCellTextSelection: true,\n suppressNoRowsOverlay: true,\n };\n\n public DefaultColDef: ColDef = {\n sortable: true,\n resizable: true,\n minWidth: 80,\n };\n\n public ColumnDefs: ColDef<ClassifyItemGridRow>[] = [\n { field: 'DisplayName', headerName: 'Item', flex: 2, minWidth: 220, tooltipField: 'DisplayName' },\n { field: 'SourceName', headerName: 'Source', flex: 1, minWidth: 140 },\n { field: 'TagCount', headerName: 'Tags', width: 90, type: 'numericColumn' },\n { field: 'TaggingStatus', headerName: 'Status', width: 130 },\n { field: 'UpdatedAt', headerName: 'Updated', width: 160, sort: 'desc',\n comparator: (_a, _b, nodeA, nodeB) =>\n (nodeA.data?.UpdatedAtRaw ?? 0) - (nodeB.data?.UpdatedAtRaw ?? 0) },\n ];\n\n public OnGridReady(event: GridReadyEvent<ClassifyItemGridRow>): void {\n this.gridApi = event.api;\n this.gridApi.setGridOption('rowData', this.Rows);\n }\n\n public OnRowClicked(event: RowClickedEvent<ClassifyItemGridRow>): void {\n if (event.data) this.ItemSelected.emit(event.data.ID);\n }\n\n /** Public refresh entry point (parent toolbar / load-more handler). */\n public async Reload(): Promise<void> {\n this._pageSize = ClassifyItemGridComponent.PAGE_SIZE;\n await this.loadItems();\n }\n\n public async LoadMore(): Promise<void> {\n if (this.IsLoadingMore || !this.HasMore) return;\n this.IsLoadingMore = true;\n this.cdr.detectChanges();\n this._pageSize += ClassifyItemGridComponent.PAGE_SIZE;\n await this.loadItems();\n this.IsLoadingMore = false;\n this.cdr.detectChanges();\n }\n\n private async loadItems(): Promise<void> {\n if (!this._autoLoad) return;\n this.IsLoading = true;\n this.cdr.detectChanges();\n\n // When scoped to a run, resolve the run's source + time window so we can\n // constrain the item query. There is no per-item run join table in the\n // schema, so we scope by ContentSource + the run's processing window\n // (same time-correlation basis the rest of the pipeline uses).\n let extraFilter = '';\n if (this._runID) {\n const scope = await this.resolveRunScope(this._runID);\n if (scope === null) {\n this.applyRows([], 0);\n return;\n }\n extraFilter = scope;\n }\n\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<Record<string, unknown>>({\n EntityName: 'MJ: Content Items',\n ExtraFilter: extraFilter,\n OrderBy: '__mj_UpdatedAt DESC',\n MaxRows: this._pageSize,\n StartRow: 0,\n ResultType: 'simple',\n Fields: ['ID', 'Name', 'Description', 'ContentSource', 'TaggingStatus', 'EmbeddingStatus', '__mj_UpdatedAt'],\n }, this.ProviderToUse.CurrentUser);\n\n if (!result.Success) {\n this.applyRows([], 0);\n return;\n }\n\n const tagCounts = await this.loadTagCounts(result.Results.map(r => r['ID'] as string));\n const rows = result.Results.map(r => this.toRow(r, tagCounts));\n this.applyRows(rows, result.TotalRowCount ?? 0);\n }\n\n /**\n * Build the item-level filter that scopes to a pipeline run: the run's\n * ContentSource, optionally bounded by the run's processing window. Returns\n * null on a hard failure (so the caller short-circuits to an empty grid).\n */\n private async resolveRunScope(runID: string): Promise<string | null> {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<{ SourceID: string; StartTime: string | null; EndTime: string | null }>({\n EntityName: 'MJ: Content Process Runs',\n ExtraFilter: `ID='${runID}'`,\n Fields: ['SourceID', 'StartTime', 'EndTime'],\n ResultType: 'simple',\n }, this.ProviderToUse.CurrentUser);\n if (!result.Success || result.Results.length === 0) return null;\n\n const run = result.Results[0];\n const fragments = [`ContentSourceID='${run.SourceID.replace(/'/g, '')}'`];\n if (run.StartTime) fragments.push(`__mj_UpdatedAt >= '${this.toSqlDate(run.StartTime)}'`);\n if (run.EndTime) fragments.push(`__mj_UpdatedAt <= '${this.toSqlDate(run.EndTime)}'`);\n return fragments.join(' AND ');\n }\n\n /** Format an ISO date value for a SQL string literal (UTC, no tz suffix surprises). */\n private toSqlDate(value: string): string {\n const d = new Date(value);\n return isNaN(d.getTime()) ? value.replace(/'/g, '') : d.toISOString().replace('T', ' ').replace('Z', '');\n }\n\n /** Count tags per item for the visible page (one RunView, aggregated client-side). */\n private async loadTagCounts(itemIDs: string[]): Promise<Map<string, number>> {\n const counts = new Map<string, number>();\n if (itemIDs.length === 0) return counts;\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<{ ItemID: string }>({\n EntityName: 'MJ: Content Item Tags',\n ExtraFilter: this.buildItemIDInFilter(itemIDs, 'ItemID'),\n Fields: ['ItemID'],\n ResultType: 'simple',\n }, this.ProviderToUse.CurrentUser);\n if (result.Success) {\n for (const r of result.Results) {\n counts.set(r.ItemID, (counts.get(r.ItemID) ?? 0) + 1);\n }\n }\n return counts;\n }\n\n private toRow(r: Record<string, unknown>, tagCounts: Map<string, number>): ClassifyItemGridRow {\n const id = r['ID'] as string;\n const updatedAt = (r['__mj_UpdatedAt'] as Date | string | null) ?? null;\n return {\n ID: id,\n DisplayName: DeriveDisplayName({ Name: r['Name'] as string | null, Description: r['Description'] as string | null }),\n SourceName: (r['ContentSource'] as string) ?? 'Unknown',\n TagCount: tagCounts.get(id) ?? 0,\n EmbeddingStatus: (r['EmbeddingStatus'] as string) ?? '',\n TaggingStatus: (r['TaggingStatus'] as string) ?? '',\n UpdatedAt: updatedAt ? FormatDate(updatedAt) : '—',\n UpdatedAtRaw: updatedAt ? new Date(updatedAt).getTime() : 0,\n };\n }\n\n private applyRows(rows: ClassifyItemGridRow[], total: number): void {\n this.Rows = rows;\n this.TotalCount = total;\n this.IsLoading = false;\n this._loaded = true;\n this.gridApi?.setGridOption('rowData', rows);\n this.cdr.detectChanges();\n }\n\n /** Build an `IN (...)` filter from item IDs, defensively stripping quotes. */\n private buildItemIDInFilter(ids: string[], column = 'ID'): string {\n const quoted = ids.map(id => `'${id.replace(/'/g, '')}'`).join(',');\n return `${column} IN (${quoted})`;\n }\n}\n","<div class=\"cig-wrap\">\n @if (IsLoading && Rows.length === 0) {\n <mj-loading text=\"Loading items...\" size=\"small\"></mj-loading>\n } @else if (Rows.length === 0) {\n <mj-empty-state class=\"cig-empty\" Icon=\"fa-solid fa-inbox\" Title=\"No content items found.\" />\n } @else {\n <ag-grid-angular\n class=\"cig-grid\"\n [theme]=\"Theme\"\n [columnDefs]=\"ColumnDefs\"\n [defaultColDef]=\"DefaultColDef\"\n [gridOptions]=\"GridOptions\"\n [rowData]=\"Rows\"\n (gridReady)=\"OnGridReady($event)\"\n (rowClicked)=\"OnRowClicked($event)\">\n </ag-grid-angular>\n\n <div class=\"cig-footer\">\n <span class=\"cig-count\">Showing {{ Rows.length }} of {{ TotalCount }} items</span>\n @if (HasMore) {\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"LoadMore()\" [disabled]=\"IsLoadingMore\">\n @if (IsLoadingMore) {\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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"classify-org-context-editor.component.d.ts","sourceRoot":"","sources":["../../../../../src/AI/components/autotagging/components/classify-org-context-editor.component.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AAOrE,qBAMa,iCAAkC,SAAQ,oBAAoB;IACvE,OAAO,CAAC,GAAG,CAA6B;IAExC,2CAA2C;IACpC,QAAQ,UAAS;IACxB,kDAAkD;IAC3C,WAAW,SAAM;IACxB,iEAAiE;IACjE,OAAO,CAAC,SAAS,CAAM;IACvB,iDAAiD;IAC1C,SAAS,UAAS;IACzB,sBAAsB;IACf,QAAQ,UAAS;IACxB,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,eAAe,CAAwC;IAE/D,+DAA+D;IAC/D,IAAW,iBAAiB,IAAI,OAAO,CAEtC;IAED,qFAAqF;IACxE,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D,gDAAgD;IACnC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAIjD,gCAAgC;YAchC,IAAI;IAuBlB,4EAA4E;IAC/D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;yCA3EzB,iCAAiC;2CAAjC,iCAAiC;CAsG7C"}
1
+ {"version":3,"file":"classify-org-context-editor.component.d.ts","sourceRoot":"","sources":["../../../../../src/AI/components/autotagging/components/classify-org-context-editor.component.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AAOrE,qBAMa,iCAAkC,SAAQ,oBAAoB;IACvE,OAAO,CAAC,GAAG,CAA6B;IAExC,2CAA2C;IACpC,QAAQ,UAAS;IACxB,kDAAkD;IAC3C,WAAW,SAAM;IACxB,iEAAiE;IACjE,OAAO,CAAC,SAAS,CAAM;IACvB,iDAAiD;IAC1C,SAAS,UAAS;IACzB,sBAAsB;IACf,QAAQ,UAAS;IACxB,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,eAAe,CAAwC;IAE/D,+DAA+D;IAC/D,IAAW,iBAAiB,IAAI,OAAO,CAEtC;IAED,qFAAqF;IACxE,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D,gDAAgD;IACnC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAIjD,gCAAgC;YAehC,IAAI;IAuBlB,4EAA4E;IAC/D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;yCA5EzB,iCAAiC;2CAAjC,iCAAiC;CAuG7C"}
@@ -118,6 +118,7 @@ export class ClassifyOrgContextEditorComponent extends BaseAngularComponent {
118
118
  ExtraFilter: `Name = '${KNOWLEDGE_HUB_APPLICATION_NAME.replace(/'/g, "''")}'`,
119
119
  Fields: ['ID'],
120
120
  MaxRows: 1,
121
+ SkipTotalRowCount: true,
121
122
  ResultType: 'simple',
122
123
  });
123
124
  this.khApplicationID = result.Success && result.Results.length > 0 ? result.Results[0].ID : null;
@@ -1 +1 @@
1
- {"version":3,"file":"classify-org-context-editor.component.js","sourceRoot":"","sources":["../../../../../src/AI/components/autotagging/components/classify-org-context-editor.component.ts","../../../../../src/AI/components/autotagging/components/classify-org-context-editor.component.html"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Classify · Org-level domain-context editor.\n *\n * Reads and writes the `classify.org.context` `MJ: Application Settings` record\n * scoped to the Knowledge Hub application. This is the ORG scope of the\n * three-tier classification context (org → content-type → source) consumed by\n * the server-side `ClassificationContextResolver` during autotagging.\n *\n * Persists via `ApplicationSettingEngine.SetSetting`, which creates the record\n * if absent (or updates it) and checks the Save() result. The Knowledge Hub\n * application ID is resolved by name via the threaded provider.\n */\nimport { Component, ChangeDetectorRef, inject } from '@angular/core';\nimport { RunView } from '@memberjunction/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { ApplicationSettingEngine } from '@memberjunction/core-entities';\n\nconst KNOWLEDGE_HUB_APPLICATION_NAME = 'Knowledge Hub';\nconst CLASSIFY_ORG_CONTEXT_SETTING_KEY = 'classify.org.context';\n\n@Component({\n standalone: false,\n selector: 'classify-org-context-editor',\n templateUrl: './classify-org-context-editor.component.html',\n styleUrls: ['./classify-org-context-editor.component.css']\n})\nexport class ClassifyOrgContextEditorComponent extends BaseAngularComponent {\n private cdr = inject(ChangeDetectorRef);\n\n /** Whether the editor body is expanded. */\n public Expanded = false;\n /** The org-context text bound to the textarea. */\n public ContextText = '';\n /** The value last loaded/saved, used to detect unsaved edits. */\n private savedText = '';\n /** Loading spinner while reading the setting. */\n public IsLoading = false;\n /** Saving spinner. */\n public IsSaving = false;\n /** Whether the initial load has run. */\n private loaded = false;\n\n private khApplicationID: string | null | undefined = undefined;\n\n /** True when the textarea differs from the persisted value. */\n public get HasUnsavedChanges(): boolean {\n return this.ContextText !== this.savedText;\n }\n\n /** React to the accordion expand/collapse, lazy-loading the value the first time. */\n public async OnExpandedChange(expanded: boolean): Promise<void> {\n this.Expanded = expanded;\n if (this.Expanded && !this.loaded) {\n await this.load();\n }\n this.cdr.detectChanges();\n }\n\n /** @deprecated Use {@link OnExpandedChange}. */\n public async onExpandedChange(expanded: boolean): Promise<void> {\n return this.OnExpandedChange(expanded);\n }\n\n private async resolveKnowledgeHubApplicationID(): Promise<string | null> {\n if (this.khApplicationID !== undefined) return this.khApplicationID;\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<{ ID: string }>({\n EntityName: 'MJ: Applications',\n ExtraFilter: `Name = '${KNOWLEDGE_HUB_APPLICATION_NAME.replace(/'/g, \"''\")}'`,\n Fields: ['ID'],\n MaxRows: 1,\n ResultType: 'simple',\n });\n this.khApplicationID = result.Success && result.Results.length > 0 ? result.Results[0].ID : null;\n return this.khApplicationID;\n }\n\n private async load(): Promise<void> {\n this.IsLoading = true;\n this.cdr.detectChanges();\n try {\n const p = this.ProviderToUse;\n await ApplicationSettingEngine.Instance.Config(false, p.CurrentUser, p);\n const appID = await this.resolveKnowledgeHubApplicationID();\n const raw = ApplicationSettingEngine.Instance.GetSetting(\n CLASSIFY_ORG_CONTEXT_SETTING_KEY,\n appID ?? undefined,\n );\n this.ContextText = raw ?? '';\n this.savedText = this.ContextText;\n this.loaded = true;\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n MJNotificationService.Instance.CreateSimpleNotification(`Failed to load org context: ${msg}`, 'error', 4000);\n } finally {\n this.IsLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n /** Persist the org-level context to the Knowledge Hub application scope. */\n public async Save(): Promise<void> {\n if (this.IsSaving) return;\n this.IsSaving = true;\n this.cdr.detectChanges();\n try {\n const p = this.ProviderToUse;\n const appID = await this.resolveKnowledgeHubApplicationID();\n const ok = await ApplicationSettingEngine.Instance.SetSetting(\n CLASSIFY_ORG_CONTEXT_SETTING_KEY,\n this.ContextText,\n appID ?? undefined,\n p.CurrentUser,\n );\n if (ok) {\n this.savedText = this.ContextText;\n MJNotificationService.Instance.CreateSimpleNotification('Org context saved', 'success', 2500);\n } else {\n MJNotificationService.Instance.CreateSimpleNotification('Failed to save org context', 'error', 4000);\n }\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n MJNotificationService.Instance.CreateSimpleNotification(`Error: ${msg}`, 'error', 4000);\n } finally {\n this.IsSaving = false;\n this.cdr.detectChanges();\n }\n }\n}\n","<mj-accordion-panel Size=\"sm\" [FlushBody]=\"true\" [Expanded]=\"Expanded\" (ExpandedChange)=\"onExpandedChange($event)\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-building\"></i>\n <span>Organization domain context</span>\n @if (HasUnsavedChanges) {\n <span class=\"mj-accordion-badge mj-accordion-badge--warning mj-accordion-badge--right\">Unsaved</span>\n }\n </ng-template>\n <ng-template mjAccordionBody>\n <div class=\"cls-org-ctx-body\">\n @if (IsLoading) {\n <mj-loading text=\"Loading org context…\" size=\"small\"></mj-loading>\n } @else {\n <p class=\"cls-org-ctx-help\">\n Applies to every source as the broadest classification-context scope. Source and\n content-type guidance combine with this at run time.\n </p>\n <textarea class=\"mj-textarea\" rows=\"5\"\n [(ngModel)]=\"ContextText\"\n placeholder=\"Org-wide guidance for the classifier — your organization's domain, audience, taxonomy conventions…\"></textarea>\n <div class=\"cls-org-ctx-actions\">\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"Save()\"\n [disabled]=\"IsSaving || !HasUnsavedChanges\">\n @if (IsSaving) { <i class=\"fa-solid fa-spinner fa-spin\"></i> Saving… }\n @else { <i class=\"fa-solid fa-check\"></i> Save }\n </button>\n </div>\n }\n </div>\n </ng-template>\n</mj-accordion-panel>\n"]}
1
+ {"version":3,"file":"classify-org-context-editor.component.js","sourceRoot":"","sources":["../../../../../src/AI/components/autotagging/components/classify-org-context-editor.component.ts","../../../../../src/AI/components/autotagging/components/classify-org-context-editor.component.html"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Classify · Org-level domain-context editor.\n *\n * Reads and writes the `classify.org.context` `MJ: Application Settings` record\n * scoped to the Knowledge Hub application. This is the ORG scope of the\n * three-tier classification context (org → content-type → source) consumed by\n * the server-side `ClassificationContextResolver` during autotagging.\n *\n * Persists via `ApplicationSettingEngine.SetSetting`, which creates the record\n * if absent (or updates it) and checks the Save() result. The Knowledge Hub\n * application ID is resolved by name via the threaded provider.\n */\nimport { Component, ChangeDetectorRef, inject } from '@angular/core';\nimport { RunView } from '@memberjunction/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { ApplicationSettingEngine } from '@memberjunction/core-entities';\n\nconst KNOWLEDGE_HUB_APPLICATION_NAME = 'Knowledge Hub';\nconst CLASSIFY_ORG_CONTEXT_SETTING_KEY = 'classify.org.context';\n\n@Component({\n standalone: false,\n selector: 'classify-org-context-editor',\n templateUrl: './classify-org-context-editor.component.html',\n styleUrls: ['./classify-org-context-editor.component.css']\n})\nexport class ClassifyOrgContextEditorComponent extends BaseAngularComponent {\n private cdr = inject(ChangeDetectorRef);\n\n /** Whether the editor body is expanded. */\n public Expanded = false;\n /** The org-context text bound to the textarea. */\n public ContextText = '';\n /** The value last loaded/saved, used to detect unsaved edits. */\n private savedText = '';\n /** Loading spinner while reading the setting. */\n public IsLoading = false;\n /** Saving spinner. */\n public IsSaving = false;\n /** Whether the initial load has run. */\n private loaded = false;\n\n private khApplicationID: string | null | undefined = undefined;\n\n /** True when the textarea differs from the persisted value. */\n public get HasUnsavedChanges(): boolean {\n return this.ContextText !== this.savedText;\n }\n\n /** React to the accordion expand/collapse, lazy-loading the value the first time. */\n public async OnExpandedChange(expanded: boolean): Promise<void> {\n this.Expanded = expanded;\n if (this.Expanded && !this.loaded) {\n await this.load();\n }\n this.cdr.detectChanges();\n }\n\n /** @deprecated Use {@link OnExpandedChange}. */\n public async onExpandedChange(expanded: boolean): Promise<void> {\n return this.OnExpandedChange(expanded);\n }\n\n private async resolveKnowledgeHubApplicationID(): Promise<string | null> {\n if (this.khApplicationID !== undefined) return this.khApplicationID;\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<{ ID: string }>({\n EntityName: 'MJ: Applications',\n ExtraFilter: `Name = '${KNOWLEDGE_HUB_APPLICATION_NAME.replace(/'/g, \"''\")}'`,\n Fields: ['ID'],\n MaxRows: 1,\n SkipTotalRowCount: true,\n ResultType: 'simple',\n });\n this.khApplicationID = result.Success && result.Results.length > 0 ? result.Results[0].ID : null;\n return this.khApplicationID;\n }\n\n private async load(): Promise<void> {\n this.IsLoading = true;\n this.cdr.detectChanges();\n try {\n const p = this.ProviderToUse;\n await ApplicationSettingEngine.Instance.Config(false, p.CurrentUser, p);\n const appID = await this.resolveKnowledgeHubApplicationID();\n const raw = ApplicationSettingEngine.Instance.GetSetting(\n CLASSIFY_ORG_CONTEXT_SETTING_KEY,\n appID ?? undefined,\n );\n this.ContextText = raw ?? '';\n this.savedText = this.ContextText;\n this.loaded = true;\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n MJNotificationService.Instance.CreateSimpleNotification(`Failed to load org context: ${msg}`, 'error', 4000);\n } finally {\n this.IsLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n /** Persist the org-level context to the Knowledge Hub application scope. */\n public async Save(): Promise<void> {\n if (this.IsSaving) return;\n this.IsSaving = true;\n this.cdr.detectChanges();\n try {\n const p = this.ProviderToUse;\n const appID = await this.resolveKnowledgeHubApplicationID();\n const ok = await ApplicationSettingEngine.Instance.SetSetting(\n CLASSIFY_ORG_CONTEXT_SETTING_KEY,\n this.ContextText,\n appID ?? undefined,\n p.CurrentUser,\n );\n if (ok) {\n this.savedText = this.ContextText;\n MJNotificationService.Instance.CreateSimpleNotification('Org context saved', 'success', 2500);\n } else {\n MJNotificationService.Instance.CreateSimpleNotification('Failed to save org context', 'error', 4000);\n }\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n MJNotificationService.Instance.CreateSimpleNotification(`Error: ${msg}`, 'error', 4000);\n } finally {\n this.IsSaving = false;\n this.cdr.detectChanges();\n }\n }\n}\n","<mj-accordion-panel Size=\"sm\" [FlushBody]=\"true\" [Expanded]=\"Expanded\" (ExpandedChange)=\"onExpandedChange($event)\">\n <ng-template mjAccordionTitle>\n <i class=\"fa-solid fa-building\"></i>\n <span>Organization domain context</span>\n @if (HasUnsavedChanges) {\n <span class=\"mj-accordion-badge mj-accordion-badge--warning mj-accordion-badge--right\">Unsaved</span>\n }\n </ng-template>\n <ng-template mjAccordionBody>\n <div class=\"cls-org-ctx-body\">\n @if (IsLoading) {\n <mj-loading text=\"Loading org context…\" size=\"small\"></mj-loading>\n } @else {\n <p class=\"cls-org-ctx-help\">\n Applies to every source as the broadest classification-context scope. Source and\n content-type guidance combine with this at run time.\n </p>\n <textarea class=\"mj-textarea\" rows=\"5\"\n [(ngModel)]=\"ContextText\"\n placeholder=\"Org-wide guidance for the classifier — your organization's domain, audience, taxonomy conventions…\"></textarea>\n <div class=\"cls-org-ctx-actions\">\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"Save()\"\n [disabled]=\"IsSaving || !HasUnsavedChanges\">\n @if (IsSaving) { <i class=\"fa-solid fa-spinner fa-spin\"></i> Saving… }\n @else { <i class=\"fa-solid fa-check\"></i> Save }\n </button>\n </div>\n }\n </div>\n </ng-template>\n</mj-accordion-panel>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"source-type-form.dialog.component.d.ts","sourceRoot":"","sources":["../../../../../src/AI/components/autotagging/dialogs/source-type-form.dialog.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source-type-form.dialog.component.d.ts","sourceRoot":"","sources":["../../../../../src/AI/components/autotagging/dialogs/source-type-form.dialog.component.ts"],"names":[],"mappings":"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"}
@@ -1977,6 +1977,7 @@ export class ClassifySourceTypeFormDialogComponent extends BaseAngularComponent
1977
1977
  ExtraFilter: `Name = '${KNOWLEDGE_HUB_APPLICATION_NAME.replace(/'/g, "''")}'`,
1978
1978
  Fields: ['ID'],
1979
1979
  MaxRows: 1,
1980
+ SkipTotalRowCount: true,
1980
1981
  ResultType: 'simple',
1981
1982
  });
1982
1983
  this.khApplicationID = result.Success && result.Results.length > 0 ? result.Results[0].ID : null;