@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
@@ -48,18 +48,82 @@ function UserPickerComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
48
48
  } }
49
49
  export class UserPickerComponent extends BaseAngularComponent {
50
50
  cdr;
51
- currentUser;
52
- excludeUserIds = [];
53
- placeholder = 'Search for a user (press Enter)...';
51
+ CurrentUser;
52
+ /** @deprecated Use {@link CurrentUser}. */
53
+ set currentUser(value) {
54
+ this.CurrentUser = value;
55
+ }
56
+ /** @deprecated Use {@link CurrentUser}. */
57
+ get currentUser() {
58
+ return this.CurrentUser;
59
+ }
60
+ ExcludeUserIds = [];
61
+ /** @deprecated Use {@link ExcludeUserIds}. */
62
+ set excludeUserIds(value) {
63
+ this.ExcludeUserIds = value;
64
+ }
65
+ /** @deprecated Use {@link ExcludeUserIds}. */
66
+ get excludeUserIds() {
67
+ return this.ExcludeUserIds;
68
+ }
69
+ Placeholder = 'Search for a user (press Enter)...';
70
+ /** @deprecated Use {@link Placeholder}. */
71
+ set placeholder(value) {
72
+ this.Placeholder = value;
73
+ }
74
+ /** @deprecated Use {@link Placeholder}. */
75
+ get placeholder() {
76
+ return this.Placeholder;
77
+ }
54
78
  constructor(cdr) {
55
79
  super();
56
80
  this.cdr = cdr;
57
81
  }
58
- userSelected = new EventEmitter();
59
- searchQuery = '';
60
- searchResults = [];
61
- isSearching = false;
62
- showResults = false;
82
+ UserSelected = new EventEmitter();
83
+ /**
84
+ * @deprecated Use {@link UserSelected}.
85
+ *
86
+ * The same emitter under the old binding name, so a template still binding
87
+ * (userSelected) keeps working. Must stay AFTER UserSelected: class fields
88
+ * initialise in order, and the other way round this captures undefined.
89
+ */
90
+ userSelected = this.UserSelected;
91
+ SearchQuery = '';
92
+ /** @deprecated Use {@link SearchQuery}. */
93
+ get searchQuery() {
94
+ return this.SearchQuery;
95
+ }
96
+ /** @deprecated Use {@link SearchQuery}. */
97
+ set searchQuery(value) {
98
+ this.SearchQuery = value;
99
+ }
100
+ SearchResults = [];
101
+ /** @deprecated Use {@link SearchResults}. */
102
+ get searchResults() {
103
+ return this.SearchResults;
104
+ }
105
+ /** @deprecated Use {@link SearchResults}. */
106
+ set searchResults(value) {
107
+ this.SearchResults = value;
108
+ }
109
+ IsSearching = false;
110
+ /** @deprecated Use {@link IsSearching}. */
111
+ get isSearching() {
112
+ return this.IsSearching;
113
+ }
114
+ /** @deprecated Use {@link IsSearching}. */
115
+ set isSearching(value) {
116
+ this.IsSearching = value;
117
+ }
118
+ ShowResults = false;
119
+ /** @deprecated Use {@link ShowResults}. */
120
+ get showResults() {
121
+ return this.ShowResults;
122
+ }
123
+ /** @deprecated Use {@link ShowResults}. */
124
+ set showResults(value) {
125
+ this.ShowResults = value;
126
+ }
63
127
  ngOnInit() {
64
128
  // Add click outside listener to close dropdown
65
129
  document.addEventListener('click', this.handleClickOutside.bind(this));
@@ -70,38 +134,46 @@ export class UserPickerComponent extends BaseAngularComponent {
70
134
  handleClickOutside(event) {
71
135
  const target = event.target;
72
136
  if (!target.closest('.user-picker')) {
73
- this.showResults = false;
137
+ this.ShowResults = false;
74
138
  }
75
139
  }
76
- onSearch() {
77
- if (!this.searchQuery || this.searchQuery.trim().length < 2) {
78
- this.showResults = false;
140
+ OnSearch() {
141
+ if (!this.SearchQuery || this.SearchQuery.trim().length < 2) {
142
+ this.ShowResults = false;
79
143
  return;
80
144
  }
81
- this.performSearch(this.searchQuery.trim());
145
+ this.performSearch(this.SearchQuery.trim());
146
+ }
147
+ /** @deprecated Use {@link OnSearch}. */
148
+ onSearch() {
149
+ return this.OnSearch();
82
150
  }
151
+ OnSelectUser(user) {
152
+ this.UserSelected.emit(user);
153
+ this.SearchQuery = '';
154
+ this.SearchResults = [];
155
+ this.ShowResults = false;
156
+ }
157
+ /** @deprecated Use {@link OnSelectUser}. */
83
158
  onSelectUser(user) {
84
- this.userSelected.emit(user);
85
- this.searchQuery = '';
86
- this.searchResults = [];
87
- this.showResults = false;
159
+ return this.OnSelectUser(user);
88
160
  }
89
161
  async performSearch(query) {
90
162
  if (!query || query.length < 2) {
91
- this.searchResults = [];
92
- this.showResults = false;
163
+ this.SearchResults = [];
164
+ this.ShowResults = false;
93
165
  return;
94
166
  }
95
- this.isSearching = true;
96
- this.showResults = true;
167
+ this.IsSearching = true;
168
+ this.ShowResults = true;
97
169
  try {
98
170
  const rv = RunView.FromMetadataProvider(this.ProviderToUse);
99
171
  // Escape single quotes in query to prevent SQL errors
100
172
  const escapedQuery = query.replace(/'/g, "''");
101
173
  // Build exclude filter
102
174
  let excludeFilter = '';
103
- if (this.excludeUserIds.length > 0) {
104
- const ids = this.excludeUserIds.map(id => `'${id}'`).join(',');
175
+ if (this.ExcludeUserIds.length > 0) {
176
+ const ids = this.ExcludeUserIds.map(id => `'${id}'`).join(',');
105
177
  excludeFilter = ` AND ID NOT IN (${ids})`;
106
178
  }
107
179
  // Search in Name, Email, FirstName, and LastName (case-insensitive)
@@ -117,7 +189,7 @@ export class UserPickerComponent extends BaseAngularComponent {
117
189
  OrderBy: 'Name ASC',
118
190
  MaxRows: 20,
119
191
  ResultType: 'entity_object'
120
- }, this.currentUser);
192
+ }, this.CurrentUser);
121
193
  console.log('User search result:', {
122
194
  query,
123
195
  success: result.Success,
@@ -125,7 +197,7 @@ export class UserPickerComponent extends BaseAngularComponent {
125
197
  error: result.ErrorMessage
126
198
  });
127
199
  if (result.Success && result.Results) {
128
- this.searchResults = result.Results.map(user => ({
200
+ this.SearchResults = result.Results.map(user => ({
129
201
  id: user.ID,
130
202
  name: user.Name,
131
203
  email: user.Email,
@@ -135,20 +207,20 @@ export class UserPickerComponent extends BaseAngularComponent {
135
207
  }
136
208
  else {
137
209
  console.warn('User search returned no results or failed:', result.ErrorMessage);
138
- this.searchResults = [];
210
+ this.SearchResults = [];
139
211
  }
140
212
  }
141
213
  catch (error) {
142
214
  console.error('Error searching users:', error);
143
- this.searchResults = [];
215
+ this.SearchResults = [];
144
216
  }
145
217
  finally {
146
- this.isSearching = false;
218
+ this.IsSearching = false;
147
219
  this.cdr.detectChanges();
148
220
  }
149
221
  }
150
222
  static ɵfac = function UserPickerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UserPickerComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
151
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserPickerComponent, selectors: [["mj-user-picker"]], inputs: { currentUser: "currentUser", excludeUserIds: "excludeUserIds", placeholder: "placeholder" }, outputs: { userSelected: "userSelected" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 8, vars: 7, consts: [[1, "user-picker"], [1, "search-input-wrapper"], ["type", "text", 1, "user-search-input", 3, "ngModelChange", "keydown.enter", "ngModel", "placeholder", "disabled"], [1, "search-button", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-search"], [1, "search-results-dropdown"], [1, "user-search-item"], [1, "user-search-item", 3, "click"], [1, "user-avatar"], [1, "fa-solid", "fa-user"], [1, "user-info"], [1, "user-name"], [1, "user-email"], ["Variant", "no-results", "Size", "compact", "Icon", "fa-solid fa-user-slash", "Title", "No users found"]], template: function UserPickerComponent_Template(rf, ctx) { if (rf & 1) {
223
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserPickerComponent, selectors: [["mj-user-picker"]], inputs: { CurrentUser: "CurrentUser", currentUser: "currentUser", ExcludeUserIds: "ExcludeUserIds", excludeUserIds: "excludeUserIds", Placeholder: "Placeholder", placeholder: "placeholder" }, outputs: { UserSelected: "UserSelected", userSelected: "userSelected" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 8, vars: 7, consts: [[1, "user-picker"], [1, "search-input-wrapper"], ["type", "text", 1, "user-search-input", 3, "ngModelChange", "keydown.enter", "ngModel", "placeholder", "disabled"], [1, "search-button", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-search"], [1, "search-results-dropdown"], [1, "user-search-item"], [1, "user-search-item", 3, "click"], [1, "user-avatar"], [1, "fa-solid", "fa-user"], [1, "user-info"], [1, "user-name"], [1, "user-email"], ["Variant", "no-results", "Size", "compact", "Icon", "fa-solid fa-user-slash", "Title", "No users found"]], template: function UserPickerComponent_Template(rf, ctx) { if (rf & 1) {
152
224
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "input", 2);
153
225
  i0.ɵɵtwoWayListener("ngModelChange", function UserPickerComponent_Template_input_ngModelChange_2_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.searchQuery, $event) || (ctx.searchQuery = $event); return $event; });
154
226
  i0.ɵɵlistener("keydown.enter", function UserPickerComponent_Template_input_keydown_enter_2_listener() { return ctx.onSearch(); });
@@ -220,12 +292,20 @@ export class UserPickerComponent extends BaseAngularComponent {
220
292
  }
221
293
  </div>
222
294
  `, styles: ["\n .user-picker {\n width: 100%;\n position: relative;\n }\n\n .search-input-wrapper {\n display: flex;\n gap: 8px;\n width: 100%;\n }\n\n .user-search-input {\n flex: 1;\n padding: 8px 12px;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n font-size: 14px;\n outline: none;\n transition: border-color 0.2s;\n }\n\n .user-search-input:focus {\n border-color: #6366F1;\n }\n\n .user-search-input:disabled {\n background: #F3F4F6;\n cursor: not-allowed;\n }\n\n .search-button {\n padding: 8px 16px;\n background: #6366F1;\n color: white;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.2s;\n }\n\n .search-button:hover:not(:disabled) {\n background: #5558E3;\n }\n\n .search-button:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .search-button i {\n font-size: 14px;\n }\n\n .search-results-dropdown {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n right: 0;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n max-height: 300px;\n overflow-y: auto;\n z-index: 1000;\n }\n\n .user-search-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .user-search-item:hover {\n background-color: #F3F4F6;\n }\n\n .user-avatar {\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: linear-gradient(135deg, #667EEA 0%, #764BA2 100%);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 16px;\n flex-shrink: 0;\n }\n\n .user-info {\n flex: 1;\n min-width: 0;\n }\n\n .user-name {\n font-size: 14px;\n font-weight: 500;\n color: #1F2937;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .user-email {\n font-size: 12px;\n color: #6B7280;\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n "] }]
223
- }], () => [{ type: i0.ChangeDetectorRef }], { currentUser: [{
295
+ }], () => [{ type: i0.ChangeDetectorRef }], { CurrentUser: [{
296
+ type: Input
297
+ }], currentUser: [{
298
+ type: Input
299
+ }], ExcludeUserIds: [{
224
300
  type: Input
225
301
  }], excludeUserIds: [{
226
302
  type: Input
303
+ }], Placeholder: [{
304
+ type: Input
227
305
  }], placeholder: [{
228
306
  type: Input
307
+ }], UserSelected: [{
308
+ type: Output
229
309
  }], userSelected: [{
230
310
  type: Output
231
311
  }] }); })();
@@ -1 +1 @@
1
- {"version":3,"file":"user-picker.component.js","sourceRoot":"","sources":["../../../../src/lib/components/shared/user-picker.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\n\nimport { FormsModule } from '@angular/forms';\nimport { MJEmptyStateComponent } from '@memberjunction/ng-ui-components';\nimport { UserInfo, RunView } from '@memberjunction/core';\nimport { MJUserEntity } from '@memberjunction/core-entities';\n\nexport interface UserSearchResult {\n id: string;\n name: string;\n email: string;\n firstName: string;\n lastName: string;\n}\n\n@Component({\n selector: 'mj-user-picker',\n standalone: true,\n imports: [FormsModule, MJEmptyStateComponent],\n template: `\n <div class=\"user-picker\">\n <div class=\"search-input-wrapper\">\n <input\n type=\"text\"\n class=\"user-search-input\"\n [(ngModel)]=\"searchQuery\"\n [placeholder]=\"placeholder\"\n (keydown.enter)=\"onSearch()\"\n [disabled]=\"isSearching\"\n />\n <button class=\"search-button\" (click)=\"onSearch()\" [disabled]=\"isSearching\">\n @if (isSearching) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n } @else {\n <i class=\"fa-solid fa-search\"></i>\n }\n </button>\n </div>\n\n @if (showResults && searchResults.length > 0) {\n <div class=\"search-results-dropdown\">\n @for (user of searchResults; track user.id) {\n <div class=\"user-search-item\" (click)=\"onSelectUser(user)\">\n <div class=\"user-avatar\">\n <i class=\"fa-solid fa-user\"></i>\n </div>\n <div class=\"user-info\">\n <div class=\"user-name\">{{ user.name }}</div>\n <div class=\"user-email\">{{ user.email }}</div>\n </div>\n </div>\n }\n </div>\n }\n\n @if (showResults && searchResults.length === 0 && searchQuery.length >= 2 && !isSearching) {\n <div class=\"search-results-dropdown\">\n <mj-empty-state Variant=\"no-results\" Size=\"compact\"\n Icon=\"fa-solid fa-user-slash\" Title=\"No users found\" />\n </div>\n }\n </div>\n `,\n styles: [`\n .user-picker {\n width: 100%;\n position: relative;\n }\n\n .search-input-wrapper {\n display: flex;\n gap: 8px;\n width: 100%;\n }\n\n .user-search-input {\n flex: 1;\n padding: 8px 12px;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n font-size: 14px;\n outline: none;\n transition: border-color 0.2s;\n }\n\n .user-search-input:focus {\n border-color: #6366F1;\n }\n\n .user-search-input:disabled {\n background: #F3F4F6;\n cursor: not-allowed;\n }\n\n .search-button {\n padding: 8px 16px;\n background: #6366F1;\n color: white;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.2s;\n }\n\n .search-button:hover:not(:disabled) {\n background: #5558E3;\n }\n\n .search-button:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .search-button i {\n font-size: 14px;\n }\n\n .search-results-dropdown {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n right: 0;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n max-height: 300px;\n overflow-y: auto;\n z-index: 1000;\n }\n\n .user-search-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .user-search-item:hover {\n background-color: #F3F4F6;\n }\n\n .user-avatar {\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: linear-gradient(135deg, #667EEA 0%, #764BA2 100%);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 16px;\n flex-shrink: 0;\n }\n\n .user-info {\n flex: 1;\n min-width: 0;\n }\n\n .user-name {\n font-size: 14px;\n font-weight: 500;\n color: #1F2937;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .user-email {\n font-size: 12px;\n color: #6B7280;\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n `]\n})\nexport class UserPickerComponent extends BaseAngularComponent implements OnInit, OnDestroy {\n @Input() currentUser!: UserInfo;\n @Input() excludeUserIds: string[] = [];\n @Input() placeholder: string = 'Search for a user (press Enter)...';\n\n constructor(private cdr: ChangeDetectorRef) {\n super();}\n\n @Output() userSelected = new EventEmitter<UserSearchResult>();\n\n searchQuery: string = '';\n searchResults: UserSearchResult[] = [];\n isSearching: boolean = false;\n showResults: boolean = false;\n\n ngOnInit(): void {\n // Add click outside listener to close dropdown\n document.addEventListener('click', this.handleClickOutside.bind(this));\n }\n\n ngOnDestroy(): void {\n document.removeEventListener('click', this.handleClickOutside.bind(this));\n }\n\n private handleClickOutside(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n if (!target.closest('.user-picker')) {\n this.showResults = false;\n }\n }\n\n onSearch(): void {\n if (!this.searchQuery || this.searchQuery.trim().length < 2) {\n this.showResults = false;\n return;\n }\n\n this.performSearch(this.searchQuery.trim());\n }\n\n onSelectUser(user: UserSearchResult): void {\n this.userSelected.emit(user);\n this.searchQuery = '';\n this.searchResults = [];\n this.showResults = false;\n }\n\n private async performSearch(query: string): Promise<void> {\n if (!query || query.length < 2) {\n this.searchResults = [];\n this.showResults = false;\n return;\n }\n\n this.isSearching = true;\n this.showResults = true;\n\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n\n // Escape single quotes in query to prevent SQL errors\n const escapedQuery = query.replace(/'/g, \"''\");\n\n // Build exclude filter\n let excludeFilter = '';\n if (this.excludeUserIds.length > 0) {\n const ids = this.excludeUserIds.map(id => `'${id}'`).join(',');\n excludeFilter = ` AND ID NOT IN (${ids})`;\n }\n\n // Search in Name, Email, FirstName, and LastName (case-insensitive)\n const searchFilter = `(\n Name LIKE '%${escapedQuery}%' OR\n Email LIKE '%${escapedQuery}%' OR\n FirstName LIKE '%${escapedQuery}%' OR\n LastName LIKE '%${escapedQuery}%'\n )${excludeFilter}`;\n\n const result = await rv.RunView<MJUserEntity>({\n EntityName: 'MJ: Users',\n ExtraFilter: searchFilter,\n OrderBy: 'Name ASC',\n MaxRows: 20,\n ResultType: 'entity_object'\n }, this.currentUser);\n\n console.log('User search result:', {\n query,\n success: result.Success,\n count: result.Results?.length,\n error: result.ErrorMessage\n });\n\n if (result.Success && result.Results) {\n this.searchResults = result.Results.map(user => ({\n id: user.ID,\n name: user.Name,\n email: user.Email,\n firstName: user.FirstName || '',\n lastName: user.LastName || ''\n }));\n } else {\n console.warn('User search returned no results or failed:', result.ErrorMessage);\n this.searchResults = [];\n }\n } catch (error) {\n console.error('Error searching users:', error);\n this.searchResults = [];\n } finally {\n this.isSearching = false;\n this.cdr.detectChanges();\n }\n }\n}\n"]}
1
+ {"version":3,"file":"user-picker.component.js","sourceRoot":"","sources":["../../../../src/lib/components/shared/user-picker.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\n\nimport { FormsModule } from '@angular/forms';\nimport { MJEmptyStateComponent } from '@memberjunction/ng-ui-components';\nimport { UserInfo, RunView } from '@memberjunction/core';\nimport { MJUserEntity } from '@memberjunction/core-entities';\n\nexport interface UserSearchResult {\n id: string;\n name: string;\n email: string;\n firstName: string;\n lastName: string;\n}\n\n@Component({\n selector: 'mj-user-picker',\n standalone: true,\n imports: [FormsModule, MJEmptyStateComponent],\n template: `\n <div class=\"user-picker\">\n <div class=\"search-input-wrapper\">\n <input\n type=\"text\"\n class=\"user-search-input\"\n [(ngModel)]=\"searchQuery\"\n [placeholder]=\"placeholder\"\n (keydown.enter)=\"onSearch()\"\n [disabled]=\"isSearching\"\n />\n <button class=\"search-button\" (click)=\"onSearch()\" [disabled]=\"isSearching\">\n @if (isSearching) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n } @else {\n <i class=\"fa-solid fa-search\"></i>\n }\n </button>\n </div>\n\n @if (showResults && searchResults.length > 0) {\n <div class=\"search-results-dropdown\">\n @for (user of searchResults; track user.id) {\n <div class=\"user-search-item\" (click)=\"onSelectUser(user)\">\n <div class=\"user-avatar\">\n <i class=\"fa-solid fa-user\"></i>\n </div>\n <div class=\"user-info\">\n <div class=\"user-name\">{{ user.name }}</div>\n <div class=\"user-email\">{{ user.email }}</div>\n </div>\n </div>\n }\n </div>\n }\n\n @if (showResults && searchResults.length === 0 && searchQuery.length >= 2 && !isSearching) {\n <div class=\"search-results-dropdown\">\n <mj-empty-state Variant=\"no-results\" Size=\"compact\"\n Icon=\"fa-solid fa-user-slash\" Title=\"No users found\" />\n </div>\n }\n </div>\n `,\n styles: [`\n .user-picker {\n width: 100%;\n position: relative;\n }\n\n .search-input-wrapper {\n display: flex;\n gap: 8px;\n width: 100%;\n }\n\n .user-search-input {\n flex: 1;\n padding: 8px 12px;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n font-size: 14px;\n outline: none;\n transition: border-color 0.2s;\n }\n\n .user-search-input:focus {\n border-color: #6366F1;\n }\n\n .user-search-input:disabled {\n background: #F3F4F6;\n cursor: not-allowed;\n }\n\n .search-button {\n padding: 8px 16px;\n background: #6366F1;\n color: white;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.2s;\n }\n\n .search-button:hover:not(:disabled) {\n background: #5558E3;\n }\n\n .search-button:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .search-button i {\n font-size: 14px;\n }\n\n .search-results-dropdown {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n right: 0;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n max-height: 300px;\n overflow-y: auto;\n z-index: 1000;\n }\n\n .user-search-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n cursor: pointer;\n transition: background 0.15s;\n }\n\n .user-search-item:hover {\n background-color: #F3F4F6;\n }\n\n .user-avatar {\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: linear-gradient(135deg, #667EEA 0%, #764BA2 100%);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 16px;\n flex-shrink: 0;\n }\n\n .user-info {\n flex: 1;\n min-width: 0;\n }\n\n .user-name {\n font-size: 14px;\n font-weight: 500;\n color: #1F2937;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .user-email {\n font-size: 12px;\n color: #6B7280;\n margin-top: 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n `]\n})\nexport class UserPickerComponent extends BaseAngularComponent implements OnInit, OnDestroy {\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 @Input() ExcludeUserIds: string[] = [];\n\n /** @deprecated Use {@link ExcludeUserIds}. */\n @Input() set excludeUserIds(value: string[]) {\n this.ExcludeUserIds = value;\n }\n /** @deprecated Use {@link ExcludeUserIds}. */\n get excludeUserIds(): string[] {\n return this.ExcludeUserIds;\n }\n @Input() Placeholder: string = 'Search for a user (press Enter)...';\n\n /** @deprecated Use {@link Placeholder}. */\n @Input() set placeholder(value: string) {\n this.Placeholder = value;\n }\n /** @deprecated Use {@link Placeholder}. */\n get placeholder(): string {\n return this.Placeholder;\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n super();}\n\n @Output() UserSelected = new EventEmitter<UserSearchResult>();\n\n /**\n * @deprecated Use {@link UserSelected}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (userSelected) keeps working. Must stay AFTER UserSelected: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() userSelected = this.UserSelected;\n\n SearchQuery: string = '';\n\n /** @deprecated Use {@link SearchQuery}. */\n get searchQuery(): string {\n return this.SearchQuery;\n }\n /** @deprecated Use {@link SearchQuery}. */\n set searchQuery(value: string) {\n this.SearchQuery = value;\n }\n SearchResults: UserSearchResult[] = [];\n\n /** @deprecated Use {@link SearchResults}. */\n get searchResults(): UserSearchResult[] {\n return this.SearchResults;\n }\n /** @deprecated Use {@link SearchResults}. */\n set searchResults(value: UserSearchResult[]) {\n this.SearchResults = value;\n }\n IsSearching: boolean = false;\n\n /** @deprecated Use {@link IsSearching}. */\n get isSearching(): boolean {\n return this.IsSearching;\n }\n /** @deprecated Use {@link IsSearching}. */\n set isSearching(value: boolean) {\n this.IsSearching = value;\n }\n ShowResults: boolean = false;\n\n /** @deprecated Use {@link ShowResults}. */\n get showResults(): boolean {\n return this.ShowResults;\n }\n /** @deprecated Use {@link ShowResults}. */\n set showResults(value: boolean) {\n this.ShowResults = value;\n }\n\n ngOnInit(): void {\n // Add click outside listener to close dropdown\n document.addEventListener('click', this.handleClickOutside.bind(this));\n }\n\n ngOnDestroy(): void {\n document.removeEventListener('click', this.handleClickOutside.bind(this));\n }\n\n private handleClickOutside(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n if (!target.closest('.user-picker')) {\n this.ShowResults = false;\n }\n }\n\n OnSearch(): void {\n if (!this.SearchQuery || this.SearchQuery.trim().length < 2) {\n this.ShowResults = false;\n return;\n }\n\n this.performSearch(this.SearchQuery.trim());\n }\n\n /** @deprecated Use {@link OnSearch}. */\n onSearch(): void {\n return this.OnSearch();\n }\n\n OnSelectUser(user: UserSearchResult): void {\n this.UserSelected.emit(user);\n this.SearchQuery = '';\n this.SearchResults = [];\n this.ShowResults = false;\n }\n\n /** @deprecated Use {@link OnSelectUser}. */\n onSelectUser(user: UserSearchResult): void {\n return this.OnSelectUser(user);\n }\n\n private async performSearch(query: string): Promise<void> {\n if (!query || query.length < 2) {\n this.SearchResults = [];\n this.ShowResults = false;\n return;\n }\n\n this.IsSearching = true;\n this.ShowResults = true;\n\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n\n // Escape single quotes in query to prevent SQL errors\n const escapedQuery = query.replace(/'/g, \"''\");\n\n // Build exclude filter\n let excludeFilter = '';\n if (this.ExcludeUserIds.length > 0) {\n const ids = this.ExcludeUserIds.map(id => `'${id}'`).join(',');\n excludeFilter = ` AND ID NOT IN (${ids})`;\n }\n\n // Search in Name, Email, FirstName, and LastName (case-insensitive)\n const searchFilter = `(\n Name LIKE '%${escapedQuery}%' OR\n Email LIKE '%${escapedQuery}%' OR\n FirstName LIKE '%${escapedQuery}%' OR\n LastName LIKE '%${escapedQuery}%'\n )${excludeFilter}`;\n\n const result = await rv.RunView<MJUserEntity>({\n EntityName: 'MJ: Users',\n ExtraFilter: searchFilter,\n OrderBy: 'Name ASC',\n MaxRows: 20,\n ResultType: 'entity_object'\n }, this.CurrentUser);\n\n console.log('User search result:', {\n query,\n success: result.Success,\n count: result.Results?.length,\n error: result.ErrorMessage\n });\n\n if (result.Success && result.Results) {\n this.SearchResults = result.Results.map(user => ({\n id: user.ID,\n name: user.Name,\n email: user.Email,\n firstName: user.FirstName || '',\n lastName: user.LastName || ''\n }));\n } else {\n console.warn('User search returned no results or failed:', result.ErrorMessage);\n this.SearchResults = [];\n }\n } catch (error) {\n console.error('Error searching users:', error);\n this.SearchResults = [];\n } finally {\n this.IsSearching = false;\n this.cdr.detectChanges();\n }\n }\n}\n"]}
@@ -4,40 +4,143 @@ import { BaseAngularComponent } from '@memberjunction/ng-base-types';
4
4
  import { NavigationTab } from '../../models/conversation-state.model';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class ConversationSidebarComponent extends BaseAngularComponent {
7
- activeTab: NavigationTab;
8
- environmentId: string;
9
- currentUser: UserInfo;
10
- selectedConversationId: string | null;
11
- renamedConversationId: string | null;
12
- isSidebarPinned: boolean;
13
- isMobileView: boolean;
7
+ ActiveTab: NavigationTab;
8
+ /** @deprecated Use {@link ActiveTab}. */
9
+ set activeTab(value: NavigationTab);
10
+ /** @deprecated Use {@link ActiveTab}. */
11
+ get activeTab(): NavigationTab;
12
+ EnvironmentId: string;
13
+ /** @deprecated Use {@link EnvironmentId}. */
14
+ set environmentId(value: string);
15
+ /** @deprecated Use {@link EnvironmentId}. */
16
+ get environmentId(): string;
17
+ CurrentUser: UserInfo;
18
+ /** @deprecated Use {@link CurrentUser}. */
19
+ set currentUser(value: UserInfo);
20
+ /** @deprecated Use {@link CurrentUser}. */
21
+ get currentUser(): UserInfo;
22
+ SelectedConversationId: string | null;
23
+ /** @deprecated Use {@link SelectedConversationId}. */
24
+ set selectedConversationId(value: string | null);
25
+ /** @deprecated Use {@link SelectedConversationId}. */
26
+ get selectedConversationId(): string | null;
27
+ RenamedConversationId: string | null;
28
+ /** @deprecated Use {@link RenamedConversationId}. */
29
+ set renamedConversationId(value: string | null);
30
+ /** @deprecated Use {@link RenamedConversationId}. */
31
+ get renamedConversationId(): string | null;
32
+ IsSidebarPinned: boolean;
33
+ /** @deprecated Use {@link IsSidebarPinned}. */
34
+ set isSidebarPinned(value: boolean);
35
+ /** @deprecated Use {@link IsSidebarPinned}. */
36
+ get isSidebarPinned(): boolean;
37
+ IsMobileView: boolean;
38
+ /** @deprecated Use {@link IsMobileView}. */
39
+ set isMobileView(value: boolean);
40
+ /** @deprecated Use {@link IsMobileView}. */
41
+ get isMobileView(): boolean;
14
42
  /** Show the Routines section at the bottom of the sidebar (bubbled from the workspace; default true). */
15
43
  ShowRoutines: boolean;
16
44
  /** Show the list's search box. */
17
45
  showSearch: boolean;
18
46
  /** Show the list's "New Conversation" button. */
19
- showNewConversationButton: boolean;
47
+ ShowNewConversationButton: boolean;
48
+ /** @deprecated Use {@link ShowNewConversationButton}. */
49
+ set showNewConversationButton(value: boolean);
50
+ /** @deprecated Use {@link ShowNewConversationButton}. */
51
+ get showNewConversationButton(): boolean;
20
52
  /** Show the list's ⋯ header options menu. */
21
- showHeaderMenu: boolean;
53
+ ShowHeaderMenu: boolean;
54
+ /** @deprecated Use {@link ShowHeaderMenu}. */
55
+ set showHeaderMenu(value: boolean);
56
+ /** @deprecated Use {@link ShowHeaderMenu}. */
57
+ get showHeaderMenu(): boolean;
22
58
  /** Show the list's collapsible section headers. */
23
- showSectionHeaders: boolean;
59
+ ShowSectionHeaders: boolean;
60
+ /** @deprecated Use {@link ShowSectionHeaders}. */
61
+ set showSectionHeaders(value: boolean);
62
+ /** @deprecated Use {@link ShowSectionHeaders}. */
63
+ get showSectionHeaders(): boolean;
64
+ ConversationSelected: EventEmitter<string>;
65
+ /**
66
+ * @deprecated Use {@link ConversationSelected}.
67
+ *
68
+ * The same emitter under the old binding name, so a template still binding
69
+ * (conversationSelected) keeps working. Must stay AFTER ConversationSelected: class fields
70
+ * initialise in order, and the other way round this captures undefined.
71
+ */
24
72
  conversationSelected: EventEmitter<string>;
25
73
  /** Forwarded from the routines section — a run's linked execution record was clicked. */
74
+ OpenEntityRecord: EventEmitter<{
75
+ entityName: string;
76
+ compositeKey: CompositeKey;
77
+ }>;
78
+ /**
79
+ * @deprecated Use {@link OpenEntityRecord}.
80
+ *
81
+ * The same emitter under the old binding name, so a template still binding
82
+ * (openEntityRecord) keeps working. Must stay AFTER OpenEntityRecord: class fields
83
+ * initialise in order, and the other way round this captures undefined.
84
+ */
26
85
  openEntityRecord: EventEmitter<{
27
86
  entityName: string;
28
87
  compositeKey: CompositeKey;
29
88
  }>;
89
+ NewConversationRequested: EventEmitter<void>;
90
+ /**
91
+ * @deprecated Use {@link NewConversationRequested}.
92
+ *
93
+ * The same emitter under the old binding name, so a template still binding
94
+ * (newConversationRequested) keeps working. Must stay AFTER NewConversationRequested: class fields
95
+ * initialise in order, and the other way round this captures undefined.
96
+ */
30
97
  newConversationRequested: EventEmitter<void>;
98
+ PinSidebarRequested: EventEmitter<void>;
99
+ /**
100
+ * @deprecated Use {@link PinSidebarRequested}.
101
+ *
102
+ * The same emitter under the old binding name, so a template still binding
103
+ * (pinSidebarRequested) keeps working. Must stay AFTER PinSidebarRequested: class fields
104
+ * initialise in order, and the other way round this captures undefined.
105
+ */
31
106
  pinSidebarRequested: EventEmitter<void>;
107
+ UnpinSidebarRequested: EventEmitter<void>;
108
+ /**
109
+ * @deprecated Use {@link UnpinSidebarRequested}.
110
+ *
111
+ * The same emitter under the old binding name, so a template still binding
112
+ * (unpinSidebarRequested) keeps working. Must stay AFTER UnpinSidebarRequested: class fields
113
+ * initialise in order, and the other way round this captures undefined.
114
+ */
32
115
  unpinSidebarRequested: EventEmitter<void>;
33
116
  /** Re-emitted from the conversation list — a conversation was deleted (payload = its ID).
34
117
  * Hosts use this to recover when the ACTIVE conversation is deleted. */
118
+ ConversationDeleted: EventEmitter<string>;
119
+ /**
120
+ * @deprecated Use {@link ConversationDeleted}.
121
+ *
122
+ * The same emitter under the old binding name, so a template still binding
123
+ * (conversationDeleted) keeps working. Must stay AFTER ConversationDeleted: class fields
124
+ * initialise in order, and the other way round this captures undefined.
125
+ */
35
126
  conversationDeleted: EventEmitter<string>;
36
127
  /** Re-emitted from the conversation list — the user refreshed the list. */
128
+ RefreshRequested: EventEmitter<void>;
129
+ /**
130
+ * @deprecated Use {@link RefreshRequested}.
131
+ *
132
+ * The same emitter under the old binding name, so a template still binding
133
+ * (refreshRequested) keeps working. Must stay AFTER RefreshRequested: class fields
134
+ * initialise in order, and the other way round this captures undefined.
135
+ */
37
136
  refreshRequested: EventEmitter<void>;
137
+ OnPinSidebarRequested(): void;
138
+ /** @deprecated Use {@link OnPinSidebarRequested}. */
38
139
  onPinSidebarRequested(): void;
140
+ OnUnpinSidebarRequested(): void;
141
+ /** @deprecated Use {@link OnUnpinSidebarRequested}. */
39
142
  onUnpinSidebarRequested(): void;
40
143
  static ɵfac: i0.ɵɵFactoryDeclaration<ConversationSidebarComponent, never>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<ConversationSidebarComponent, "mj-conversation-sidebar", never, { "activeTab": { "alias": "activeTab"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "selectedConversationId": { "alias": "selectedConversationId"; "required": false; }; "renamedConversationId": { "alias": "renamedConversationId"; "required": false; }; "isSidebarPinned": { "alias": "isSidebarPinned"; "required": false; }; "isMobileView": { "alias": "isMobileView"; "required": false; }; "ShowRoutines": { "alias": "ShowRoutines"; "required": false; }; "showSearch": { "alias": "showSearch"; "required": false; }; "showNewConversationButton": { "alias": "showNewConversationButton"; "required": false; }; "showHeaderMenu": { "alias": "showHeaderMenu"; "required": false; }; "showSectionHeaders": { "alias": "showSectionHeaders"; "required": false; }; }, { "conversationSelected": "conversationSelected"; "openEntityRecord": "openEntityRecord"; "newConversationRequested": "newConversationRequested"; "pinSidebarRequested": "pinSidebarRequested"; "unpinSidebarRequested": "unpinSidebarRequested"; "conversationDeleted": "conversationDeleted"; "refreshRequested": "refreshRequested"; }, never, never, false, never>;
144
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConversationSidebarComponent, "mj-conversation-sidebar", never, { "ActiveTab": { "alias": "ActiveTab"; "required": false; }; "activeTab": { "alias": "activeTab"; "required": false; }; "EnvironmentId": { "alias": "EnvironmentId"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "CurrentUser": { "alias": "CurrentUser"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "SelectedConversationId": { "alias": "SelectedConversationId"; "required": false; }; "selectedConversationId": { "alias": "selectedConversationId"; "required": false; }; "RenamedConversationId": { "alias": "RenamedConversationId"; "required": false; }; "renamedConversationId": { "alias": "renamedConversationId"; "required": false; }; "IsSidebarPinned": { "alias": "IsSidebarPinned"; "required": false; }; "isSidebarPinned": { "alias": "isSidebarPinned"; "required": false; }; "IsMobileView": { "alias": "IsMobileView"; "required": false; }; "isMobileView": { "alias": "isMobileView"; "required": false; }; "ShowRoutines": { "alias": "ShowRoutines"; "required": false; }; "showSearch": { "alias": "showSearch"; "required": false; }; "ShowNewConversationButton": { "alias": "ShowNewConversationButton"; "required": false; }; "showNewConversationButton": { "alias": "showNewConversationButton"; "required": false; }; "ShowHeaderMenu": { "alias": "ShowHeaderMenu"; "required": false; }; "showHeaderMenu": { "alias": "showHeaderMenu"; "required": false; }; "ShowSectionHeaders": { "alias": "ShowSectionHeaders"; "required": false; }; "showSectionHeaders": { "alias": "showSectionHeaders"; "required": false; }; }, { "ConversationSelected": "ConversationSelected"; "conversationSelected": "conversationSelected"; "OpenEntityRecord": "OpenEntityRecord"; "openEntityRecord": "openEntityRecord"; "NewConversationRequested": "NewConversationRequested"; "newConversationRequested": "newConversationRequested"; "PinSidebarRequested": "PinSidebarRequested"; "pinSidebarRequested": "pinSidebarRequested"; "UnpinSidebarRequested": "UnpinSidebarRequested"; "unpinSidebarRequested": "unpinSidebarRequested"; "ConversationDeleted": "ConversationDeleted"; "conversationDeleted": "conversationDeleted"; "RefreshRequested": "RefreshRequested"; "refreshRequested": "refreshRequested"; }, never, never, false, never>;
42
145
  }
43
146
  //# sourceMappingURL=conversation-sidebar.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-sidebar.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/sidebar/conversation-sidebar.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;;AAEtE,qBAyEa,4BAA6B,SAAQ,oBAAoB;IAC3D,SAAS,EAAE,aAAa,CAAmB;IAC3C,aAAa,EAAG,MAAM,CAAC;IACvB,WAAW,EAAG,QAAQ,CAAC;IACvB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7C,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5C,eAAe,EAAE,OAAO,CAAQ;IAChC,YAAY,EAAE,OAAO,CAAS;IACvC,yGAAyG;IAChG,YAAY,EAAE,OAAO,CAAQ;IAItC,kCAAkC;IACzB,UAAU,EAAE,OAAO,CAAQ;IACpC,iDAAiD;IACxC,yBAAyB,EAAE,OAAO,CAAQ;IACnD,6CAA6C;IACpC,cAAc,EAAE,OAAO,CAAQ;IACxC,mDAAmD;IAC1C,kBAAkB,EAAE,OAAO,CAAQ;IAElC,oBAAoB,uBAA8B;IAC5D,yFAAyF;IAC/E,gBAAgB;oBAAkC,MAAM;sBAAgB,YAAY;OAAM;IAC1F,wBAAwB,qBAA4B;IACpD,mBAAmB,qBAA4B;IAC/C,qBAAqB,qBAA4B;IAC3D;6EACyE;IAC/D,mBAAmB,uBAA8B;IAC3D,2EAA2E;IACjE,gBAAgB,qBAA4B;IAEtD,qBAAqB,IAAI,IAAI;IAI7B,uBAAuB,IAAI,IAAI;yCAtCpB,4BAA4B;2CAA5B,4BAA4B;CAyCxC"}
1
+ {"version":3,"file":"conversation-sidebar.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/sidebar/conversation-sidebar.component.ts"],"names":[],"mappings":"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"}