@memberjunction/ng-conversations 6.1.4 → 6.2.0-edge.1

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 (424) hide show
  1. package/README.md +36 -3
  2. package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts +19 -3
  3. package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts.map +1 -1
  4. package/dist/lib/components/active-tasks/active-tasks-panel.component.js +39 -7
  5. package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -1
  6. package/dist/lib/components/agent/active-agent-indicator.component.d.ts +74 -6
  7. package/dist/lib/components/agent/active-agent-indicator.component.d.ts.map +1 -1
  8. package/dist/lib/components/agent/active-agent-indicator.component.js +111 -21
  9. package/dist/lib/components/agent/active-agent-indicator.component.js.map +1 -1
  10. package/dist/lib/components/agent/agent-process-panel.component.d.ts +31 -5
  11. package/dist/lib/components/agent/agent-process-panel.component.d.ts.map +1 -1
  12. package/dist/lib/components/agent/agent-process-panel.component.js +71 -15
  13. package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -1
  14. package/dist/lib/components/artifact/artifact-share-modal.component.d.ts +65 -9
  15. package/dist/lib/components/artifact/artifact-share-modal.component.d.ts.map +1 -1
  16. package/dist/lib/components/artifact/artifact-share-modal.component.js +169 -57
  17. package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
  18. package/dist/lib/components/attachment/image-viewer.component.d.ts +77 -11
  19. package/dist/lib/components/attachment/image-viewer.component.d.ts.map +1 -1
  20. package/dist/lib/components/attachment/image-viewer.component.js +181 -47
  21. package/dist/lib/components/attachment/image-viewer.component.js.map +1 -1
  22. package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts +129 -19
  23. package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts.map +1 -1
  24. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js +350 -116
  25. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
  26. package/dist/lib/components/collection/artifact-create-modal.component.d.ts +60 -8
  27. package/dist/lib/components/collection/artifact-create-modal.component.d.ts.map +1 -1
  28. package/dist/lib/components/collection/artifact-create-modal.component.js +130 -46
  29. package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -1
  30. package/dist/lib/components/collection/collection-artifact-card.component.d.ts +63 -3
  31. package/dist/lib/components/collection/collection-artifact-card.component.d.ts.map +1 -1
  32. package/dist/lib/components/collection/collection-artifact-card.component.js +113 -19
  33. package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -1
  34. package/dist/lib/components/collection/collection-form-modal.component.d.ts +54 -8
  35. package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
  36. package/dist/lib/components/collection/collection-form-modal.component.js +130 -46
  37. package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
  38. package/dist/lib/components/collection/collection-share-modal.component.d.ts +70 -10
  39. package/dist/lib/components/collection/collection-share-modal.component.d.ts.map +1 -1
  40. package/dist/lib/components/collection/collection-share-modal.component.js +175 -53
  41. package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
  42. package/dist/lib/components/collection/collection-tree.component.d.ts +89 -9
  43. package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -1
  44. package/dist/lib/components/collection/collection-tree.component.js +220 -70
  45. package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
  46. package/dist/lib/components/collection/collection-view.component.d.ts +89 -11
  47. package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
  48. package/dist/lib/components/collection/collection-view.component.js +154 -40
  49. package/dist/lib/components/collection/collection-view.component.js.map +1 -1
  50. package/dist/lib/components/collection/collections-full-view.component.d.ts +390 -38
  51. package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
  52. package/dist/lib/components/collection/collections-full-view.component.js +951 -367
  53. package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
  54. package/dist/lib/components/composer/ai-composer.component.d.ts +213 -18
  55. package/dist/lib/components/composer/ai-composer.component.d.ts.map +1 -1
  56. package/dist/lib/components/composer/ai-composer.component.js +388 -44
  57. package/dist/lib/components/composer/ai-composer.component.js.map +1 -1
  58. package/dist/lib/components/conversation/conversation-agent-picker.component.d.ts +12 -1
  59. package/dist/lib/components/conversation/conversation-agent-picker.component.d.ts.map +1 -1
  60. package/dist/lib/components/conversation/conversation-agent-picker.component.js +26 -4
  61. package/dist/lib/components/conversation/conversation-agent-picker.component.js.map +1 -1
  62. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +1090 -123
  63. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  64. package/dist/lib/components/conversation/conversation-chat-area.component.js +2407 -731
  65. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  66. package/dist/lib/components/conversation/conversation-empty-state.component.d.ts +139 -19
  67. package/dist/lib/components/conversation/conversation-empty-state.component.d.ts.map +1 -1
  68. package/dist/lib/components/conversation/conversation-empty-state.component.js +296 -59
  69. package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
  70. package/dist/lib/components/conversation/conversation-list.component.d.ts +579 -78
  71. package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
  72. package/dist/lib/components/conversation/conversation-list.component.js +2322 -823
  73. package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
  74. package/dist/lib/components/conversation/pinned-messages-panel.component.d.ts +40 -4
  75. package/dist/lib/components/conversation/pinned-messages-panel.component.d.ts.map +1 -1
  76. package/dist/lib/components/conversation/pinned-messages-panel.component.js +72 -14
  77. package/dist/lib/components/conversation/pinned-messages-panel.component.js.map +1 -1
  78. package/dist/lib/components/dialogs/input-dialog.component.d.ts +57 -11
  79. package/dist/lib/components/dialogs/input-dialog.component.d.ts.map +1 -1
  80. package/dist/lib/components/dialogs/input-dialog.component.js +128 -16
  81. package/dist/lib/components/dialogs/input-dialog.component.js.map +1 -1
  82. package/dist/lib/components/dialogs/rating-dialog.component.d.ts +68 -10
  83. package/dist/lib/components/dialogs/rating-dialog.component.d.ts.map +1 -1
  84. package/dist/lib/components/dialogs/rating-dialog.component.js +151 -27
  85. package/dist/lib/components/dialogs/rating-dialog.component.js.map +1 -1
  86. package/dist/lib/components/export/export-modal.component.d.ts +84 -10
  87. package/dist/lib/components/export/export-modal.component.d.ts.map +1 -1
  88. package/dist/lib/components/export/export-modal.component.js +173 -49
  89. package/dist/lib/components/export/export-modal.component.js.map +1 -1
  90. package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts +29 -3
  91. package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts.map +1 -1
  92. package/dist/lib/components/global-tasks/global-tasks-panel.component.js +58 -12
  93. package/dist/lib/components/global-tasks/global-tasks-panel.component.js.map +1 -1
  94. package/dist/lib/components/library/library-full-view.component.d.ts +57 -8
  95. package/dist/lib/components/library/library-full-view.component.d.ts.map +1 -1
  96. package/dist/lib/components/library/library-full-view.component.js +119 -35
  97. package/dist/lib/components/library/library-full-view.component.js.map +1 -1
  98. package/dist/lib/components/members/members-modal.component.d.ts +76 -10
  99. package/dist/lib/components/members/members-modal.component.d.ts.map +1 -1
  100. package/dist/lib/components/members/members-modal.component.js +164 -50
  101. package/dist/lib/components/members/members-modal.component.js.map +1 -1
  102. package/dist/lib/components/message/actionable-commands.component.d.ts +37 -5
  103. package/dist/lib/components/message/actionable-commands.component.d.ts.map +1 -1
  104. package/dist/lib/components/message/actionable-commands.component.js +82 -16
  105. package/dist/lib/components/message/actionable-commands.component.js.map +1 -1
  106. package/dist/lib/components/message/conversation-message-rating.component.d.ts +46 -10
  107. package/dist/lib/components/message/conversation-message-rating.component.d.ts.map +1 -1
  108. package/dist/lib/components/message/conversation-message-rating.component.js +120 -36
  109. package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
  110. package/dist/lib/components/message/message-input.component.d.ts +549 -74
  111. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  112. package/dist/lib/components/message/message-input.component.js +1250 -421
  113. package/dist/lib/components/message/message-input.component.js.map +1 -1
  114. package/dist/lib/components/message/message-item.component.d.ts +411 -29
  115. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  116. package/dist/lib/components/message/message-item.component.js +896 -222
  117. package/dist/lib/components/message/message-item.component.js.map +1 -1
  118. package/dist/lib/components/message/message-list.component.d.ts +288 -29
  119. package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
  120. package/dist/lib/components/message/message-list.component.js +561 -123
  121. package/dist/lib/components/message/message-list.component.js.map +1 -1
  122. package/dist/lib/components/navigation/conversation-navigation.component.d.ts +64 -5
  123. package/dist/lib/components/navigation/conversation-navigation.component.d.ts.map +1 -1
  124. package/dist/lib/components/navigation/conversation-navigation.component.js +101 -11
  125. package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -1
  126. package/dist/lib/components/notification/activity-indicator.component.d.ts +6 -2
  127. package/dist/lib/components/notification/activity-indicator.component.d.ts.map +1 -1
  128. package/dist/lib/components/notification/activity-indicator.component.js +13 -3
  129. package/dist/lib/components/notification/activity-indicator.component.js.map +1 -1
  130. package/dist/lib/components/notification/notification-badge.component.d.ts +15 -3
  131. package/dist/lib/components/notification/notification-badge.component.d.ts.map +1 -1
  132. package/dist/lib/components/notification/notification-badge.component.js +36 -8
  133. package/dist/lib/components/notification/notification-badge.component.js.map +1 -1
  134. package/dist/lib/components/overlay/chat-overlay.component.d.ts +1 -1
  135. package/dist/lib/components/overlay/chat-overlay.component.js +4 -4
  136. package/dist/lib/components/overlay/chat-overlay.component.js.map +1 -1
  137. package/dist/lib/components/project/project-form-modal.component.d.ts +93 -11
  138. package/dist/lib/components/project/project-form-modal.component.d.ts.map +1 -1
  139. package/dist/lib/components/project/project-form-modal.component.js +348 -87
  140. package/dist/lib/components/project/project-form-modal.component.js.map +1 -1
  141. package/dist/lib/components/project/project-selector.component.d.ts +78 -8
  142. package/dist/lib/components/project/project-selector.component.d.ts.map +1 -1
  143. package/dist/lib/components/project/project-selector.component.js +177 -46
  144. package/dist/lib/components/project/project-selector.component.js.map +1 -1
  145. package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.d.ts +1 -1
  146. package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.d.ts.map +1 -1
  147. package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.js.map +1 -1
  148. package/dist/lib/components/realtime/channels/client-context-channel.d.ts +1 -1
  149. package/dist/lib/components/realtime/channels/client-context-channel.d.ts.map +1 -1
  150. package/dist/lib/components/realtime/channels/client-context-channel.js +1 -1
  151. package/dist/lib/components/realtime/channels/client-context-channel.js.map +1 -1
  152. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts +1 -1
  153. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts.map +1 -1
  154. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js +3 -0
  155. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js.map +1 -1
  156. package/dist/lib/components/realtime/media/media-channel.d.ts +2 -1
  157. package/dist/lib/components/realtime/media/media-channel.d.ts.map +1 -1
  158. package/dist/lib/components/realtime/media/media-channel.js +1 -1
  159. package/dist/lib/components/realtime/media/media-channel.js.map +1 -1
  160. package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts +2 -2
  161. package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts.map +1 -1
  162. package/dist/lib/components/realtime/realtime-activity-rail.component.js +2 -2
  163. package/dist/lib/components/realtime/realtime-activity-rail.component.js.map +1 -1
  164. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts +1 -1
  165. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts.map +1 -1
  166. package/dist/lib/components/realtime/realtime-agent-banner.component.js.map +1 -1
  167. package/dist/lib/components/realtime/realtime-composer.component.d.ts +3 -1
  168. package/dist/lib/components/realtime/realtime-composer.component.d.ts.map +1 -1
  169. package/dist/lib/components/realtime/realtime-composer.component.js +26 -8
  170. package/dist/lib/components/realtime/realtime-composer.component.js.map +1 -1
  171. package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts +2 -2
  172. package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts.map +1 -1
  173. package/dist/lib/components/realtime/realtime-delegation-card.component.js +2 -2
  174. package/dist/lib/components/realtime/realtime-delegation-card.component.js.map +1 -1
  175. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +4 -4
  176. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts.map +1 -1
  177. package/dist/lib/components/realtime/realtime-session-overlay.component.js +19 -19
  178. package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -1
  179. package/dist/lib/components/realtime/realtime-session-state.d.ts +2 -3
  180. package/dist/lib/components/realtime/realtime-session-state.d.ts.map +1 -1
  181. package/dist/lib/components/realtime/realtime-session-state.js +3 -2
  182. package/dist/lib/components/realtime/realtime-session-state.js.map +1 -1
  183. package/dist/lib/components/realtime/realtime-session-thread.component.d.ts +17 -1
  184. package/dist/lib/components/realtime/realtime-session-thread.component.d.ts.map +1 -1
  185. package/dist/lib/components/realtime/realtime-session-thread.component.js +122 -45
  186. package/dist/lib/components/realtime/realtime-session-thread.component.js.map +1 -1
  187. package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts +47 -31
  188. package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts.map +1 -1
  189. package/dist/lib/components/realtime/realtime-session-timeline-card.component.js +138 -124
  190. package/dist/lib/components/realtime/realtime-session-timeline-card.component.js.map +1 -1
  191. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +4 -4
  192. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts.map +1 -1
  193. package/dist/lib/components/realtime/realtime-surface-tabs.component.js +4 -4
  194. package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -1
  195. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +2 -2
  196. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts.map +1 -1
  197. package/dist/lib/components/realtime/realtime-surface-tabs.model.js +3 -3
  198. package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -1
  199. package/dist/lib/components/realtime/realtime-ui-config.d.ts +13 -11
  200. package/dist/lib/components/realtime/realtime-ui-config.d.ts.map +1 -1
  201. package/dist/lib/components/realtime/realtime-ui-config.js +29 -25
  202. package/dist/lib/components/realtime/realtime-ui-config.js.map +1 -1
  203. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts +1 -1
  204. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts.map +1 -1
  205. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js +1 -1
  206. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js.map +1 -1
  207. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts +4 -2
  208. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts.map +1 -1
  209. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js +7 -3
  210. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js.map +1 -1
  211. package/dist/lib/components/search/search-panel.component.d.ts +133 -22
  212. package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
  213. package/dist/lib/components/search/search-panel.component.js +312 -83
  214. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  215. package/dist/lib/components/share/share-modal.component.d.ts +69 -9
  216. package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
  217. package/dist/lib/components/share/share-modal.component.js +139 -31
  218. package/dist/lib/components/share/share-modal.component.js.map +1 -1
  219. package/dist/lib/components/shared/user-picker.component.d.ts +48 -8
  220. package/dist/lib/components/shared/user-picker.component.d.ts.map +1 -1
  221. package/dist/lib/components/shared/user-picker.component.js +110 -30
  222. package/dist/lib/components/shared/user-picker.component.js.map +1 -1
  223. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts +114 -11
  224. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -1
  225. package/dist/lib/components/sidebar/conversation-sidebar.component.js +199 -21
  226. package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
  227. package/dist/lib/components/sidebar/routines-section.component.d.ts +20 -1
  228. package/dist/lib/components/sidebar/routines-section.component.d.ts.map +1 -1
  229. package/dist/lib/components/sidebar/routines-section.component.js +25 -5
  230. package/dist/lib/components/sidebar/routines-section.component.js.map +1 -1
  231. package/dist/lib/components/slots/slot-interfaces.d.ts +19 -0
  232. package/dist/lib/components/slots/slot-interfaces.d.ts.map +1 -1
  233. package/dist/lib/components/slots/slot-interfaces.js.map +1 -1
  234. package/dist/lib/components/task/tasks-full-view.component.d.ts +95 -13
  235. package/dist/lib/components/task/tasks-full-view.component.d.ts.map +1 -1
  236. package/dist/lib/components/task/tasks-full-view.component.js +223 -75
  237. package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
  238. package/dist/lib/components/tasks/task-widget.component.d.ts +46 -6
  239. package/dist/lib/components/tasks/task-widget.component.d.ts.map +1 -1
  240. package/dist/lib/components/tasks/task-widget.component.js +100 -16
  241. package/dist/lib/components/tasks/task-widget.component.js.map +1 -1
  242. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +64 -7
  243. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
  244. package/dist/lib/components/tasks/tasks-dropdown.component.js +127 -27
  245. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
  246. package/dist/lib/components/thread/thread-panel.component.d.ts +66 -8
  247. package/dist/lib/components/thread/thread-panel.component.d.ts.map +1 -1
  248. package/dist/lib/components/thread/thread-panel.component.js +146 -36
  249. package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
  250. package/dist/lib/components/toast/toast.component.d.ts +11 -1
  251. package/dist/lib/components/toast/toast.component.d.ts.map +1 -1
  252. package/dist/lib/components/toast/toast.component.js +25 -5
  253. package/dist/lib/components/toast/toast.component.js.map +1 -1
  254. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +385 -42
  255. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  256. package/dist/lib/components/workspace/conversation-workspace.component.js +887 -291
  257. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  258. package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts +8 -0
  259. package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts.map +1 -1
  260. package/dist/lib/composer-plugins/base-conversation-mention.provider.js +8 -1
  261. package/dist/lib/composer-plugins/base-conversation-mention.provider.js.map +1 -1
  262. package/dist/lib/conversations.module.d.ts.map +1 -1
  263. package/dist/lib/conversations.module.js.map +1 -1
  264. package/dist/lib/directives/chat-slot.directive.d.ts +5 -1
  265. package/dist/lib/directives/chat-slot.directive.d.ts.map +1 -1
  266. package/dist/lib/directives/chat-slot.directive.js.map +1 -1
  267. package/dist/lib/directives/search-shortcut.directive.d.ts +9 -1
  268. package/dist/lib/directives/search-shortcut.directive.d.ts.map +1 -1
  269. package/dist/lib/directives/search-shortcut.directive.js +14 -4
  270. package/dist/lib/directives/search-shortcut.directive.js.map +1 -1
  271. package/dist/lib/events/chat-events.d.ts +34 -7
  272. package/dist/lib/events/chat-events.d.ts.map +1 -1
  273. package/dist/lib/events/chat-events.js +37 -7
  274. package/dist/lib/events/chat-events.js.map +1 -1
  275. package/dist/lib/models/agent-turn.model.d.ts +103 -0
  276. package/dist/lib/models/agent-turn.model.d.ts.map +1 -0
  277. package/dist/lib/models/agent-turn.model.js +12 -0
  278. package/dist/lib/models/agent-turn.model.js.map +1 -0
  279. package/dist/lib/models/collection-view.model.js.map +1 -1
  280. package/dist/lib/models/conversation-state.model.d.ts +8 -0
  281. package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
  282. package/dist/lib/models/conversation-state.model.js.map +1 -1
  283. package/dist/lib/models/lazy-artifact-info.d.ts +44 -12
  284. package/dist/lib/models/lazy-artifact-info.d.ts.map +1 -1
  285. package/dist/lib/models/lazy-artifact-info.js +98 -34
  286. package/dist/lib/models/lazy-artifact-info.js.map +1 -1
  287. package/dist/lib/services/active-tasks.service.d.ts +30 -4
  288. package/dist/lib/services/active-tasks.service.d.ts.map +1 -1
  289. package/dist/lib/services/active-tasks.service.js +71 -19
  290. package/dist/lib/services/active-tasks.service.js.map +1 -1
  291. package/dist/lib/services/agent-state.service.d.ts +17 -1
  292. package/dist/lib/services/agent-state.service.d.ts.map +1 -1
  293. package/dist/lib/services/agent-state.service.js +48 -16
  294. package/dist/lib/services/agent-state.service.js.map +1 -1
  295. package/dist/lib/services/artifact-permission.service.d.ts +39 -0
  296. package/dist/lib/services/artifact-permission.service.d.ts.map +1 -1
  297. package/dist/lib/services/artifact-permission.service.js +152 -17
  298. package/dist/lib/services/artifact-permission.service.js.map +1 -1
  299. package/dist/lib/services/artifact-state.service.d.ts +58 -5
  300. package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
  301. package/dist/lib/services/artifact-state.service.js +135 -35
  302. package/dist/lib/services/artifact-state.service.js.map +1 -1
  303. package/dist/lib/services/browser-realtime-media-host.d.ts +24 -0
  304. package/dist/lib/services/browser-realtime-media-host.d.ts.map +1 -0
  305. package/dist/lib/services/browser-realtime-media-host.js +95 -0
  306. package/dist/lib/services/browser-realtime-media-host.js.map +1 -0
  307. package/dist/lib/services/collection-permission.service.d.ts +28 -0
  308. package/dist/lib/services/collection-permission.service.d.ts.map +1 -1
  309. package/dist/lib/services/collection-permission.service.js +88 -32
  310. package/dist/lib/services/collection-permission.service.js.map +1 -1
  311. package/dist/lib/services/collection-state.service.d.ts +11 -1
  312. package/dist/lib/services/collection-state.service.d.ts.map +1 -1
  313. package/dist/lib/services/collection-state.service.js +25 -5
  314. package/dist/lib/services/collection-state.service.js.map +1 -1
  315. package/dist/lib/services/conversation-agent.service.d.ts +26 -4
  316. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  317. package/dist/lib/services/conversation-agent.service.js +57 -18
  318. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  319. package/dist/lib/services/conversation-attachment.service.d.ts +41 -2
  320. package/dist/lib/services/conversation-attachment.service.d.ts.map +1 -1
  321. package/dist/lib/services/conversation-attachment.service.js +80 -13
  322. package/dist/lib/services/conversation-attachment.service.js.map +1 -1
  323. package/dist/lib/services/conversation-streaming.service.d.ts +22 -0
  324. package/dist/lib/services/conversation-streaming.service.d.ts.map +1 -1
  325. package/dist/lib/services/conversation-streaming.service.js +50 -10
  326. package/dist/lib/services/conversation-streaming.service.js.map +1 -1
  327. package/dist/lib/services/data-cache.service.d.ts +31 -0
  328. package/dist/lib/services/data-cache.service.d.ts.map +1 -1
  329. package/dist/lib/services/data-cache.service.js +71 -15
  330. package/dist/lib/services/data-cache.service.js.map +1 -1
  331. package/dist/lib/services/dialog.service.d.ts +13 -0
  332. package/dist/lib/services/dialog.service.d.ts.map +1 -1
  333. package/dist/lib/services/dialog.service.js +25 -5
  334. package/dist/lib/services/dialog.service.js.map +1 -1
  335. package/dist/lib/services/export.service.d.ts +2 -0
  336. package/dist/lib/services/export.service.d.ts.map +1 -1
  337. package/dist/lib/services/export.service.js +5 -1
  338. package/dist/lib/services/export.service.js.map +1 -1
  339. package/dist/lib/services/graphql-attachment-blob-store.d.ts +44 -0
  340. package/dist/lib/services/graphql-attachment-blob-store.d.ts.map +1 -0
  341. package/dist/lib/services/graphql-attachment-blob-store.js +113 -0
  342. package/dist/lib/services/graphql-attachment-blob-store.js.map +1 -0
  343. package/dist/lib/services/mention-autocomplete.service.d.ts +17 -141
  344. package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
  345. package/dist/lib/services/mention-autocomplete.service.js +15 -460
  346. package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
  347. package/dist/lib/services/mention-parser.service.d.ts +10 -0
  348. package/dist/lib/services/mention-parser.service.d.ts.map +1 -1
  349. package/dist/lib/services/mention-parser.service.js +25 -5
  350. package/dist/lib/services/mention-parser.service.js.map +1 -1
  351. package/dist/lib/services/notification.service.d.ts +54 -6
  352. package/dist/lib/services/notification.service.d.ts.map +1 -1
  353. package/dist/lib/services/notification.service.js +123 -27
  354. package/dist/lib/services/notification.service.js.map +1 -1
  355. package/dist/lib/services/realtime-audio-recorder.d.ts +4 -4
  356. package/dist/lib/services/realtime-audio-recorder.js +12 -12
  357. package/dist/lib/services/realtime-audio-recorder.js.map +1 -1
  358. package/dist/lib/services/realtime-pcm-wav.d.ts +4 -0
  359. package/dist/lib/services/realtime-pcm-wav.d.ts.map +1 -1
  360. package/dist/lib/services/realtime-pcm-wav.js +10 -2
  361. package/dist/lib/services/realtime-pcm-wav.js.map +1 -1
  362. package/dist/lib/services/realtime-session-review.service.d.ts +1 -1
  363. package/dist/lib/services/realtime-session-review.service.d.ts.map +1 -1
  364. package/dist/lib/services/realtime-session-review.service.js +1 -1
  365. package/dist/lib/services/realtime-session-review.service.js.map +1 -1
  366. package/dist/lib/services/realtime-session.service.d.ts +16 -1150
  367. package/dist/lib/services/realtime-session.service.d.ts.map +1 -1
  368. package/dist/lib/services/realtime-session.service.js +28 -2430
  369. package/dist/lib/services/realtime-session.service.js.map +1 -1
  370. package/dist/lib/services/search.service.d.ts +42 -9
  371. package/dist/lib/services/search.service.d.ts.map +1 -1
  372. package/dist/lib/services/search.service.js +103 -23
  373. package/dist/lib/services/search.service.js.map +1 -1
  374. package/dist/lib/services/toast.service.d.ts +19 -1
  375. package/dist/lib/services/toast.service.d.ts.map +1 -1
  376. package/dist/lib/services/toast.service.js +45 -9
  377. package/dist/lib/services/toast.service.js.map +1 -1
  378. package/dist/lib/services/ui-command-handler.service.d.ts +16 -2
  379. package/dist/lib/services/ui-command-handler.service.d.ts.map +1 -1
  380. package/dist/lib/services/ui-command-handler.service.js +36 -8
  381. package/dist/lib/services/ui-command-handler.service.js.map +1 -1
  382. package/dist/lib/utils/agent-artifact-summary.d.ts +2 -2
  383. package/dist/lib/utils/agent-artifact-summary.js +3 -3
  384. package/dist/lib/utils/agent-artifact-summary.js.map +1 -1
  385. package/dist/lib/utils/agent-turn-routing.d.ts +69 -0
  386. package/dist/lib/utils/agent-turn-routing.d.ts.map +1 -0
  387. package/dist/lib/utils/agent-turn-routing.js +96 -0
  388. package/dist/lib/utils/agent-turn-routing.js.map +1 -0
  389. package/dist/lib/utils/artifact-panel-action.d.ts +15 -4
  390. package/dist/lib/utils/artifact-panel-action.d.ts.map +1 -1
  391. package/dist/lib/utils/artifact-panel-action.js +10 -2
  392. package/dist/lib/utils/artifact-panel-action.js.map +1 -1
  393. package/dist/lib/utils/distinct-artifacts.d.ts +2 -0
  394. package/dist/lib/utils/distinct-artifacts.d.ts.map +1 -1
  395. package/dist/lib/utils/distinct-artifacts.js +5 -1
  396. package/dist/lib/utils/distinct-artifacts.js.map +1 -1
  397. package/dist/lib/utils/plan-mode-preference.d.ts +2 -2
  398. package/dist/lib/utils/plan-mode-preference.js +6 -6
  399. package/dist/lib/utils/plan-mode-preference.js.map +1 -1
  400. package/dist/lib/utils/realtime-session-timeline.d.ts +8 -79
  401. package/dist/lib/utils/realtime-session-timeline.d.ts.map +1 -1
  402. package/dist/lib/utils/realtime-session-timeline.js +8 -89
  403. package/dist/lib/utils/realtime-session-timeline.js.map +1 -1
  404. package/dist/public-api.d.ts +5 -2
  405. package/dist/public-api.d.ts.map +1 -1
  406. package/dist/public-api.js +9 -2
  407. package/dist/public-api.js.map +1 -1
  408. package/package.json +33 -32
  409. package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts +0 -384
  410. package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts.map +0 -1
  411. package/dist/lib/components/realtime/channels/base-realtime-channel-client.js +0 -231
  412. package/dist/lib/components/realtime/channels/base-realtime-channel-client.js.map +0 -1
  413. package/dist/lib/services/delegation-result-parser.d.ts +0 -50
  414. package/dist/lib/services/delegation-result-parser.d.ts.map +0 -1
  415. package/dist/lib/services/delegation-result-parser.js +0 -60
  416. package/dist/lib/services/delegation-result-parser.js.map +0 -1
  417. package/dist/lib/services/narration-template.d.ts +0 -42
  418. package/dist/lib/services/narration-template.d.ts.map +0 -1
  419. package/dist/lib/services/narration-template.js +0 -73
  420. package/dist/lib/services/narration-template.js.map +0 -1
  421. package/dist/lib/services/skill-picker-narrowing.d.ts +0 -13
  422. package/dist/lib/services/skill-picker-narrowing.d.ts.map +0 -1
  423. package/dist/lib/services/skill-picker-narrowing.js +0 -13
  424. package/dist/lib/services/skill-picker-narrowing.js.map +0 -1
@@ -10,21 +10,47 @@ interface AgentProcess extends AgentWithStatus {
10
10
  export declare class AgentProcessPanelComponent implements OnInit, OnDestroy {
11
11
  private dialogService;
12
12
  private agentStateService;
13
- conversationId?: string;
14
- currentUser: UserInfo;
15
- activeProcesses: AgentProcess[];
16
- isMinimized: boolean;
13
+ ConversationId?: string;
14
+ /** @deprecated Use {@link ConversationId}. */
15
+ set conversationId(value: string | undefined);
16
+ /** @deprecated Use {@link ConversationId}. */
17
+ get conversationId(): string | undefined;
18
+ CurrentUser: UserInfo;
19
+ /** @deprecated Use {@link CurrentUser}. */
20
+ set currentUser(value: UserInfo);
21
+ /** @deprecated Use {@link CurrentUser}. */
22
+ get currentUser(): UserInfo;
23
+ ActiveProcesses: AgentProcess[];
24
+ /** @deprecated Use {@link ActiveProcesses}. */
25
+ get activeProcesses(): AgentProcess[];
26
+ /** @deprecated Use {@link ActiveProcesses}. */
27
+ set activeProcesses(value: AgentProcess[]);
28
+ IsMinimized: boolean;
29
+ /** @deprecated Use {@link IsMinimized}. */
30
+ get isMinimized(): boolean;
31
+ /** @deprecated Use {@link IsMinimized}. */
32
+ set isMinimized(value: boolean);
17
33
  private subscription?;
18
34
  constructor(dialogService: DialogService, agentStateService: AgentStateService);
19
35
  ngOnInit(): void;
20
36
  ngOnDestroy(): void;
37
+ ToggleProcess(process: AgentProcess): void;
38
+ /** @deprecated Use {@link ToggleProcess}. */
21
39
  toggleProcess(process: AgentProcess): void;
40
+ GetStatusText(status: AgentStatus): string;
41
+ /** @deprecated Use {@link GetStatusText}. */
22
42
  getStatusText(status: AgentStatus): string;
43
+ GetElapsedTime(run: MJAIAgentRunEntity): string | null;
44
+ /** @deprecated Use {@link GetElapsedTime}. */
23
45
  getElapsedTime(run: MJAIAgentRunEntity): string | null;
46
+ OnCancelProcess(process: AgentProcess): Promise<void>;
47
+ /** @deprecated Use {@link OnCancelProcess}. */
24
48
  onCancelProcess(process: AgentProcess): Promise<void>;
49
+ OnViewDetails(process: AgentProcess): void;
50
+ /** @deprecated Use {@link OnViewDetails}. */
25
51
  onViewDetails(process: AgentProcess): void;
26
52
  static ɵfac: i0.ɵɵFactoryDeclaration<AgentProcessPanelComponent, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<AgentProcessPanelComponent, "mj-agent-process-panel", never, { "conversationId": { "alias": "conversationId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; }, {}, never, never, false, never>;
53
+ static ɵcmp: i0.ɵɵComponentDeclaration<AgentProcessPanelComponent, "mj-agent-process-panel", never, { "ConversationId": { "alias": "ConversationId"; "required": false; }; "conversationId": { "alias": "conversationId"; "required": false; }; "CurrentUser": { "alias": "CurrentUser"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; }, {}, never, never, false, never>;
28
54
  }
29
55
  export {};
30
56
  //# sourceMappingURL=agent-process-panel.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-process-panel.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/agent/agent-process-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAW,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;;AAGrG,UAAU,YAAa,SAAQ,eAAe;IAC5C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,qBA+Sa,0BAA2B,YAAW,MAAM,EAAE,SAAS;IAUhE,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,iBAAiB;IAVlB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAG,QAAQ,CAAC;IAEzB,eAAe,EAAE,YAAY,EAAE,CAAM;IACrC,WAAW,EAAE,OAAO,CAAS;IAEpC,OAAO,CAAC,YAAY,CAAC,CAAe;gBAG1B,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB;IAG9C,QAAQ,IAAI,IAAI;IAmBhB,WAAW,IAAI,IAAI;IAKnB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAI1C,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAW1C,cAAc,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI;IAoBhD,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB3D,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;yCA9F/B,0BAA0B;2CAA1B,0BAA0B;CAkGtC"}
1
+ {"version":3,"file":"agent-process-panel.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/agent/agent-process-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAW,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;;AAGrG,UAAU,YAAa,SAAQ,eAAe;IAC5C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,qBA+Sa,0BAA2B,YAAW,MAAM,EAAE,SAAS;IA8ChE,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,iBAAiB;IA9ClB,cAAc,CAAC,EAAE,MAAM,CAAC;IAEjC,8CAA8C;IAC9C,IAAa,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAEpD;IACD,8CAA8C;IAC9C,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAEvC;IACQ,WAAW,EAAG,QAAQ,CAAC;IAEhC,2CAA2C;IAC3C,IAAa,WAAW,CAAC,KAAK,EAAE,QAAQ,EAEvC;IACD,2CAA2C;IAC3C,IAAI,WAAW,IAAI,QAAQ,CAE1B;IAEM,eAAe,EAAE,YAAY,EAAE,CAAM;IAE5C,+CAA+C;IAC/C,IAAW,eAAe,IAAI,YAAY,EAAE,CAE3C;IACD,+CAA+C;IAC/C,IAAW,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,EAE/C;IACM,WAAW,EAAE,OAAO,CAAS;IAEpC,2CAA2C;IAC3C,IAAW,WAAW,IAAI,OAAO,CAEhC;IACD,2CAA2C;IAC3C,IAAW,WAAW,CAAC,KAAK,EAAE,OAAO,EAEpC;IAED,OAAO,CAAC,YAAY,CAAC,CAAe;gBAG1B,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB;IAG9C,QAAQ,IAAI,IAAI;IAmBhB,WAAW,IAAI,IAAI;IAKnB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAI1C,6CAA6C;IAC7C,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAI1C,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAW1C,6CAA6C;IAC7C,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAI1C,cAAc,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI;IAoBtD,8CAA8C;IAC9C,cAAc,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI;IAIhD,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB3D,+CAA+C;IACzC,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAK1C,6CAA6C;IAC7C,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;yCA5J/B,0BAA0B;2CAA1B,0BAA0B;CA+JtC"}
@@ -150,10 +150,42 @@ function AgentProcessPanelComponent_Conditional_0_Template(rf, ctx) { if (rf & 1
150
150
  export class AgentProcessPanelComponent {
151
151
  dialogService;
152
152
  agentStateService;
153
- conversationId;
154
- currentUser;
155
- activeProcesses = [];
156
- isMinimized = false;
153
+ ConversationId;
154
+ /** @deprecated Use {@link ConversationId}. */
155
+ set conversationId(value) {
156
+ this.ConversationId = value;
157
+ }
158
+ /** @deprecated Use {@link ConversationId}. */
159
+ get conversationId() {
160
+ return this.ConversationId;
161
+ }
162
+ CurrentUser;
163
+ /** @deprecated Use {@link CurrentUser}. */
164
+ set currentUser(value) {
165
+ this.CurrentUser = value;
166
+ }
167
+ /** @deprecated Use {@link CurrentUser}. */
168
+ get currentUser() {
169
+ return this.CurrentUser;
170
+ }
171
+ ActiveProcesses = [];
172
+ /** @deprecated Use {@link ActiveProcesses}. */
173
+ get activeProcesses() {
174
+ return this.ActiveProcesses;
175
+ }
176
+ /** @deprecated Use {@link ActiveProcesses}. */
177
+ set activeProcesses(value) {
178
+ this.ActiveProcesses = value;
179
+ }
180
+ IsMinimized = false;
181
+ /** @deprecated Use {@link IsMinimized}. */
182
+ get isMinimized() {
183
+ return this.IsMinimized;
184
+ }
185
+ /** @deprecated Use {@link IsMinimized}. */
186
+ set isMinimized(value) {
187
+ this.IsMinimized = value;
188
+ }
157
189
  subscription;
158
190
  constructor(dialogService, agentStateService) {
159
191
  this.dialogService = dialogService;
@@ -161,14 +193,14 @@ export class AgentProcessPanelComponent {
161
193
  }
162
194
  ngOnInit() {
163
195
  // Start polling for active agents
164
- this.agentStateService.startPolling(this.currentUser, this.conversationId);
196
+ this.agentStateService.startPolling(this.CurrentUser, this.ConversationId);
165
197
  // Subscribe to active agents
166
198
  this.subscription = this.agentStateService
167
- .getActiveAgents(this.conversationId)
199
+ .getActiveAgents(this.ConversationId)
168
200
  .subscribe(agents => {
169
201
  // Preserve expanded state for existing processes
170
- this.activeProcesses = agents.map(agent => {
171
- const existing = this.activeProcesses.find(p => UUIDsEqual(p.run.ID, agent.run.ID));
202
+ this.ActiveProcesses = agents.map(agent => {
203
+ const existing = this.ActiveProcesses.find(p => UUIDsEqual(p.run.ID, agent.run.ID));
172
204
  return {
173
205
  ...agent,
174
206
  expanded: existing ? existing.expanded : false
@@ -180,10 +212,14 @@ export class AgentProcessPanelComponent {
180
212
  this.subscription?.unsubscribe();
181
213
  // Note: We don't stop polling here as other components may be using the service
182
214
  }
183
- toggleProcess(process) {
215
+ ToggleProcess(process) {
184
216
  process.expanded = !process.expanded;
185
217
  }
186
- getStatusText(status) {
218
+ /** @deprecated Use {@link ToggleProcess}. */
219
+ toggleProcess(process) {
220
+ return this.ToggleProcess(process);
221
+ }
222
+ GetStatusText(status) {
187
223
  switch (status) {
188
224
  case 'acknowledging': return 'Acknowledging';
189
225
  case 'working': return 'Working';
@@ -193,7 +229,11 @@ export class AgentProcessPanelComponent {
193
229
  default: return 'Active';
194
230
  }
195
231
  }
196
- getElapsedTime(run) {
232
+ /** @deprecated Use {@link GetStatusText}. */
233
+ getStatusText(status) {
234
+ return this.GetStatusText(status);
235
+ }
236
+ GetElapsedTime(run) {
197
237
  if (!run.StartedAt)
198
238
  return null;
199
239
  const start = new Date(run.StartedAt).getTime();
@@ -212,7 +252,11 @@ export class AgentProcessPanelComponent {
212
252
  return `${seconds}s`;
213
253
  }
214
254
  }
215
- async onCancelProcess(process) {
255
+ /** @deprecated Use {@link GetElapsedTime}. */
256
+ getElapsedTime(run) {
257
+ return this.GetElapsedTime(run);
258
+ }
259
+ async OnCancelProcess(process) {
216
260
  const confirmed = await this.dialogService.confirm({
217
261
  title: 'Cancel Agent',
218
262
  message: `Cancel agent "${process.run.Agent || 'Agent'}"?`,
@@ -232,12 +276,20 @@ export class AgentProcessPanelComponent {
232
276
  await this.dialogService.alert('Error', 'Failed to cancel agent process');
233
277
  }
234
278
  }
235
- onViewDetails(process) {
279
+ /** @deprecated Use {@link OnCancelProcess}. */
280
+ async onCancelProcess(process) {
281
+ return this.OnCancelProcess(process);
282
+ }
283
+ OnViewDetails(process) {
236
284
  // TODO: Navigate to agent run details page or open modal
237
285
  console.log('View agent run details:', process.run.ID);
238
286
  }
287
+ /** @deprecated Use {@link OnViewDetails}. */
288
+ onViewDetails(process) {
289
+ return this.OnViewDetails(process);
290
+ }
239
291
  static ɵfac = function AgentProcessPanelComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AgentProcessPanelComponent)(i0.ɵɵdirectiveInject(i1.DialogService), i0.ɵɵdirectiveInject(i2.AgentStateService)); };
240
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AgentProcessPanelComponent, selectors: [["mj-agent-process-panel"]], inputs: { conversationId: "conversationId", currentUser: "currentUser" }, standalone: false, decls: 1, vars: 1, consts: [[1, "agent-panel", 3, "minimized"], [1, "agent-panel"], [1, "panel-header"], [1, "fas", "fa-robot"], [1, "header-actions"], [1, "header-btn", 3, "click", "title"], [1, "fas", 3, "ngClass"], [1, "panel-content"], [1, "process-item"], [1, "process-header", 3, "click"], [1, "process-info"], [1, "agent-avatar-small"], [1, "pulse-dot"], [1, "agent-details"], [1, "process-name"], [1, "process-status"], [1, "confidence-indicator", 3, "title"], [1, "process-details"], [1, "fas", "fa-gauge-high"], [1, "detail-row"], [1, "process-actions"], [1, "btn-action", "btn-cancel"], [1, "btn-action", 3, "click"], [1, "fas", "fa-external-link-alt"], [1, "fas", "fa-clock"], [1, "fas", "fa-hourglass-half"], [1, "btn-action", "btn-cancel", 3, "click"], [1, "fas", "fa-stop"]], template: function AgentProcessPanelComponent_Template(rf, ctx) { if (rf & 1) {
292
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AgentProcessPanelComponent, selectors: [["mj-agent-process-panel"]], inputs: { ConversationId: "ConversationId", conversationId: "conversationId", CurrentUser: "CurrentUser", currentUser: "currentUser" }, standalone: false, decls: 1, vars: 1, consts: [[1, "agent-panel", 3, "minimized"], [1, "agent-panel"], [1, "panel-header"], [1, "fas", "fa-robot"], [1, "header-actions"], [1, "header-btn", 3, "click", "title"], [1, "fas", 3, "ngClass"], [1, "panel-content"], [1, "process-item"], [1, "process-header", 3, "click"], [1, "process-info"], [1, "agent-avatar-small"], [1, "pulse-dot"], [1, "agent-details"], [1, "process-name"], [1, "process-status"], [1, "confidence-indicator", 3, "title"], [1, "process-details"], [1, "fas", "fa-gauge-high"], [1, "detail-row"], [1, "process-actions"], [1, "btn-action", "btn-cancel"], [1, "btn-action", 3, "click"], [1, "fas", "fa-external-link-alt"], [1, "fas", "fa-clock"], [1, "fas", "fa-hourglass-half"], [1, "btn-action", "btn-cancel", 3, "click"], [1, "fas", "fa-stop"]], template: function AgentProcessPanelComponent_Template(rf, ctx) { if (rf & 1) {
241
293
  i0.ɵɵconditionalCreate(0, AgentProcessPanelComponent_Conditional_0_Template, 9, 6, "div", 0);
242
294
  } if (rf & 2) {
243
295
  i0.ɵɵconditional(ctx.activeProcesses.length > 0 ? 0 : -1);
@@ -326,7 +378,11 @@ export class AgentProcessPanelComponent {
326
378
  </div>
327
379
  }
328
380
  `, styles: ["\n .agent-panel {\n position: fixed;\n bottom: 24px;\n right: 24px;\n width: 450px;\n max-height: 600px;\n background: white;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0,0,0,0.12);\n z-index: 1000;\n transition: all 300ms ease;\n overflow: hidden;\n }\n .agent-panel.minimized { width: 280px; max-height: 60px; }\n\n .panel-header {\n padding: 16px 20px;\n border-bottom: 1px solid #E5E7EB;\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: linear-gradient(135deg, #F9FAFB, #F3F4F6);\n border-radius: 12px 12px 0 0;\n }\n .panel-header h3 {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 10px;\n color: #111827;\n }\n .header-actions { display: flex; gap: 4px; }\n .header-btn {\n padding: 8px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 6px;\n color: #6B7280;\n transition: all 150ms ease;\n }\n .header-btn:hover { background: rgba(0,0,0,0.08); color: #111827; }\n\n .panel-content {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n }\n\n .process-item {\n border-bottom: 1px solid #F3F4F6;\n transition: background 150ms ease;\n }\n .process-item:last-child { border-bottom: none; }\n .process-item:hover { background: #FAFAFA; }\n\n .process-header {\n padding: 14px 20px;\n cursor: pointer;\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n }\n\n .process-info {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n }\n\n .agent-avatar-small {\n position: relative;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n color: white;\n flex-shrink: 0;\n }\n\n .agent-avatar-small.status-acknowledging { background: linear-gradient(135deg, #3B82F6, #2563EB); }\n .agent-avatar-small.status-working { background: linear-gradient(135deg, #F59E0B, #D97706); }\n .agent-avatar-small.status-completing { background: linear-gradient(135deg, #10B981, #059669); }\n .agent-avatar-small.status-completed { background: linear-gradient(135deg, #6B7280, #4B5563); opacity: 0.6; }\n .agent-avatar-small.status-error { background: linear-gradient(135deg, #EF4444, #DC2626); }\n\n .pulse-dot {\n position: absolute;\n top: -2px;\n right: -2px;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: #10B981;\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n }\n\n @keyframes pulse {\n 0%, 100% { opacity: 1; transform: scale(1); }\n 50% { opacity: 0.5; transform: scale(1.5); }\n }\n\n .agent-details {\n display: flex;\n flex-direction: column;\n gap: 4px;\n flex: 1;\n min-width: 0;\n }\n\n .process-name {\n font-size: 14px;\n font-weight: 500;\n color: #111827;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .process-status {\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-block;\n width: fit-content;\n }\n\n .status-acknowledging { background: #DBEAFE; color: #1E40AF; }\n .status-working { background: #FEF3C7; color: #B45309; }\n .status-completing { background: #D1FAE5; color: #065F46; }\n .status-completed { background: #F3F4F6; color: #6B7280; }\n .status-error { background: #FEE2E2; color: #991B1B; }\n\n .confidence-indicator {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n background: #F3F4F6;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 600;\n color: #374151;\n flex-shrink: 0;\n }\n\n .process-details {\n padding: 0 20px 16px 68px;\n animation: slideDown 200ms ease;\n }\n\n @keyframes slideDown {\n from { opacity: 0; transform: translateY(-10px); }\n to { opacity: 1; transform: translateY(0); }\n }\n\n .detail-row {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 0;\n font-size: 13px;\n color: #6B7280;\n }\n .detail-row i {\n width: 16px;\n color: #9CA3AF;\n text-align: center;\n }\n\n .process-actions {\n display: flex;\n gap: 8px;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid #F3F4F6;\n }\n\n .btn-action {\n padding: 8px 14px;\n background: #3B82F6;\n color: white;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 150ms ease;\n }\n .btn-action:hover {\n background: #2563EB;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(59, 130, 246, 0.3);\n }\n\n .btn-cancel {\n background: #EF4444;\n }\n .btn-cancel:hover {\n background: #DC2626;\n box-shadow: 0 2px 4px rgba(239, 68, 68, 0.3);\n }\n "] }]
329
- }], () => [{ type: i1.DialogService }, { type: i2.AgentStateService }], { conversationId: [{
381
+ }], () => [{ type: i1.DialogService }, { type: i2.AgentStateService }], { ConversationId: [{
382
+ type: Input
383
+ }], conversationId: [{
384
+ type: Input
385
+ }], CurrentUser: [{
330
386
  type: Input
331
387
  }], currentUser: [{
332
388
  type: Input
@@ -1 +1 @@
1
- {"version":3,"file":"agent-process-panel.component.js","sourceRoot":"","sources":["../../../../src/lib/components/agent/agent-process-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AAOpE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;;;;;;;IAsC5B,0BAA6B;;;IAU/B,+BAAyG;IACvG,wBAAiC;IACjC,4BAAM;IAAA,YAA4C;IACpD,AADoD,iBAAO,EACrD;;;IAH4B,uFAAsE;IAEhG,eAA4C;IAA5C,wEAA4C;;;IAUpD,+BAAwB;IACtB,wBAA4B;IAC5B,4BAAM;IAAA,YAAmD;;IAC3D,AAD2D,iBAAO,EAC5D;;;IADE,eAAmD;IAAnD,2FAAmD;;;IAI3D,+BAAwB;IACtB,wBAAqC;IACrC,4BAAM;IAAA,YAA2C;IACnD,AADmD,iBAAO,EACpD;;;;IADE,eAA2C;IAA3C,0EAA2C;;;;IAKjD,kCAAyE;IAAnC,kSAAS,kCAAwB,KAAC;IACtE,wBAA2B;IAAC,wBAC9B;IAAA,iBAAS;;;;IAjBf,+BAA6B;IAC3B,8IAA6B;IAM7B,8IAAmC;IAMnC,+BAA6B;IAC3B,iJAA2E;IAK3E,kCAA4D;IAAjC,mRAAS,gCAAsB,KAAC;IACzD,wBAAwC;IAAC,8BAC3C;IAEJ,AADE,AADE,iBAAS,EACL,EACF;;;;IAtBJ,cAKC;IALD,mDAKC;IACD,cAKC;IALD,gEAKC;IAEC,eAIC;IAJD,oGAIC;;;;IAhDP,AADF,8BAA0B,aACqC;IAAjC,6OAAS,gCAAsB,KAAC;IAExD,AADF,+BAA0B,cAM+B;IACrD,uBAA4B;IAC5B,+HAAsC;IAGxC,iBAAM;IAEJ,AADF,+BAA2B,eACE;IAAA,YAAkC;IAAA,iBAAO;IACpE,gCAAkE;IAChE,aACF;IACF,AADE,iBAAO,EACH;IACN,iIAAkC;IAMpC,iBAAM;IACN,wBAAsF;IACxF,iBAAM;IAEN,iIAAwB;IA0B1B,iBAAM;;;;IApDK,eAAiE;IAIjE,AADA,AADA,AADA,AADA,6EAAiE,mDACZ,yDACM,uDACF,+CACR;IAEpD,eAEC;IAFD,4DAEC;IAG0B,eAAkC;IAAlC,qDAAkC;IAChC,cAAoC;IAApC,4CAAoC;IAC/D,cACF;IADE,wEACF;IAEF,cAKC;IALD,yDAKC;IAEY,cAAkE;IAAlE,mFAAkE;IAGnF,cAyBC;IAzBD,+CAyBC;;;IAzDP,8BAA2B;IACzB,2HA0DC;IACH,iBAAM;;;IA3DJ,cA0DC;IA1DD,qCA0DC;;;;IAvEH,AADF,AADF,8BAAyD,aAC7B,SACpB;IACF,uBAA4B;IAC5B,YACF;IAAA,iBAAK;IAEH,AADF,8BAA4B,gBACoF;IAAnF,2OAAoC;IAC7D,uBAAiF;IAGvF,AADE,AADE,iBAAS,EACL,EACF;IAEN,0GAAoB;IA+DtB,iBAAM;;;IA5EmB,+CAA+B;IAIlD,eACF;IADE,8EACF;IAEkE,eAA6C;IAA7C,kEAA6C;IAC5F,cAA6D;IAA7D,kFAA6D;IAKlF,cA8DC;IA9DD,8CA8DC;;AA+NT,MAAM,OAAO,0BAA0B;IAU3B;IACA;IAVD,cAAc,CAAU;IACxB,WAAW,CAAY;IAEzB,eAAe,GAAmB,EAAE,CAAC;IACrC,WAAW,GAAY,KAAK,CAAC;IAE5B,YAAY,CAAgB;IAEpC,YACU,aAA4B,EAC5B,iBAAoC;QADpC,kBAAa,GAAb,aAAa,CAAe;QAC5B,sBAAiB,GAAjB,iBAAiB,CAAmB;IAC3C,CAAC;IAEJ,QAAQ;QACN,kCAAkC;QAClC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAE3E,6BAA6B;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB;aACvC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;aACpC,SAAS,CAAC,MAAM,CAAC,EAAE;YAClB,iDAAiD;YACjD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpF,OAAO;oBACL,GAAG,KAAK;oBACR,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;iBAC/C,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;QACjC,gFAAgF;IAClF,CAAC;IAED,aAAa,CAAC,OAAqB;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED,aAAa,CAAC,MAAmB;QAC/B,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,eAAe,CAAC,CAAC,OAAO,eAAe,CAAC;YAC7C,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;YACjC,KAAK,YAAY,CAAC,CAAC,OAAO,YAAY,CAAC;YACvC,KAAK,WAAW,CAAC,CAAC,OAAO,WAAW,CAAC;YACrC,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;YAC7B,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,cAAc,CAAC,GAAuB;QACpC,IAAI,CAAC,GAAG,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAEhC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QAChD,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/E,MAAM,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;QAE5B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAEvC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,GAAG,KAAK,KAAK,OAAO,GAAG,EAAE,GAAG,CAAC;QACtC,CAAC;aAAM,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,OAAO,KAAK,OAAO,GAAG,EAAE,GAAG,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,OAAO,GAAG,CAAC;QACvB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAqB;QACzC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YACjD,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,iBAAiB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,IAAI;YAC1D,MAAM,EAAE,cAAc;YACtB,UAAU,EAAE,cAAc;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,aAAa,CAAC,OAAqB;QACjC,yDAAyD;QACzD,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;oHAjGU,0BAA0B;6DAA1B,0BAA0B;YA3SnC,4FAAkC;;YAAlC,yDA8EC;;;iFA6NQ,0BAA0B;cA/StC,SAAS;6BACI,KAAK,YACP,wBAAwB,YACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFT;;kBA6NA,KAAK;;kBACL,KAAK;;kFAFK,0BAA0B","sourcesContent":["import { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { UserInfo, RunView } from '@memberjunction/core';\nimport { MJAIAgentRunEntity } from '@memberjunction/core-entities';\nimport { Subscription, interval } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { DialogService } from '../../services/dialog.service';\nimport { AgentStateService, AgentStatus, AgentWithStatus } from '../../services/agent-state.service';\nimport { UUIDsEqual } from '@memberjunction/global';\n\ninterface AgentProcess extends AgentWithStatus {\n expanded: boolean;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-agent-process-panel',\n template: `\n @if (activeProcesses.length > 0) {\n <div class=\"agent-panel\" [class.minimized]=\"isMinimized\">\n <div class=\"panel-header\">\n <h3>\n <i class=\"fas fa-robot\"></i>\n Active Agents ({{ activeProcesses.length }})\n </h3>\n <div class=\"header-actions\">\n <button class=\"header-btn\" (click)=\"isMinimized = !isMinimized\" [title]=\"isMinimized ? 'Expand' : 'Minimize'\">\n <i class=\"fas\" [ngClass]=\"isMinimized ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </button>\n </div>\n </div>\n\n @if (!isMinimized) {\n <div class=\"panel-content\">\n @for (process of activeProcesses; track process.run.ID) {\n <div class=\"process-item\">\n <div class=\"process-header\" (click)=\"toggleProcess(process)\">\n <div class=\"process-info\">\n <div class=\"agent-avatar-small\"\n [class.status-acknowledging]=\"process.status === 'acknowledging'\"\n [class.status-working]=\"process.status === 'working'\"\n [class.status-completing]=\"process.status === 'completing'\"\n [class.status-completed]=\"process.status === 'completed'\"\n [class.status-error]=\"process.status === 'error'\">\n <i class=\"fas fa-robot\"></i>\n @if (process.status !== 'completed') {\n <div class=\"pulse-dot\"></div>\n }\n </div>\n <div class=\"agent-details\">\n <span class=\"process-name\">{{ process.run.Agent || 'Agent' }}</span>\n <span class=\"process-status\" [class]=\"'status-' + process.status\">\n {{ getStatusText(process.status) }}\n </span>\n </div>\n @if (process.confidence != null) {\n <div class=\"confidence-indicator\" [title]=\"'Confidence: ' + (process.confidence * 100).toFixed(0) + '%'\">\n <i class=\"fas fa-gauge-high\"></i>\n <span>{{ (process.confidence * 100).toFixed(0) }}%</span>\n </div>\n }\n </div>\n <i class=\"fas\" [ngClass]=\"process.expanded ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </div>\n\n @if (process.expanded) {\n <div class=\"process-details\">\n @if (process.run.StartedAt) {\n <div class=\"detail-row\">\n <i class=\"fas fa-clock\"></i>\n <span>Started: {{ process.run.StartedAt | date:'short' }}</span>\n </div>\n }\n @if (getElapsedTime(process.run)) {\n <div class=\"detail-row\">\n <i class=\"fas fa-hourglass-half\"></i>\n <span>Duration: {{ getElapsedTime(process.run) }}</span>\n </div>\n }\n <div class=\"process-actions\">\n @if (process.run.Status === 'Running' || process.run.Status === 'Paused') {\n <button class=\"btn-action btn-cancel\" (click)=\"onCancelProcess(process)\">\n <i class=\"fas fa-stop\"></i> Cancel\n </button>\n }\n <button class=\"btn-action\" (click)=\"onViewDetails(process)\">\n <i class=\"fas fa-external-link-alt\"></i> View Details\n </button>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n `,\n styles: [`\n .agent-panel {\n position: fixed;\n bottom: 24px;\n right: 24px;\n width: 450px;\n max-height: 600px;\n background: white;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0,0,0,0.12);\n z-index: 1000;\n transition: all 300ms ease;\n overflow: hidden;\n }\n .agent-panel.minimized { width: 280px; max-height: 60px; }\n\n .panel-header {\n padding: 16px 20px;\n border-bottom: 1px solid #E5E7EB;\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: linear-gradient(135deg, #F9FAFB, #F3F4F6);\n border-radius: 12px 12px 0 0;\n }\n .panel-header h3 {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 10px;\n color: #111827;\n }\n .header-actions { display: flex; gap: 4px; }\n .header-btn {\n padding: 8px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 6px;\n color: #6B7280;\n transition: all 150ms ease;\n }\n .header-btn:hover { background: rgba(0,0,0,0.08); color: #111827; }\n\n .panel-content {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n }\n\n .process-item {\n border-bottom: 1px solid #F3F4F6;\n transition: background 150ms ease;\n }\n .process-item:last-child { border-bottom: none; }\n .process-item:hover { background: #FAFAFA; }\n\n .process-header {\n padding: 14px 20px;\n cursor: pointer;\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n }\n\n .process-info {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n }\n\n .agent-avatar-small {\n position: relative;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n color: white;\n flex-shrink: 0;\n }\n\n .agent-avatar-small.status-acknowledging { background: linear-gradient(135deg, #3B82F6, #2563EB); }\n .agent-avatar-small.status-working { background: linear-gradient(135deg, #F59E0B, #D97706); }\n .agent-avatar-small.status-completing { background: linear-gradient(135deg, #10B981, #059669); }\n .agent-avatar-small.status-completed { background: linear-gradient(135deg, #6B7280, #4B5563); opacity: 0.6; }\n .agent-avatar-small.status-error { background: linear-gradient(135deg, #EF4444, #DC2626); }\n\n .pulse-dot {\n position: absolute;\n top: -2px;\n right: -2px;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: #10B981;\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n }\n\n @keyframes pulse {\n 0%, 100% { opacity: 1; transform: scale(1); }\n 50% { opacity: 0.5; transform: scale(1.5); }\n }\n\n .agent-details {\n display: flex;\n flex-direction: column;\n gap: 4px;\n flex: 1;\n min-width: 0;\n }\n\n .process-name {\n font-size: 14px;\n font-weight: 500;\n color: #111827;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .process-status {\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-block;\n width: fit-content;\n }\n\n .status-acknowledging { background: #DBEAFE; color: #1E40AF; }\n .status-working { background: #FEF3C7; color: #B45309; }\n .status-completing { background: #D1FAE5; color: #065F46; }\n .status-completed { background: #F3F4F6; color: #6B7280; }\n .status-error { background: #FEE2E2; color: #991B1B; }\n\n .confidence-indicator {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n background: #F3F4F6;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 600;\n color: #374151;\n flex-shrink: 0;\n }\n\n .process-details {\n padding: 0 20px 16px 68px;\n animation: slideDown 200ms ease;\n }\n\n @keyframes slideDown {\n from { opacity: 0; transform: translateY(-10px); }\n to { opacity: 1; transform: translateY(0); }\n }\n\n .detail-row {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 0;\n font-size: 13px;\n color: #6B7280;\n }\n .detail-row i {\n width: 16px;\n color: #9CA3AF;\n text-align: center;\n }\n\n .process-actions {\n display: flex;\n gap: 8px;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid #F3F4F6;\n }\n\n .btn-action {\n padding: 8px 14px;\n background: #3B82F6;\n color: white;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 150ms ease;\n }\n .btn-action:hover {\n background: #2563EB;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(59, 130, 246, 0.3);\n }\n\n .btn-cancel {\n background: #EF4444;\n }\n .btn-cancel:hover {\n background: #DC2626;\n box-shadow: 0 2px 4px rgba(239, 68, 68, 0.3);\n }\n `]\n})\nexport class AgentProcessPanelComponent implements OnInit, OnDestroy {\n @Input() conversationId?: string;\n @Input() currentUser!: UserInfo;\n\n public activeProcesses: AgentProcess[] = [];\n public isMinimized: boolean = false;\n\n private subscription?: Subscription;\n\n constructor(\n private dialogService: DialogService,\n private agentStateService: AgentStateService\n ) {}\n\n ngOnInit(): void {\n // Start polling for active agents\n this.agentStateService.startPolling(this.currentUser, this.conversationId);\n\n // Subscribe to active agents\n this.subscription = this.agentStateService\n .getActiveAgents(this.conversationId)\n .subscribe(agents => {\n // Preserve expanded state for existing processes\n this.activeProcesses = agents.map(agent => {\n const existing = this.activeProcesses.find(p => UUIDsEqual(p.run.ID, agent.run.ID));\n return {\n ...agent,\n expanded: existing ? existing.expanded : false\n };\n });\n });\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n // Note: We don't stop polling here as other components may be using the service\n }\n\n toggleProcess(process: AgentProcess): void {\n process.expanded = !process.expanded;\n }\n\n getStatusText(status: AgentStatus): string {\n switch (status) {\n case 'acknowledging': return 'Acknowledging';\n case 'working': return 'Working';\n case 'completing': return 'Completing';\n case 'completed': return 'Completed';\n case 'error': return 'Error';\n default: return 'Active';\n }\n }\n\n getElapsedTime(run: MJAIAgentRunEntity): string | null {\n if (!run.StartedAt) return null;\n\n const start = new Date(run.StartedAt).getTime();\n const end = run.CompletedAt ? new Date(run.CompletedAt).getTime() : Date.now();\n const elapsed = end - start;\n\n const seconds = Math.floor(elapsed / 1000);\n const minutes = Math.floor(seconds / 60);\n const hours = Math.floor(minutes / 60);\n\n if (hours > 0) {\n return `${hours}h ${minutes % 60}m`;\n } else if (minutes > 0) {\n return `${minutes}m ${seconds % 60}s`;\n } else {\n return `${seconds}s`;\n }\n }\n\n async onCancelProcess(process: AgentProcess): Promise<void> {\n const confirmed = await this.dialogService.confirm({\n title: 'Cancel Agent',\n message: `Cancel agent \"${process.run.Agent || 'Agent'}\"?`,\n okText: 'Cancel Agent',\n cancelText: 'Keep Running'\n });\n\n if (!confirmed) return;\n\n try {\n const success = await this.agentStateService.cancelAgent(process.run.ID);\n if (!success) {\n await this.dialogService.alert('Error', 'Failed to cancel agent process');\n }\n } catch (error) {\n console.error('Failed to cancel agent process:', error);\n await this.dialogService.alert('Error', 'Failed to cancel agent process');\n }\n }\n\n onViewDetails(process: AgentProcess): void {\n // TODO: Navigate to agent run details page or open modal\n console.log('View agent run details:', process.run.ID);\n }\n}"]}
1
+ {"version":3,"file":"agent-process-panel.component.js","sourceRoot":"","sources":["../../../../src/lib/components/agent/agent-process-panel.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { UserInfo, RunView } from '@memberjunction/core';\nimport { MJAIAgentRunEntity } from '@memberjunction/core-entities';\nimport { Subscription, interval } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { DialogService } from '../../services/dialog.service';\nimport { AgentStateService, AgentStatus, AgentWithStatus } from '../../services/agent-state.service';\nimport { UUIDsEqual } from '@memberjunction/global';\n\ninterface AgentProcess extends AgentWithStatus {\n expanded: boolean;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-agent-process-panel',\n template: `\n @if (activeProcesses.length > 0) {\n <div class=\"agent-panel\" [class.minimized]=\"isMinimized\">\n <div class=\"panel-header\">\n <h3>\n <i class=\"fas fa-robot\"></i>\n Active Agents ({{ activeProcesses.length }})\n </h3>\n <div class=\"header-actions\">\n <button class=\"header-btn\" (click)=\"isMinimized = !isMinimized\" [title]=\"isMinimized ? 'Expand' : 'Minimize'\">\n <i class=\"fas\" [ngClass]=\"isMinimized ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </button>\n </div>\n </div>\n\n @if (!isMinimized) {\n <div class=\"panel-content\">\n @for (process of activeProcesses; track process.run.ID) {\n <div class=\"process-item\">\n <div class=\"process-header\" (click)=\"toggleProcess(process)\">\n <div class=\"process-info\">\n <div class=\"agent-avatar-small\"\n [class.status-acknowledging]=\"process.status === 'acknowledging'\"\n [class.status-working]=\"process.status === 'working'\"\n [class.status-completing]=\"process.status === 'completing'\"\n [class.status-completed]=\"process.status === 'completed'\"\n [class.status-error]=\"process.status === 'error'\">\n <i class=\"fas fa-robot\"></i>\n @if (process.status !== 'completed') {\n <div class=\"pulse-dot\"></div>\n }\n </div>\n <div class=\"agent-details\">\n <span class=\"process-name\">{{ process.run.Agent || 'Agent' }}</span>\n <span class=\"process-status\" [class]=\"'status-' + process.status\">\n {{ getStatusText(process.status) }}\n </span>\n </div>\n @if (process.confidence != null) {\n <div class=\"confidence-indicator\" [title]=\"'Confidence: ' + (process.confidence * 100).toFixed(0) + '%'\">\n <i class=\"fas fa-gauge-high\"></i>\n <span>{{ (process.confidence * 100).toFixed(0) }}%</span>\n </div>\n }\n </div>\n <i class=\"fas\" [ngClass]=\"process.expanded ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\n </div>\n\n @if (process.expanded) {\n <div class=\"process-details\">\n @if (process.run.StartedAt) {\n <div class=\"detail-row\">\n <i class=\"fas fa-clock\"></i>\n <span>Started: {{ process.run.StartedAt | date:'short' }}</span>\n </div>\n }\n @if (getElapsedTime(process.run)) {\n <div class=\"detail-row\">\n <i class=\"fas fa-hourglass-half\"></i>\n <span>Duration: {{ getElapsedTime(process.run) }}</span>\n </div>\n }\n <div class=\"process-actions\">\n @if (process.run.Status === 'Running' || process.run.Status === 'Paused') {\n <button class=\"btn-action btn-cancel\" (click)=\"onCancelProcess(process)\">\n <i class=\"fas fa-stop\"></i> Cancel\n </button>\n }\n <button class=\"btn-action\" (click)=\"onViewDetails(process)\">\n <i class=\"fas fa-external-link-alt\"></i> View Details\n </button>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n `,\n styles: [`\n .agent-panel {\n position: fixed;\n bottom: 24px;\n right: 24px;\n width: 450px;\n max-height: 600px;\n background: white;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0,0,0,0.12);\n z-index: 1000;\n transition: all 300ms ease;\n overflow: hidden;\n }\n .agent-panel.minimized { width: 280px; max-height: 60px; }\n\n .panel-header {\n padding: 16px 20px;\n border-bottom: 1px solid #E5E7EB;\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: linear-gradient(135deg, #F9FAFB, #F3F4F6);\n border-radius: 12px 12px 0 0;\n }\n .panel-header h3 {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 10px;\n color: #111827;\n }\n .header-actions { display: flex; gap: 4px; }\n .header-btn {\n padding: 8px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 6px;\n color: #6B7280;\n transition: all 150ms ease;\n }\n .header-btn:hover { background: rgba(0,0,0,0.08); color: #111827; }\n\n .panel-content {\n max-height: 500px;\n overflow-y: auto;\n overflow-x: hidden;\n }\n\n .process-item {\n border-bottom: 1px solid #F3F4F6;\n transition: background 150ms ease;\n }\n .process-item:last-child { border-bottom: none; }\n .process-item:hover { background: #FAFAFA; }\n\n .process-header {\n padding: 14px 20px;\n cursor: pointer;\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n }\n\n .process-info {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n }\n\n .agent-avatar-small {\n position: relative;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n color: white;\n flex-shrink: 0;\n }\n\n .agent-avatar-small.status-acknowledging { background: linear-gradient(135deg, #3B82F6, #2563EB); }\n .agent-avatar-small.status-working { background: linear-gradient(135deg, #F59E0B, #D97706); }\n .agent-avatar-small.status-completing { background: linear-gradient(135deg, #10B981, #059669); }\n .agent-avatar-small.status-completed { background: linear-gradient(135deg, #6B7280, #4B5563); opacity: 0.6; }\n .agent-avatar-small.status-error { background: linear-gradient(135deg, #EF4444, #DC2626); }\n\n .pulse-dot {\n position: absolute;\n top: -2px;\n right: -2px;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: #10B981;\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n }\n\n @keyframes pulse {\n 0%, 100% { opacity: 1; transform: scale(1); }\n 50% { opacity: 0.5; transform: scale(1.5); }\n }\n\n .agent-details {\n display: flex;\n flex-direction: column;\n gap: 4px;\n flex: 1;\n min-width: 0;\n }\n\n .process-name {\n font-size: 14px;\n font-weight: 500;\n color: #111827;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .process-status {\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n display: inline-block;\n width: fit-content;\n }\n\n .status-acknowledging { background: #DBEAFE; color: #1E40AF; }\n .status-working { background: #FEF3C7; color: #B45309; }\n .status-completing { background: #D1FAE5; color: #065F46; }\n .status-completed { background: #F3F4F6; color: #6B7280; }\n .status-error { background: #FEE2E2; color: #991B1B; }\n\n .confidence-indicator {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n background: #F3F4F6;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 600;\n color: #374151;\n flex-shrink: 0;\n }\n\n .process-details {\n padding: 0 20px 16px 68px;\n animation: slideDown 200ms ease;\n }\n\n @keyframes slideDown {\n from { opacity: 0; transform: translateY(-10px); }\n to { opacity: 1; transform: translateY(0); }\n }\n\n .detail-row {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 6px 0;\n font-size: 13px;\n color: #6B7280;\n }\n .detail-row i {\n width: 16px;\n color: #9CA3AF;\n text-align: center;\n }\n\n .process-actions {\n display: flex;\n gap: 8px;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid #F3F4F6;\n }\n\n .btn-action {\n padding: 8px 14px;\n background: #3B82F6;\n color: white;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: all 150ms ease;\n }\n .btn-action:hover {\n background: #2563EB;\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(59, 130, 246, 0.3);\n }\n\n .btn-cancel {\n background: #EF4444;\n }\n .btn-cancel:hover {\n background: #DC2626;\n box-shadow: 0 2px 4px rgba(239, 68, 68, 0.3);\n }\n `]\n})\nexport class AgentProcessPanelComponent implements OnInit, OnDestroy {\n @Input() ConversationId?: string;\n\n /** @deprecated Use {@link ConversationId}. */\n @Input() set conversationId(value: string | undefined) {\n this.ConversationId = value;\n }\n /** @deprecated Use {@link ConversationId}. */\n get conversationId(): string | undefined {\n return this.ConversationId;\n }\n @Input() CurrentUser!: UserInfo;\n\n /** @deprecated Use {@link CurrentUser}. */\n @Input() set currentUser(value: UserInfo) {\n this.CurrentUser = value;\n }\n /** @deprecated Use {@link CurrentUser}. */\n get currentUser(): UserInfo {\n return this.CurrentUser;\n }\n\n public ActiveProcesses: AgentProcess[] = [];\n\n /** @deprecated Use {@link ActiveProcesses}. */\n public get activeProcesses(): AgentProcess[] {\n return this.ActiveProcesses;\n }\n /** @deprecated Use {@link ActiveProcesses}. */\n public set activeProcesses(value: AgentProcess[]) {\n this.ActiveProcesses = value;\n }\n public IsMinimized: boolean = false;\n\n /** @deprecated Use {@link IsMinimized}. */\n public get isMinimized(): boolean {\n return this.IsMinimized;\n }\n /** @deprecated Use {@link IsMinimized}. */\n public set isMinimized(value: boolean) {\n this.IsMinimized = value;\n }\n\n private subscription?: Subscription;\n\n constructor(\n private dialogService: DialogService,\n private agentStateService: AgentStateService\n ) {}\n\n ngOnInit(): void {\n // Start polling for active agents\n this.agentStateService.startPolling(this.CurrentUser, this.ConversationId);\n\n // Subscribe to active agents\n this.subscription = this.agentStateService\n .getActiveAgents(this.ConversationId)\n .subscribe(agents => {\n // Preserve expanded state for existing processes\n this.ActiveProcesses = agents.map(agent => {\n const existing = this.ActiveProcesses.find(p => UUIDsEqual(p.run.ID, agent.run.ID));\n return {\n ...agent,\n expanded: existing ? existing.expanded : false\n };\n });\n });\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n // Note: We don't stop polling here as other components may be using the service\n }\n\n ToggleProcess(process: AgentProcess): void {\n process.expanded = !process.expanded;\n }\n\n /** @deprecated Use {@link ToggleProcess}. */\n toggleProcess(process: AgentProcess): void {\n return this.ToggleProcess(process);\n }\n\n GetStatusText(status: AgentStatus): string {\n switch (status) {\n case 'acknowledging': return 'Acknowledging';\n case 'working': return 'Working';\n case 'completing': return 'Completing';\n case 'completed': return 'Completed';\n case 'error': return 'Error';\n default: return 'Active';\n }\n }\n\n /** @deprecated Use {@link GetStatusText}. */\n getStatusText(status: AgentStatus): string {\n return this.GetStatusText(status);\n }\n\n GetElapsedTime(run: MJAIAgentRunEntity): string | null {\n if (!run.StartedAt) return null;\n\n const start = new Date(run.StartedAt).getTime();\n const end = run.CompletedAt ? new Date(run.CompletedAt).getTime() : Date.now();\n const elapsed = end - start;\n\n const seconds = Math.floor(elapsed / 1000);\n const minutes = Math.floor(seconds / 60);\n const hours = Math.floor(minutes / 60);\n\n if (hours > 0) {\n return `${hours}h ${minutes % 60}m`;\n } else if (minutes > 0) {\n return `${minutes}m ${seconds % 60}s`;\n } else {\n return `${seconds}s`;\n }\n }\n\n /** @deprecated Use {@link GetElapsedTime}. */\n getElapsedTime(run: MJAIAgentRunEntity): string | null {\n return this.GetElapsedTime(run);\n }\n\n async OnCancelProcess(process: AgentProcess): Promise<void> {\n const confirmed = await this.dialogService.confirm({\n title: 'Cancel Agent',\n message: `Cancel agent \"${process.run.Agent || 'Agent'}\"?`,\n okText: 'Cancel Agent',\n cancelText: 'Keep Running'\n });\n\n if (!confirmed) return;\n\n try {\n const success = await this.agentStateService.cancelAgent(process.run.ID);\n if (!success) {\n await this.dialogService.alert('Error', 'Failed to cancel agent process');\n }\n } catch (error) {\n console.error('Failed to cancel agent process:', error);\n await this.dialogService.alert('Error', 'Failed to cancel agent process');\n }\n }\n\n /** @deprecated Use {@link OnCancelProcess}. */\n async onCancelProcess(process: AgentProcess): Promise<void> {\n return this.OnCancelProcess(process);\n }\n\n OnViewDetails(process: AgentProcess): void {\n // TODO: Navigate to agent run details page or open modal\n console.log('View agent run details:', process.run.ID);\n }\n\n /** @deprecated Use {@link OnViewDetails}. */\n onViewDetails(process: AgentProcess): void {\n return this.OnViewDetails(process);\n }\n}"]}
@@ -13,32 +13,88 @@ export declare class ArtifactShareModalComponent implements OnInit, OnChanges {
13
13
  private permissionService;
14
14
  private cdr;
15
15
  private confirmService;
16
- isOpen: boolean;
17
- artifact: MJArtifactEntity | null;
18
- currentUser: UserInfo;
16
+ IsOpen: boolean;
17
+ /** @deprecated Use {@link IsOpen}. */
18
+ set isOpen(value: boolean);
19
+ /** @deprecated Use {@link IsOpen}. */
20
+ get isOpen(): boolean;
21
+ Artifact: MJArtifactEntity | null;
22
+ /** @deprecated Use {@link Artifact}. */
23
+ set artifact(value: MJArtifactEntity | null);
24
+ /** @deprecated Use {@link Artifact}. */
25
+ get artifact(): MJArtifactEntity | null;
26
+ CurrentUser: UserInfo;
27
+ /** @deprecated Use {@link CurrentUser}. */
28
+ set currentUser(value: UserInfo);
29
+ /** @deprecated Use {@link CurrentUser}. */
30
+ get currentUser(): UserInfo;
31
+ Saved: EventEmitter<void>;
32
+ /**
33
+ * @deprecated Use {@link Saved}.
34
+ *
35
+ * The same emitter under the old binding name, so a template still binding
36
+ * (saved) keeps working. Must stay AFTER Saved: class fields
37
+ * initialise in order, and the other way round this captures undefined.
38
+ */
19
39
  saved: EventEmitter<void>;
20
40
  cancelled: EventEmitter<void>;
21
- permissions: PermissionDisplay[];
22
- selectedUser: UserSearchResult | null;
23
- availablePermissions: string[];
24
- canModifyPermissions: boolean;
25
- newPermissions: ArtifactPermissionSet;
41
+ Permissions: PermissionDisplay[];
42
+ /** @deprecated Use {@link Permissions}. */
43
+ get permissions(): PermissionDisplay[];
44
+ /** @deprecated Use {@link Permissions}. */
45
+ set permissions(value: PermissionDisplay[]);
46
+ SelectedUser: UserSearchResult | null;
47
+ /** @deprecated Use {@link SelectedUser}. */
48
+ get selectedUser(): UserSearchResult | null;
49
+ /** @deprecated Use {@link SelectedUser}. */
50
+ set selectedUser(value: UserSearchResult | null);
51
+ AvailablePermissions: string[];
52
+ /** @deprecated Use {@link AvailablePermissions}. */
53
+ get availablePermissions(): string[];
54
+ /** @deprecated Use {@link AvailablePermissions}. */
55
+ set availablePermissions(value: string[]);
56
+ CanModifyPermissions: boolean;
57
+ /** @deprecated Use {@link CanModifyPermissions}. */
58
+ get canModifyPermissions(): boolean;
59
+ /** @deprecated Use {@link CanModifyPermissions}. */
60
+ set canModifyPermissions(value: boolean);
61
+ NewPermissions: ArtifactPermissionSet;
62
+ /** @deprecated Use {@link NewPermissions}. */
63
+ get newPermissions(): ArtifactPermissionSet;
64
+ /** @deprecated Use {@link NewPermissions}. */
65
+ set newPermissions(value: ArtifactPermissionSet);
26
66
  constructor(permissionService: ArtifactPermissionService, cdr: ChangeDetectorRef, confirmService: MJConfirmService);
27
67
  ngOnInit(): Promise<void>;
28
68
  ngOnChanges(changes: SimpleChanges): Promise<void>;
29
69
  private loadPermissions;
30
70
  private updateAvailablePermissions;
71
+ GetExcludedUserIds(): string[];
72
+ /** @deprecated Use {@link GetExcludedUserIds}. */
31
73
  getExcludedUserIds(): string[];
74
+ OnUserSelected(user: UserSearchResult): void;
75
+ /** @deprecated Use {@link OnUserSelected}. */
32
76
  onUserSelected(user: UserSearchResult): void;
77
+ OnClearSelection(): void;
78
+ /** @deprecated Use {@link OnClearSelection}. */
33
79
  onClearSelection(): void;
80
+ OnAddUser(): Promise<void>;
81
+ /** @deprecated Use {@link OnAddUser}. */
34
82
  onAddUser(): Promise<void>;
83
+ OnEditPermission(permission: PermissionDisplay): void;
84
+ /** @deprecated Use {@link OnEditPermission}. */
35
85
  onEditPermission(permission: PermissionDisplay): void;
86
+ OnCancelEdit(permission: PermissionDisplay): void;
87
+ /** @deprecated Use {@link OnCancelEdit}. */
36
88
  onCancelEdit(permission: PermissionDisplay): void;
89
+ OnSavePermission(permission: PermissionDisplay): Promise<void>;
90
+ /** @deprecated Use {@link OnSavePermission}. */
37
91
  onSavePermission(permission: PermissionDisplay): Promise<void>;
92
+ OnRevokePermission(permission: PermissionDisplay): Promise<void>;
93
+ /** @deprecated Use {@link OnRevokePermission}. */
38
94
  onRevokePermission(permission: PermissionDisplay): Promise<void>;
39
95
  onCancel(): void;
40
96
  static ɵfac: i0.ɵɵFactoryDeclaration<ArtifactShareModalComponent, never>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<ArtifactShareModalComponent, "mj-artifact-share-modal", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "artifact": { "alias": "artifact"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; }, { "saved": "saved"; "cancelled": "cancelled"; }, never, never, true, never>;
97
+ static ɵcmp: i0.ɵɵComponentDeclaration<ArtifactShareModalComponent, "mj-artifact-share-modal", never, { "IsOpen": { "alias": "IsOpen"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; "Artifact": { "alias": "Artifact"; "required": false; }; "artifact": { "alias": "artifact"; "required": false; }; "CurrentUser": { "alias": "CurrentUser"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; }, { "Saved": "Saved"; "saved": "saved"; "cancelled": "cancelled"; }, never, never, true, never>;
42
98
  }
43
99
  export {};
44
100
  //# sourceMappingURL=artifact-share-modal.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-share-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/artifact/artifact-share-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAG5H,OAAO,EAA+D,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEjI,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAClI,OAAO,EAAuB,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;;AAExF,UAAU,iBAAkB,SAAQ,kBAAkB;IAClD,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,qBAAqB,CAAC;CAC7C;AAED,qBA0La,2BAA4B,YAAW,MAAM,EAAE,SAAS;IAoB7D,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,cAAc;IArBjB,MAAM,EAAE,OAAO,CAAS;IACxB,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IACzC,WAAW,EAAG,QAAQ,CAAC;IAEtB,KAAK,qBAA4B;IACjC,SAAS,qBAA4B;IAE/C,WAAW,EAAE,iBAAiB,EAAE,CAAM;IACtC,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAC7C,oBAAoB,EAAE,MAAM,EAAE,CAAM;IACpC,oBAAoB,EAAE,OAAO,CAAS;IAEtC,cAAc,EAAE,qBAAqB,CAInC;gBAGU,iBAAiB,EAAE,yBAAyB,EAC5C,GAAG,EAAE,iBAAiB,EACtB,cAAc,EAAE,gBAAgB;IAGtC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAOzB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAW1C,eAAe;YAgBf,0BAA0B;IA0CxC,kBAAkB,IAAI,MAAM,EAAE;IAS9B,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAK5C,gBAAgB,IAAI,IAAI;IAUlB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAgDhC,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAKrD,YAAY,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAU3C,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA6C9D,kBAAkB,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAetE,QAAQ,IAAI,IAAI;yCAxPP,2BAA2B;2CAA3B,2BAA2B;CA2PvC"}
1
+ {"version":3,"file":"artifact-share-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/artifact/artifact-share-modal.component.ts"],"names":[],"mappings":"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"}