@memberjunction/ng-conversations 6.2.0-edge.0 → 6.2.0-edge.2

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 (351) hide show
  1. package/README.md +43 -2
  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 +1191 -124
  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 +2816 -785
  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 +42 -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 +93 -21
  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 +49 -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 +140 -26
  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 +613 -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 +1390 -422
  113. package/dist/lib/components/message/message-input.component.js.map +1 -1
  114. package/dist/lib/components/message/message-item.component.d.ts +490 -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 +1088 -244
  117. package/dist/lib/components/message/message-item.component.js.map +1 -1
  118. package/dist/lib/components/message/message-list.component.d.ts +297 -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 +598 -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/realtime-activity-rail.component.d.ts +1 -1
  146. package/dist/lib/components/realtime/realtime-activity-rail.component.js +2 -2
  147. package/dist/lib/components/realtime/realtime-activity-rail.component.js.map +1 -1
  148. package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts +1 -1
  149. package/dist/lib/components/realtime/realtime-delegation-card.component.js +2 -2
  150. package/dist/lib/components/realtime/realtime-delegation-card.component.js.map +1 -1
  151. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +2 -2
  152. package/dist/lib/components/realtime/realtime-session-overlay.component.js +18 -18
  153. package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -1
  154. package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts +47 -23
  155. package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts.map +1 -1
  156. package/dist/lib/components/realtime/realtime-session-timeline-card.component.js +136 -92
  157. package/dist/lib/components/realtime/realtime-session-timeline-card.component.js.map +1 -1
  158. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +2 -2
  159. package/dist/lib/components/realtime/realtime-surface-tabs.component.js +4 -4
  160. package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -1
  161. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +1 -1
  162. package/dist/lib/components/realtime/realtime-surface-tabs.model.js +3 -3
  163. package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -1
  164. package/dist/lib/components/realtime/realtime-ui-config.d.ts +13 -11
  165. package/dist/lib/components/realtime/realtime-ui-config.d.ts.map +1 -1
  166. package/dist/lib/components/realtime/realtime-ui-config.js +29 -25
  167. package/dist/lib/components/realtime/realtime-ui-config.js.map +1 -1
  168. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts +3 -1
  169. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts.map +1 -1
  170. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js +6 -2
  171. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js.map +1 -1
  172. package/dist/lib/components/search/search-panel.component.d.ts +133 -22
  173. package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
  174. package/dist/lib/components/search/search-panel.component.js +312 -83
  175. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  176. package/dist/lib/components/share/share-modal.component.d.ts +69 -9
  177. package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
  178. package/dist/lib/components/share/share-modal.component.js +139 -31
  179. package/dist/lib/components/share/share-modal.component.js.map +1 -1
  180. package/dist/lib/components/shared/user-picker.component.d.ts +48 -8
  181. package/dist/lib/components/shared/user-picker.component.d.ts.map +1 -1
  182. package/dist/lib/components/shared/user-picker.component.js +110 -30
  183. package/dist/lib/components/shared/user-picker.component.js.map +1 -1
  184. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts +114 -11
  185. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -1
  186. package/dist/lib/components/sidebar/conversation-sidebar.component.js +199 -21
  187. package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
  188. package/dist/lib/components/sidebar/routines-section.component.d.ts +20 -1
  189. package/dist/lib/components/sidebar/routines-section.component.d.ts.map +1 -1
  190. package/dist/lib/components/sidebar/routines-section.component.js +25 -5
  191. package/dist/lib/components/sidebar/routines-section.component.js.map +1 -1
  192. package/dist/lib/components/slots/slot-interfaces.d.ts +19 -0
  193. package/dist/lib/components/slots/slot-interfaces.d.ts.map +1 -1
  194. package/dist/lib/components/slots/slot-interfaces.js.map +1 -1
  195. package/dist/lib/components/task/tasks-full-view.component.d.ts +95 -13
  196. package/dist/lib/components/task/tasks-full-view.component.d.ts.map +1 -1
  197. package/dist/lib/components/task/tasks-full-view.component.js +223 -75
  198. package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
  199. package/dist/lib/components/tasks/task-widget.component.d.ts +46 -6
  200. package/dist/lib/components/tasks/task-widget.component.d.ts.map +1 -1
  201. package/dist/lib/components/tasks/task-widget.component.js +100 -16
  202. package/dist/lib/components/tasks/task-widget.component.js.map +1 -1
  203. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +64 -7
  204. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
  205. package/dist/lib/components/tasks/tasks-dropdown.component.js +127 -27
  206. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
  207. package/dist/lib/components/thread/thread-panel.component.d.ts +66 -8
  208. package/dist/lib/components/thread/thread-panel.component.d.ts.map +1 -1
  209. package/dist/lib/components/thread/thread-panel.component.js +146 -36
  210. package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
  211. package/dist/lib/components/toast/toast.component.d.ts +11 -1
  212. package/dist/lib/components/toast/toast.component.d.ts.map +1 -1
  213. package/dist/lib/components/toast/toast.component.js +25 -5
  214. package/dist/lib/components/toast/toast.component.js.map +1 -1
  215. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +385 -42
  216. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  217. package/dist/lib/components/workspace/conversation-workspace.component.js +891 -292
  218. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  219. package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts +8 -0
  220. package/dist/lib/composer-plugins/base-conversation-mention.provider.d.ts.map +1 -1
  221. package/dist/lib/composer-plugins/base-conversation-mention.provider.js +8 -1
  222. package/dist/lib/composer-plugins/base-conversation-mention.provider.js.map +1 -1
  223. package/dist/lib/directives/chat-slot.directive.d.ts +5 -1
  224. package/dist/lib/directives/chat-slot.directive.d.ts.map +1 -1
  225. package/dist/lib/directives/chat-slot.directive.js.map +1 -1
  226. package/dist/lib/directives/search-shortcut.directive.d.ts +9 -1
  227. package/dist/lib/directives/search-shortcut.directive.d.ts.map +1 -1
  228. package/dist/lib/directives/search-shortcut.directive.js +14 -4
  229. package/dist/lib/directives/search-shortcut.directive.js.map +1 -1
  230. package/dist/lib/events/chat-events.d.ts +34 -7
  231. package/dist/lib/events/chat-events.d.ts.map +1 -1
  232. package/dist/lib/events/chat-events.js +37 -7
  233. package/dist/lib/events/chat-events.js.map +1 -1
  234. package/dist/lib/models/agent-turn.model.d.ts +113 -0
  235. package/dist/lib/models/agent-turn.model.d.ts.map +1 -0
  236. package/dist/lib/models/agent-turn.model.js +12 -0
  237. package/dist/lib/models/agent-turn.model.js.map +1 -0
  238. package/dist/lib/models/collection-view.model.js.map +1 -1
  239. package/dist/lib/models/conversation-state.model.d.ts +8 -0
  240. package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
  241. package/dist/lib/models/conversation-state.model.js.map +1 -1
  242. package/dist/lib/models/lazy-artifact-info.d.ts +44 -12
  243. package/dist/lib/models/lazy-artifact-info.d.ts.map +1 -1
  244. package/dist/lib/models/lazy-artifact-info.js +98 -34
  245. package/dist/lib/models/lazy-artifact-info.js.map +1 -1
  246. package/dist/lib/services/active-tasks.service.d.ts +30 -4
  247. package/dist/lib/services/active-tasks.service.d.ts.map +1 -1
  248. package/dist/lib/services/active-tasks.service.js +71 -19
  249. package/dist/lib/services/active-tasks.service.js.map +1 -1
  250. package/dist/lib/services/agent-state.service.d.ts +17 -1
  251. package/dist/lib/services/agent-state.service.d.ts.map +1 -1
  252. package/dist/lib/services/agent-state.service.js +48 -16
  253. package/dist/lib/services/agent-state.service.js.map +1 -1
  254. package/dist/lib/services/artifact-permission.service.d.ts +39 -0
  255. package/dist/lib/services/artifact-permission.service.d.ts.map +1 -1
  256. package/dist/lib/services/artifact-permission.service.js +152 -17
  257. package/dist/lib/services/artifact-permission.service.js.map +1 -1
  258. package/dist/lib/services/artifact-state.service.d.ts +58 -5
  259. package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
  260. package/dist/lib/services/artifact-state.service.js +135 -35
  261. package/dist/lib/services/artifact-state.service.js.map +1 -1
  262. package/dist/lib/services/collection-permission.service.d.ts +28 -0
  263. package/dist/lib/services/collection-permission.service.d.ts.map +1 -1
  264. package/dist/lib/services/collection-permission.service.js +88 -32
  265. package/dist/lib/services/collection-permission.service.js.map +1 -1
  266. package/dist/lib/services/collection-state.service.d.ts +11 -1
  267. package/dist/lib/services/collection-state.service.d.ts.map +1 -1
  268. package/dist/lib/services/collection-state.service.js +25 -5
  269. package/dist/lib/services/collection-state.service.js.map +1 -1
  270. package/dist/lib/services/conversation-agent.service.d.ts +47 -4
  271. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  272. package/dist/lib/services/conversation-agent.service.js +85 -20
  273. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  274. package/dist/lib/services/conversation-attachment.service.d.ts +17 -0
  275. package/dist/lib/services/conversation-attachment.service.d.ts.map +1 -1
  276. package/dist/lib/services/conversation-attachment.service.js +38 -10
  277. package/dist/lib/services/conversation-attachment.service.js.map +1 -1
  278. package/dist/lib/services/conversation-liveness-dom.service.d.ts +42 -0
  279. package/dist/lib/services/conversation-liveness-dom.service.d.ts.map +1 -0
  280. package/dist/lib/services/conversation-liveness-dom.service.js +74 -0
  281. package/dist/lib/services/conversation-liveness-dom.service.js.map +1 -0
  282. package/dist/lib/services/conversation-streaming.service.d.ts +22 -0
  283. package/dist/lib/services/conversation-streaming.service.d.ts.map +1 -1
  284. package/dist/lib/services/conversation-streaming.service.js +50 -10
  285. package/dist/lib/services/conversation-streaming.service.js.map +1 -1
  286. package/dist/lib/services/data-cache.service.d.ts +31 -0
  287. package/dist/lib/services/data-cache.service.d.ts.map +1 -1
  288. package/dist/lib/services/data-cache.service.js +71 -15
  289. package/dist/lib/services/data-cache.service.js.map +1 -1
  290. package/dist/lib/services/dialog.service.d.ts +13 -0
  291. package/dist/lib/services/dialog.service.d.ts.map +1 -1
  292. package/dist/lib/services/dialog.service.js +25 -5
  293. package/dist/lib/services/dialog.service.js.map +1 -1
  294. package/dist/lib/services/export.service.d.ts +2 -0
  295. package/dist/lib/services/export.service.d.ts.map +1 -1
  296. package/dist/lib/services/export.service.js +5 -1
  297. package/dist/lib/services/export.service.js.map +1 -1
  298. package/dist/lib/services/mention-parser.service.d.ts +10 -0
  299. package/dist/lib/services/mention-parser.service.d.ts.map +1 -1
  300. package/dist/lib/services/mention-parser.service.js +25 -5
  301. package/dist/lib/services/mention-parser.service.js.map +1 -1
  302. package/dist/lib/services/notification.service.d.ts +54 -6
  303. package/dist/lib/services/notification.service.d.ts.map +1 -1
  304. package/dist/lib/services/notification.service.js +123 -27
  305. package/dist/lib/services/notification.service.js.map +1 -1
  306. package/dist/lib/services/realtime-audio-recorder.d.ts +4 -4
  307. package/dist/lib/services/realtime-audio-recorder.js +12 -12
  308. package/dist/lib/services/realtime-audio-recorder.js.map +1 -1
  309. package/dist/lib/services/realtime-pcm-wav.d.ts +4 -0
  310. package/dist/lib/services/realtime-pcm-wav.d.ts.map +1 -1
  311. package/dist/lib/services/realtime-pcm-wav.js +10 -2
  312. package/dist/lib/services/realtime-pcm-wav.js.map +1 -1
  313. package/dist/lib/services/search.service.d.ts +42 -9
  314. package/dist/lib/services/search.service.d.ts.map +1 -1
  315. package/dist/lib/services/search.service.js +103 -23
  316. package/dist/lib/services/search.service.js.map +1 -1
  317. package/dist/lib/services/toast.service.d.ts +19 -1
  318. package/dist/lib/services/toast.service.d.ts.map +1 -1
  319. package/dist/lib/services/toast.service.js +45 -9
  320. package/dist/lib/services/toast.service.js.map +1 -1
  321. package/dist/lib/services/ui-command-handler.service.d.ts +56 -5
  322. package/dist/lib/services/ui-command-handler.service.d.ts.map +1 -1
  323. package/dist/lib/services/ui-command-handler.service.js +113 -16
  324. package/dist/lib/services/ui-command-handler.service.js.map +1 -1
  325. package/dist/lib/utils/agent-artifact-summary.d.ts +2 -2
  326. package/dist/lib/utils/agent-artifact-summary.js +3 -3
  327. package/dist/lib/utils/agent-artifact-summary.js.map +1 -1
  328. package/dist/lib/utils/agent-turn-routing.d.ts +70 -0
  329. package/dist/lib/utils/agent-turn-routing.d.ts.map +1 -0
  330. package/dist/lib/utils/agent-turn-routing.js +84 -0
  331. package/dist/lib/utils/agent-turn-routing.js.map +1 -0
  332. package/dist/lib/utils/artifact-panel-action.d.ts +15 -4
  333. package/dist/lib/utils/artifact-panel-action.d.ts.map +1 -1
  334. package/dist/lib/utils/artifact-panel-action.js +10 -2
  335. package/dist/lib/utils/artifact-panel-action.js.map +1 -1
  336. package/dist/lib/utils/decision-routing.d.ts +68 -0
  337. package/dist/lib/utils/decision-routing.d.ts.map +1 -0
  338. package/dist/lib/utils/decision-routing.js +101 -0
  339. package/dist/lib/utils/decision-routing.js.map +1 -0
  340. package/dist/lib/utils/distinct-artifacts.d.ts +2 -0
  341. package/dist/lib/utils/distinct-artifacts.d.ts.map +1 -1
  342. package/dist/lib/utils/distinct-artifacts.js +5 -1
  343. package/dist/lib/utils/distinct-artifacts.js.map +1 -1
  344. package/dist/lib/utils/plan-mode-preference.d.ts +2 -2
  345. package/dist/lib/utils/plan-mode-preference.js +6 -6
  346. package/dist/lib/utils/plan-mode-preference.js.map +1 -1
  347. package/dist/public-api.d.ts +5 -0
  348. package/dist/public-api.d.ts.map +1 -1
  349. package/dist/public-api.js +8 -0
  350. package/dist/public-api.js.map +1 -1
  351. package/package.json +32 -32
@@ -3,19 +3,78 @@ import { NavigationTab } from '../../models/conversation-state.model';
3
3
  import { UserInfo } from '@memberjunction/core';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class ConversationNavigationComponent {
6
- activeTab: NavigationTab;
7
- environmentId: string;
8
- currentUser: UserInfo;
9
- conversationId: string | null;
6
+ ActiveTab: NavigationTab;
7
+ /** @deprecated Use {@link ActiveTab}. */
8
+ set activeTab(value: NavigationTab);
9
+ /** @deprecated Use {@link ActiveTab}. */
10
+ get activeTab(): NavigationTab;
11
+ EnvironmentId: string;
12
+ /** @deprecated Use {@link EnvironmentId}. */
13
+ set environmentId(value: string);
14
+ /** @deprecated Use {@link EnvironmentId}. */
15
+ get environmentId(): string;
16
+ CurrentUser: UserInfo;
17
+ /** @deprecated Use {@link CurrentUser}. */
18
+ set currentUser(value: UserInfo);
19
+ /** @deprecated Use {@link CurrentUser}. */
20
+ get currentUser(): UserInfo;
21
+ ConversationId: string | null;
22
+ /** @deprecated Use {@link ConversationId}. */
23
+ set conversationId(value: string | null);
24
+ /** @deprecated Use {@link ConversationId}. */
25
+ get conversationId(): string | null;
26
+ TabChanged: EventEmitter<NavigationTab>;
27
+ /**
28
+ * @deprecated Use {@link TabChanged}.
29
+ *
30
+ * The same emitter under the old binding name, so a template still binding
31
+ * (tabChanged) keeps working. Must stay AFTER TabChanged: class fields
32
+ * initialise in order, and the other way round this captures undefined.
33
+ */
10
34
  tabChanged: EventEmitter<NavigationTab>;
35
+ SidebarToggled: EventEmitter<void>;
36
+ /**
37
+ * @deprecated Use {@link SidebarToggled}.
38
+ *
39
+ * The same emitter under the old binding name, so a template still binding
40
+ * (sidebarToggled) keeps working. Must stay AFTER SidebarToggled: class fields
41
+ * initialise in order, and the other way round this captures undefined.
42
+ */
11
43
  sidebarToggled: EventEmitter<void>;
44
+ SearchTriggered: EventEmitter<void>;
45
+ /**
46
+ * @deprecated Use {@link SearchTriggered}.
47
+ *
48
+ * The same emitter under the old binding name, so a template still binding
49
+ * (searchTriggered) keeps working. Must stay AFTER SearchTriggered: class fields
50
+ * initialise in order, and the other way round this captures undefined.
51
+ */
12
52
  searchTriggered: EventEmitter<void>;
53
+ RefreshTriggered: EventEmitter<void>;
54
+ /**
55
+ * @deprecated Use {@link RefreshTriggered}.
56
+ *
57
+ * The same emitter under the old binding name, so a template still binding
58
+ * (refreshTriggered) keeps working. Must stay AFTER RefreshTriggered: class fields
59
+ * initialise in order, and the other way round this captures undefined.
60
+ */
13
61
  refreshTriggered: EventEmitter<void>;
62
+ NavigateToConversation: EventEmitter<{
63
+ conversationId: string;
64
+ taskId: string;
65
+ }>;
66
+ /**
67
+ * @deprecated Use {@link NavigateToConversation}.
68
+ *
69
+ * The same emitter under the old binding name, so a template still binding
70
+ * (navigateToConversation) keeps working. Must stay AFTER NavigateToConversation: class fields
71
+ * initialise in order, and the other way round this captures undefined.
72
+ */
14
73
  navigateToConversation: EventEmitter<{
15
74
  conversationId: string;
16
75
  taskId: string;
17
76
  }>;
18
77
  static ɵfac: i0.ɵɵFactoryDeclaration<ConversationNavigationComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<ConversationNavigationComponent, "mj-conversation-navigation", never, { "activeTab": { "alias": "activeTab"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "conversationId": { "alias": "conversationId"; "required": false; }; }, { "tabChanged": "tabChanged"; "sidebarToggled": "sidebarToggled"; "searchTriggered": "searchTriggered"; "refreshTriggered": "refreshTriggered"; "navigateToConversation": "navigateToConversation"; }, never, never, false, never>;
78
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConversationNavigationComponent, "mj-conversation-navigation", 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; }; "ConversationId": { "alias": "ConversationId"; "required": false; }; "conversationId": { "alias": "conversationId"; "required": false; }; }, { "TabChanged": "TabChanged"; "tabChanged": "tabChanged"; "SidebarToggled": "SidebarToggled"; "sidebarToggled": "sidebarToggled"; "SearchTriggered": "SearchTriggered"; "searchTriggered": "searchTriggered"; "RefreshTriggered": "RefreshTriggered"; "refreshTriggered": "refreshTriggered"; "NavigateToConversation": "NavigateToConversation"; "navigateToConversation": "navigateToConversation"; }, never, never, false, never>;
20
79
  }
21
80
  //# sourceMappingURL=conversation-navigation.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-navigation.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/navigation/conversation-navigation.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;;AAEhD,qBAmKa,+BAA+B;IACjC,SAAS,EAAE,aAAa,CAAmB;IAC3C,aAAa,EAAG,MAAM,CAAC;IACvB,WAAW,EAAG,QAAQ,CAAC;IACvB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IACpC,UAAU,8BAAqC;IAC/C,cAAc,qBAA4B;IAC1C,eAAe,qBAA4B;IAC3C,gBAAgB,qBAA4B;IAC5C,sBAAsB;wBAAqC,MAAM;gBAAU,MAAM;OAAK;yCATrF,+BAA+B;2CAA/B,+BAA+B;CAU3C"}
1
+ {"version":3,"file":"conversation-navigation.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/navigation/conversation-navigation.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;;AAEhD,qBAmKa,+BAA+B;IACjC,SAAS,EAAE,aAAa,CAAmB;IAEpD,yCAAyC;IACzC,IAAa,SAAS,CAAC,KAAK,EAAE,aAAa,EAE1C;IACD,yCAAyC;IACzC,IAAI,SAAS,IAAI,aAAa,CAE7B;IACQ,aAAa,EAAG,MAAM,CAAC;IAEhC,6CAA6C;IAC7C,IAAa,aAAa,CAAC,KAAK,EAAE,MAAM,EAEvC;IACD,6CAA6C;IAC7C,IAAI,aAAa,IAAI,MAAM,CAE1B;IACQ,WAAW,EAAG,QAAQ,CAAC;IAEhC,2CAA2C;IAC3C,IAAa,WAAW,CAAC,KAAK,EAAE,QAAQ,EAEvC;IACD,2CAA2C;IAC3C,IAAI,WAAW,IAAI,QAAQ,CAE1B;IACQ,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE9C,8CAA8C;IAC9C,IAAa,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAE/C;IACD,8CAA8C;IAC9C,IAAI,cAAc,IAAI,MAAM,GAAG,IAAI,CAElC;IACS,UAAU,8BAAqC;IAEzD;;;;;;OAMG;IACO,UAAU,8BAAmB;IAC7B,cAAc,qBAA4B;IAEpD;;;;;;OAMG;IACO,cAAc,qBAAuB;IACrC,eAAe,qBAA4B;IAErD;;;;;;OAMG;IACO,eAAe,qBAAwB;IACvC,gBAAgB,qBAA4B;IAEtD;;;;;;OAMG;IACO,gBAAgB,qBAAyB;IACzC,sBAAsB;wBAAqC,MAAM;gBAAU,MAAM;OAAK;IAEhG;;;;;;OAMG;IACO,sBAAsB;wBATqC,MAAM;gBAAU,MAAM;OAS5B;yCA1FpD,+BAA+B;2CAA/B,+BAA+B;CA2F3C"}
@@ -2,17 +2,89 @@ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "../tasks/tasks-dropdown.component";
4
4
  export class ConversationNavigationComponent {
5
- activeTab = 'conversations';
6
- environmentId;
7
- currentUser;
8
- conversationId = null;
9
- tabChanged = new EventEmitter();
10
- sidebarToggled = new EventEmitter();
11
- searchTriggered = new EventEmitter();
12
- refreshTriggered = new EventEmitter();
13
- navigateToConversation = new EventEmitter();
5
+ ActiveTab = 'conversations';
6
+ /** @deprecated Use {@link ActiveTab}. */
7
+ set activeTab(value) {
8
+ this.ActiveTab = value;
9
+ }
10
+ /** @deprecated Use {@link ActiveTab}. */
11
+ get activeTab() {
12
+ return this.ActiveTab;
13
+ }
14
+ EnvironmentId;
15
+ /** @deprecated Use {@link EnvironmentId}. */
16
+ set environmentId(value) {
17
+ this.EnvironmentId = value;
18
+ }
19
+ /** @deprecated Use {@link EnvironmentId}. */
20
+ get environmentId() {
21
+ return this.EnvironmentId;
22
+ }
23
+ CurrentUser;
24
+ /** @deprecated Use {@link CurrentUser}. */
25
+ set currentUser(value) {
26
+ this.CurrentUser = value;
27
+ }
28
+ /** @deprecated Use {@link CurrentUser}. */
29
+ get currentUser() {
30
+ return this.CurrentUser;
31
+ }
32
+ ConversationId = null;
33
+ /** @deprecated Use {@link ConversationId}. */
34
+ set conversationId(value) {
35
+ this.ConversationId = value;
36
+ }
37
+ /** @deprecated Use {@link ConversationId}. */
38
+ get conversationId() {
39
+ return this.ConversationId;
40
+ }
41
+ TabChanged = new EventEmitter();
42
+ /**
43
+ * @deprecated Use {@link TabChanged}.
44
+ *
45
+ * The same emitter under the old binding name, so a template still binding
46
+ * (tabChanged) keeps working. Must stay AFTER TabChanged: class fields
47
+ * initialise in order, and the other way round this captures undefined.
48
+ */
49
+ tabChanged = this.TabChanged;
50
+ SidebarToggled = new EventEmitter();
51
+ /**
52
+ * @deprecated Use {@link SidebarToggled}.
53
+ *
54
+ * The same emitter under the old binding name, so a template still binding
55
+ * (sidebarToggled) keeps working. Must stay AFTER SidebarToggled: class fields
56
+ * initialise in order, and the other way round this captures undefined.
57
+ */
58
+ sidebarToggled = this.SidebarToggled;
59
+ SearchTriggered = new EventEmitter();
60
+ /**
61
+ * @deprecated Use {@link SearchTriggered}.
62
+ *
63
+ * The same emitter under the old binding name, so a template still binding
64
+ * (searchTriggered) keeps working. Must stay AFTER SearchTriggered: class fields
65
+ * initialise in order, and the other way round this captures undefined.
66
+ */
67
+ searchTriggered = this.SearchTriggered;
68
+ RefreshTriggered = new EventEmitter();
69
+ /**
70
+ * @deprecated Use {@link RefreshTriggered}.
71
+ *
72
+ * The same emitter under the old binding name, so a template still binding
73
+ * (refreshTriggered) keeps working. Must stay AFTER RefreshTriggered: class fields
74
+ * initialise in order, and the other way round this captures undefined.
75
+ */
76
+ refreshTriggered = this.RefreshTriggered;
77
+ NavigateToConversation = new EventEmitter();
78
+ /**
79
+ * @deprecated Use {@link NavigateToConversation}.
80
+ *
81
+ * The same emitter under the old binding name, so a template still binding
82
+ * (navigateToConversation) keeps working. Must stay AFTER NavigateToConversation: class fields
83
+ * initialise in order, and the other way round this captures undefined.
84
+ */
85
+ navigateToConversation = this.NavigateToConversation;
14
86
  static ɵfac = function ConversationNavigationComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ConversationNavigationComponent)(); };
15
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ConversationNavigationComponent, selectors: [["mj-conversation-navigation"]], inputs: { activeTab: "activeTab", environmentId: "environmentId", currentUser: "currentUser", conversationId: "conversationId" }, outputs: { tabChanged: "tabChanged", sidebarToggled: "sidebarToggled", searchTriggered: "searchTriggered", refreshTriggered: "refreshTriggered", navigateToConversation: "navigateToConversation" }, standalone: false, decls: 23, vars: 8, consts: [[1, "conversation-navigation"], [1, "nav-left"], [1, "nav-btn", "sidebar-toggle", 3, "click"], [1, "fas", "fa-bars"], [1, "nav-tabs"], [1, "nav-tab", 3, "click"], [1, "fas", "fa-comments"], [1, "fas", "fa-folder"], [1, "fas", "fa-tasks"], [1, "nav-right"], [3, "navigateToConversation", "currentUser", "conversationId"], ["title", "Search (Ctrl+K)", 1, "nav-btn", "search-btn", 3, "click"], [1, "fas", "fa-search"], ["title", "Refresh agent cache", 1, "nav-btn", "refresh-btn", 3, "click"], [1, "fas", "fa-sync-alt"]], template: function ConversationNavigationComponent_Template(rf, ctx) { if (rf & 1) {
87
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ConversationNavigationComponent, selectors: [["mj-conversation-navigation"]], inputs: { ActiveTab: "ActiveTab", activeTab: "activeTab", EnvironmentId: "EnvironmentId", environmentId: "environmentId", CurrentUser: "CurrentUser", currentUser: "currentUser", ConversationId: "ConversationId", conversationId: "conversationId" }, outputs: { TabChanged: "TabChanged", tabChanged: "tabChanged", SidebarToggled: "SidebarToggled", sidebarToggled: "sidebarToggled", SearchTriggered: "SearchTriggered", searchTriggered: "searchTriggered", RefreshTriggered: "RefreshTriggered", refreshTriggered: "refreshTriggered", NavigateToConversation: "NavigateToConversation", navigateToConversation: "navigateToConversation" }, standalone: false, decls: 23, vars: 8, consts: [[1, "conversation-navigation"], [1, "nav-left"], [1, "nav-btn", "sidebar-toggle", 3, "click"], [1, "fas", "fa-bars"], [1, "nav-tabs"], [1, "nav-tab", 3, "click"], [1, "fas", "fa-comments"], [1, "fas", "fa-folder"], [1, "fas", "fa-tasks"], [1, "nav-right"], [3, "navigateToConversation", "currentUser", "conversationId"], ["title", "Search (Ctrl+K)", 1, "nav-btn", "search-btn", 3, "click"], [1, "fas", "fa-search"], ["title", "Refresh agent cache", 1, "nav-btn", "refresh-btn", 3, "click"], [1, "fas", "fa-sync-alt"]], template: function ConversationNavigationComponent_Template(rf, ctx) { if (rf & 1) {
16
88
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "button", 2);
17
89
  i0.ɵɵlistener("click", function ConversationNavigationComponent_Template_button_click_2_listener() { return ctx.sidebarToggled.emit(); });
18
90
  i0.ɵɵelement(3, "i", 3);
@@ -104,22 +176,40 @@ export class ConversationNavigationComponent {
104
176
  </div>
105
177
  </div>
106
178
  `, styles: ["\n .conversation-navigation {\n display: flex;\n align-items: center;\n height: 100%;\n padding: 0 20px;\n gap: 24px;\n color: white;\n }\n .nav-left { display: flex; align-items: center; gap: 12px; }\n .nav-title { margin: 0; font-size: 18px; font-weight: 600; }\n .nav-tabs {\n display: flex;\n gap: 4px;\n flex: 1;\n height: 100%;\n }\n .nav-tab {\n padding: 0 20px;\n height: 100%;\n background: transparent;\n border: none;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n transition: all 0.2s;\n border-bottom: 3px solid transparent;\n }\n .nav-tab:hover {\n background: rgba(255,255,255,0.05);\n color: white;\n }\n .nav-tab.active {\n color: white;\n background: rgba(255,255,255,0.1);\n border-bottom-color: #AAE7FD;\n }\n .nav-right { display: flex; gap: 8px; }\n .nav-btn {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n background: transparent;\n border: none;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s;\n }\n .nav-btn:hover {\n background: rgba(255,255,255,0.1);\n color: white;\n }\n .sidebar-toggle {\n display: flex;\n }\n\n /* Mobile adjustments: 481px - 768px */\n @media (max-width: 768px) {\n .conversation-navigation {\n padding: 0 12px;\n gap: 12px;\n }\n .sidebar-toggle {\n display: flex;\n }\n .nav-tab {\n padding: 0 12px;\n font-size: 13px;\n gap: 6px;\n }\n .nav-tab span {\n display: none;\n }\n .nav-tab i {\n font-size: 16px;\n }\n .nav-btn {\n width: 32px;\n height: 32px;\n }\n .nav-right {\n gap: 4px;\n }\n }\n\n /* Small Phone adjustments: <= 480px */\n @media (max-width: 480px) {\n .conversation-navigation {\n padding: 0 8px;\n gap: 8px;\n }\n .nav-tab {\n padding: 0 8px;\n font-size: 12px;\n }\n .nav-btn {\n width: 28px;\n height: 28px;\n }\n .nav-btn i {\n font-size: 14px;\n }\n .nav-right .nav-btn:last-child {\n display: none;\n }\n }\n "] }]
107
- }], null, { activeTab: [{
179
+ }], null, { ActiveTab: [{
180
+ type: Input
181
+ }], activeTab: [{
182
+ type: Input
183
+ }], EnvironmentId: [{
108
184
  type: Input
109
185
  }], environmentId: [{
110
186
  type: Input
187
+ }], CurrentUser: [{
188
+ type: Input
111
189
  }], currentUser: [{
112
190
  type: Input
191
+ }], ConversationId: [{
192
+ type: Input
113
193
  }], conversationId: [{
114
194
  type: Input
195
+ }], TabChanged: [{
196
+ type: Output
115
197
  }], tabChanged: [{
116
198
  type: Output
199
+ }], SidebarToggled: [{
200
+ type: Output
117
201
  }], sidebarToggled: [{
118
202
  type: Output
203
+ }], SearchTriggered: [{
204
+ type: Output
119
205
  }], searchTriggered: [{
120
206
  type: Output
207
+ }], RefreshTriggered: [{
208
+ type: Output
121
209
  }], refreshTriggered: [{
122
210
  type: Output
211
+ }], NavigateToConversation: [{
212
+ type: Output
123
213
  }], navigateToConversation: [{
124
214
  type: Output
125
215
  }] }); })();
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-navigation.component.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/conversation-navigation.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;;;AAuKvE,MAAM,OAAO,+BAA+B;IACjC,SAAS,GAAkB,eAAe,CAAC;IAC3C,aAAa,CAAU;IACvB,WAAW,CAAY;IACvB,cAAc,GAAkB,IAAI,CAAC;IACpC,UAAU,GAAG,IAAI,YAAY,EAAiB,CAAC;IAC/C,cAAc,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC1C,eAAe,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC3C,gBAAgB,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC5C,sBAAsB,GAAG,IAAI,YAAY,EAA4C,CAAC;yHATrF,+BAA+B;6DAA/B,+BAA+B;YA7JpC,AADF,AADF,8BAAqC,aACb,gBACmD;YAAhC,4GAAS,yBAAqB,IAAC;YACpE,uBAA2B;YAE/B,AADE,iBAAS,EACL;YAEJ,AADF,8BAAsB,gBAIyB;YAA3C,4GAAS,oBAAgB,eAAe,CAAC,IAAC;YAC1C,uBAA+B;YAC/B,4BAAM;YAAA,qBAAK;YACb,AADa,iBAAO,EACX;YACT,iCAG2C;YAAzC,4GAAS,oBAAgB,aAAa,CAAC,IAAC;YACxC,wBAA6B;YAC7B,6BAAM;YAAA,4BAAW;YACnB,AADmB,iBAAO,EACjB;YACT,kCAGqC;YAAnC,6GAAS,oBAAgB,OAAO,CAAC,IAAC;YAClC,wBAA4B;YAC5B,6BAAM;YAAA,sBAAK;YAEf,AADE,AADa,iBAAO,EACX,EACL;YAEJ,AADF,+BAAuB,6BAI4C;YAA/D,gKAA0B,uCAAmC,IAAC;YAChE,iBAAoB;YACpB,mCAA4F;YAAzD,6GAAS,0BAAsB,IAAC;YACjE,yBAA6B;YAC/B,iBAAS;YACT,mCAAkG;YAA9D,6GAAS,2BAAuB,IAAC;YACnE,yBAA+B;YAGrC,AADE,AADE,iBAAS,EACL,EACF;;YAjCA,eAA8C;YAA9C,2DAA8C;YAO9C,eAA4C;YAA5C,yDAA4C;YAO5C,eAAsC;YAAtC,mDAAsC;YAQtC,eAA2B;YAC3B,AADA,6CAA2B,sCACM;;;iFA+H9B,+BAA+B;cAnK3C,SAAS;6BACI,KAAK,YACP,4BAA4B,YAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CT;;kBAqHA,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,MAAM;;kBACN,MAAM;;kBACN,MAAM;;kBACN,MAAM;;kBACN,MAAM;;kFATI,+BAA+B","sourcesContent":["import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { NavigationTab } from '../../models/conversation-state.model';\nimport { UserInfo } from '@memberjunction/core';\n\n@Component({\n standalone: false,\n selector: 'mj-conversation-navigation',\n template: `\n <div class=\"conversation-navigation\">\n <div class=\"nav-left\">\n <button class=\"nav-btn sidebar-toggle\" (click)=\"sidebarToggled.emit()\">\n <i class=\"fas fa-bars\"></i>\n </button>\n </div>\n <div class=\"nav-tabs\">\n <button\n class=\"nav-tab\"\n [class.active]=\"activeTab === 'conversations'\"\n (click)=\"tabChanged.emit('conversations')\">\n <i class=\"fas fa-comments\"></i>\n <span>Chats</span>\n </button>\n <button\n class=\"nav-tab\"\n [class.active]=\"activeTab === 'collections'\"\n (click)=\"tabChanged.emit('collections')\">\n <i class=\"fas fa-folder\"></i>\n <span>Collections</span>\n </button>\n <button\n class=\"nav-tab\"\n [class.active]=\"activeTab === 'tasks'\"\n (click)=\"tabChanged.emit('tasks')\">\n <i class=\"fas fa-tasks\"></i>\n <span>Tasks</span>\n </button>\n </div>\n <div class=\"nav-right\">\n <mj-tasks-dropdown\n [currentUser]=\"currentUser\"\n [conversationId]=\"conversationId\"\n (navigateToConversation)=\"navigateToConversation.emit($event)\">\n </mj-tasks-dropdown>\n <button class=\"nav-btn search-btn\" (click)=\"searchTriggered.emit()\" title=\"Search (Ctrl+K)\">\n <i class=\"fas fa-search\"></i>\n </button>\n <button class=\"nav-btn refresh-btn\" (click)=\"refreshTriggered.emit()\" title=\"Refresh agent cache\">\n <i class=\"fas fa-sync-alt\"></i>\n </button>\n </div>\n </div>\n `,\n styles: [`\n .conversation-navigation {\n display: flex;\n align-items: center;\n height: 100%;\n padding: 0 20px;\n gap: 24px;\n color: white;\n }\n .nav-left { display: flex; align-items: center; gap: 12px; }\n .nav-title { margin: 0; font-size: 18px; font-weight: 600; }\n .nav-tabs {\n display: flex;\n gap: 4px;\n flex: 1;\n height: 100%;\n }\n .nav-tab {\n padding: 0 20px;\n height: 100%;\n background: transparent;\n border: none;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n transition: all 0.2s;\n border-bottom: 3px solid transparent;\n }\n .nav-tab:hover {\n background: rgba(255,255,255,0.05);\n color: white;\n }\n .nav-tab.active {\n color: white;\n background: rgba(255,255,255,0.1);\n border-bottom-color: #AAE7FD;\n }\n .nav-right { display: flex; gap: 8px; }\n .nav-btn {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n background: transparent;\n border: none;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s;\n }\n .nav-btn:hover {\n background: rgba(255,255,255,0.1);\n color: white;\n }\n .sidebar-toggle {\n display: flex;\n }\n\n /* Mobile adjustments: 481px - 768px */\n @media (max-width: 768px) {\n .conversation-navigation {\n padding: 0 12px;\n gap: 12px;\n }\n .sidebar-toggle {\n display: flex;\n }\n .nav-tab {\n padding: 0 12px;\n font-size: 13px;\n gap: 6px;\n }\n .nav-tab span {\n display: none;\n }\n .nav-tab i {\n font-size: 16px;\n }\n .nav-btn {\n width: 32px;\n height: 32px;\n }\n .nav-right {\n gap: 4px;\n }\n }\n\n /* Small Phone adjustments: <= 480px */\n @media (max-width: 480px) {\n .conversation-navigation {\n padding: 0 8px;\n gap: 8px;\n }\n .nav-tab {\n padding: 0 8px;\n font-size: 12px;\n }\n .nav-btn {\n width: 28px;\n height: 28px;\n }\n .nav-btn i {\n font-size: 14px;\n }\n .nav-right .nav-btn:last-child {\n display: none;\n }\n }\n `]\n})\nexport class ConversationNavigationComponent {\n @Input() activeTab: NavigationTab = 'conversations';\n @Input() environmentId!: string;\n @Input() currentUser!: UserInfo;\n @Input() conversationId: string | null = null;\n @Output() tabChanged = new EventEmitter<NavigationTab>();\n @Output() sidebarToggled = new EventEmitter<void>();\n @Output() searchTriggered = new EventEmitter<void>();\n @Output() refreshTriggered = new EventEmitter<void>();\n @Output() navigateToConversation = new EventEmitter<{conversationId: string; taskId: string}>();\n}"]}
1
+ {"version":3,"file":"conversation-navigation.component.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/conversation-navigation.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { NavigationTab } from '../../models/conversation-state.model';\nimport { UserInfo } from '@memberjunction/core';\n\n@Component({\n standalone: false,\n selector: 'mj-conversation-navigation',\n template: `\n <div class=\"conversation-navigation\">\n <div class=\"nav-left\">\n <button class=\"nav-btn sidebar-toggle\" (click)=\"sidebarToggled.emit()\">\n <i class=\"fas fa-bars\"></i>\n </button>\n </div>\n <div class=\"nav-tabs\">\n <button\n class=\"nav-tab\"\n [class.active]=\"activeTab === 'conversations'\"\n (click)=\"tabChanged.emit('conversations')\">\n <i class=\"fas fa-comments\"></i>\n <span>Chats</span>\n </button>\n <button\n class=\"nav-tab\"\n [class.active]=\"activeTab === 'collections'\"\n (click)=\"tabChanged.emit('collections')\">\n <i class=\"fas fa-folder\"></i>\n <span>Collections</span>\n </button>\n <button\n class=\"nav-tab\"\n [class.active]=\"activeTab === 'tasks'\"\n (click)=\"tabChanged.emit('tasks')\">\n <i class=\"fas fa-tasks\"></i>\n <span>Tasks</span>\n </button>\n </div>\n <div class=\"nav-right\">\n <mj-tasks-dropdown\n [currentUser]=\"currentUser\"\n [conversationId]=\"conversationId\"\n (navigateToConversation)=\"navigateToConversation.emit($event)\">\n </mj-tasks-dropdown>\n <button class=\"nav-btn search-btn\" (click)=\"searchTriggered.emit()\" title=\"Search (Ctrl+K)\">\n <i class=\"fas fa-search\"></i>\n </button>\n <button class=\"nav-btn refresh-btn\" (click)=\"refreshTriggered.emit()\" title=\"Refresh agent cache\">\n <i class=\"fas fa-sync-alt\"></i>\n </button>\n </div>\n </div>\n `,\n styles: [`\n .conversation-navigation {\n display: flex;\n align-items: center;\n height: 100%;\n padding: 0 20px;\n gap: 24px;\n color: white;\n }\n .nav-left { display: flex; align-items: center; gap: 12px; }\n .nav-title { margin: 0; font-size: 18px; font-weight: 600; }\n .nav-tabs {\n display: flex;\n gap: 4px;\n flex: 1;\n height: 100%;\n }\n .nav-tab {\n padding: 0 20px;\n height: 100%;\n background: transparent;\n border: none;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n transition: all 0.2s;\n border-bottom: 3px solid transparent;\n }\n .nav-tab:hover {\n background: rgba(255,255,255,0.05);\n color: white;\n }\n .nav-tab.active {\n color: white;\n background: rgba(255,255,255,0.1);\n border-bottom-color: #AAE7FD;\n }\n .nav-right { display: flex; gap: 8px; }\n .nav-btn {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n background: transparent;\n border: none;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s;\n }\n .nav-btn:hover {\n background: rgba(255,255,255,0.1);\n color: white;\n }\n .sidebar-toggle {\n display: flex;\n }\n\n /* Mobile adjustments: 481px - 768px */\n @media (max-width: 768px) {\n .conversation-navigation {\n padding: 0 12px;\n gap: 12px;\n }\n .sidebar-toggle {\n display: flex;\n }\n .nav-tab {\n padding: 0 12px;\n font-size: 13px;\n gap: 6px;\n }\n .nav-tab span {\n display: none;\n }\n .nav-tab i {\n font-size: 16px;\n }\n .nav-btn {\n width: 32px;\n height: 32px;\n }\n .nav-right {\n gap: 4px;\n }\n }\n\n /* Small Phone adjustments: <= 480px */\n @media (max-width: 480px) {\n .conversation-navigation {\n padding: 0 8px;\n gap: 8px;\n }\n .nav-tab {\n padding: 0 8px;\n font-size: 12px;\n }\n .nav-btn {\n width: 28px;\n height: 28px;\n }\n .nav-btn i {\n font-size: 14px;\n }\n .nav-right .nav-btn:last-child {\n display: none;\n }\n }\n `]\n})\nexport class ConversationNavigationComponent {\n @Input() ActiveTab: NavigationTab = 'conversations';\n\n /** @deprecated Use {@link ActiveTab}. */\n @Input() set activeTab(value: NavigationTab) {\n this.ActiveTab = value;\n }\n /** @deprecated Use {@link ActiveTab}. */\n get activeTab(): NavigationTab {\n return this.ActiveTab;\n }\n @Input() EnvironmentId!: string;\n\n /** @deprecated Use {@link EnvironmentId}. */\n @Input() set environmentId(value: string) {\n this.EnvironmentId = value;\n }\n /** @deprecated Use {@link EnvironmentId}. */\n get environmentId(): string {\n return this.EnvironmentId;\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 @Input() ConversationId: string | null = null;\n\n /** @deprecated Use {@link ConversationId}. */\n @Input() set conversationId(value: string | null) {\n this.ConversationId = value;\n }\n /** @deprecated Use {@link ConversationId}. */\n get conversationId(): string | null {\n return this.ConversationId;\n }\n @Output() TabChanged = new EventEmitter<NavigationTab>();\n\n /**\n * @deprecated Use {@link TabChanged}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (tabChanged) keeps working. Must stay AFTER TabChanged: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() tabChanged = this.TabChanged;\n @Output() SidebarToggled = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link SidebarToggled}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (sidebarToggled) keeps working. Must stay AFTER SidebarToggled: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() sidebarToggled = this.SidebarToggled;\n @Output() SearchTriggered = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link SearchTriggered}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (searchTriggered) keeps working. Must stay AFTER SearchTriggered: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() searchTriggered = this.SearchTriggered;\n @Output() RefreshTriggered = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link RefreshTriggered}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (refreshTriggered) keeps working. Must stay AFTER RefreshTriggered: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() refreshTriggered = this.RefreshTriggered;\n @Output() NavigateToConversation = new EventEmitter<{conversationId: string; taskId: string}>();\n\n /**\n * @deprecated Use {@link NavigateToConversation}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (navigateToConversation) keeps working. Must stay AFTER NavigateToConversation: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() navigateToConversation = this.NavigateToConversation;\n}"]}
@@ -4,8 +4,12 @@ import * as i0 from "@angular/core";
4
4
  * Displays activity indicators for agent processes, typing, etc.
5
5
  */
6
6
  export declare class ActivityIndicatorComponent {
7
- config?: ActivityIndicatorConfig;
7
+ Config?: ActivityIndicatorConfig;
8
+ /** @deprecated Use {@link Config}. */
9
+ set config(value: ActivityIndicatorConfig | undefined);
10
+ /** @deprecated Use {@link Config}. */
11
+ get config(): ActivityIndicatorConfig | undefined;
8
12
  static ɵfac: i0.ɵɵFactoryDeclaration<ActivityIndicatorComponent, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<ActivityIndicatorComponent, "mj-activity-indicator", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, false, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<ActivityIndicatorComponent, "mj-activity-indicator", never, { "Config": { "alias": "Config"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, {}, never, never, false, never>;
10
14
  }
11
15
  //# sourceMappingURL=activity-indicator.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"activity-indicator.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/notification/activity-indicator.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;;AAE1E;;GAEG;AACH,qBA2Fa,0BAA0B;IAC5B,MAAM,CAAC,EAAE,uBAAuB,CAAC;yCAD/B,0BAA0B;2CAA1B,0BAA0B;CAEtC"}
1
+ {"version":3,"file":"activity-indicator.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/notification/activity-indicator.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;;AAE1E;;GAEG;AACH,qBA2Fa,0BAA0B;IAC5B,MAAM,CAAC,EAAE,uBAAuB,CAAC;IAE1C,sCAAsC;IACtC,IAAa,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,SAAS,EAE7D;IACD,sCAAsC;IACtC,IAAI,MAAM,IAAI,uBAAuB,GAAG,SAAS,CAEhD;yCAVU,0BAA0B;2CAA1B,0BAA0B;CAWtC"}
@@ -25,9 +25,17 @@ function ActivityIndicatorComponent_Conditional_0_Template(rf, ctx) { if (rf & 1
25
25
  * Displays activity indicators for agent processes, typing, etc.
26
26
  */
27
27
  export class ActivityIndicatorComponent {
28
- config;
28
+ Config;
29
+ /** @deprecated Use {@link Config}. */
30
+ set config(value) {
31
+ this.Config = value;
32
+ }
33
+ /** @deprecated Use {@link Config}. */
34
+ get config() {
35
+ return this.Config;
36
+ }
29
37
  static ɵfac = function ActivityIndicatorComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ActivityIndicatorComponent)(); };
30
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActivityIndicatorComponent, selectors: [["mj-activity-indicator"]], inputs: { config: "config" }, standalone: false, decls: 1, vars: 1, consts: [[1, "activity-indicator", 3, "activity-agent", "activity-processing", "activity-typing"], [1, "activity-indicator"], [1, "activity-dots"], [1, "dot"], [1, "activity-text"]], template: function ActivityIndicatorComponent_Template(rf, ctx) { if (rf & 1) {
38
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActivityIndicatorComponent, selectors: [["mj-activity-indicator"]], inputs: { Config: "Config", config: "config" }, standalone: false, decls: 1, vars: 1, consts: [[1, "activity-indicator", 3, "activity-agent", "activity-processing", "activity-typing"], [1, "activity-indicator"], [1, "activity-dots"], [1, "dot"], [1, "activity-text"]], template: function ActivityIndicatorComponent_Template(rf, ctx) { if (rf & 1) {
31
39
  i0.ɵɵconditionalCreate(0, ActivityIndicatorComponent_Conditional_0_Template, 6, 7, "div", 0);
32
40
  } if (rf & 2) {
33
41
  i0.ɵɵconditional((ctx.config == null ? null : ctx.config.show) ? 0 : -1);
@@ -49,7 +57,9 @@ export class ActivityIndicatorComponent {
49
57
  </div>
50
58
  }
51
59
  `, styles: ["\n .activity-indicator {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: #666;\n background: #F4F4F4;\n transition: all 150ms ease;\n }\n\n .activity-agent {\n background: #EFF6FF;\n color: #0076B6;\n }\n\n .activity-processing {\n background: #FEF3C7;\n color: #D97706;\n }\n\n .activity-typing {\n background: #F3F4F6;\n color: #6B7280;\n }\n\n .activity-dots {\n display: flex;\n align-items: center;\n gap: 3px;\n }\n\n .dot {\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background: currentColor;\n animation: dot-pulse 1.4s ease-in-out infinite;\n }\n\n .dot:nth-child(1) {\n animation-delay: 0s;\n }\n\n .dot:nth-child(2) {\n animation-delay: 0.2s;\n }\n\n .dot:nth-child(3) {\n animation-delay: 0.4s;\n }\n\n @keyframes dot-pulse {\n 0%, 60%, 100% {\n opacity: 0.3;\n transform: scale(0.8);\n }\n 30% {\n opacity: 1;\n transform: scale(1.2);\n }\n }\n\n .activity-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 150px;\n }\n "] }]
52
- }], null, { config: [{
60
+ }], null, { Config: [{
61
+ type: Input
62
+ }], config: [{
53
63
  type: Input
54
64
  }] }); })();
55
65
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActivityIndicatorComponent, { className: "ActivityIndicatorComponent", filePath: "src/lib/components/notification/activity-indicator.component.ts", lineNumber: 98 }); })();
@@ -1 +1 @@
1
- {"version":3,"file":"activity-indicator.component.js","sourceRoot":"","sources":["../../../../src/lib/components/notification/activity-indicator.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;;IAkBvC,+BAA4B;IAAA,YAAkB;IAAA,iBAAO;;;IAAzB,cAAkB;IAAlB,uEAAkB;;;IANhD,AADF,8BAAkM,aACrK;IAGzB,AADA,AADA,0BAAyB,cACA,cACA;IAC3B,iBAAM;IACN,2GAAoB;IAGtB,iBAAM;;;IATwI,AAA5D,AAAlD,iGAAiD,6FAA4D,qFAAoD;IAM/L,eAEC;IAFD,8EAEC;;AAhBT;;GAEG;AA4FH,MAAM,OAAO,0BAA0B;IAC5B,MAAM,CAA2B;oHAD/B,0BAA0B;6DAA1B,0BAA0B;YAvFnC,4FAAoB;;YAApB,wEAWC;;;iFA4EQ,0BAA0B;cA3FtC,SAAS;6BACI,KAAK,YACP,uBAAuB,YACvB;;;;;;;;;;;;;GAaT;;kBA4EA,KAAK;;kFADK,0BAA0B","sourcesContent":["import { Component, Input } from '@angular/core';\nimport { ActivityIndicatorConfig } from '../../models/notification.model';\n\n/**\n * Displays activity indicators for agent processes, typing, etc.\n */\n@Component({\n standalone: false,\n selector: 'mj-activity-indicator',\n template: `\n @if (config?.show) {\n <div class=\"activity-indicator\" [class.activity-agent]=\"config?.type === 'agent'\" [class.activity-processing]=\"config?.type === 'processing'\" [class.activity-typing]=\"config?.type === 'typing'\">\n <div class=\"activity-dots\">\n <span class=\"dot\"></span>\n <span class=\"dot\"></span>\n <span class=\"dot\"></span>\n </div>\n @if (config?.text) {\n <span class=\"activity-text\">{{ config?.text }}</span>\n }\n </div>\n }\n `,\n styles: [`\n .activity-indicator {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: #666;\n background: #F4F4F4;\n transition: all 150ms ease;\n }\n\n .activity-agent {\n background: #EFF6FF;\n color: #0076B6;\n }\n\n .activity-processing {\n background: #FEF3C7;\n color: #D97706;\n }\n\n .activity-typing {\n background: #F3F4F6;\n color: #6B7280;\n }\n\n .activity-dots {\n display: flex;\n align-items: center;\n gap: 3px;\n }\n\n .dot {\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background: currentColor;\n animation: dot-pulse 1.4s ease-in-out infinite;\n }\n\n .dot:nth-child(1) {\n animation-delay: 0s;\n }\n\n .dot:nth-child(2) {\n animation-delay: 0.2s;\n }\n\n .dot:nth-child(3) {\n animation-delay: 0.4s;\n }\n\n @keyframes dot-pulse {\n 0%, 60%, 100% {\n opacity: 0.3;\n transform: scale(0.8);\n }\n 30% {\n opacity: 1;\n transform: scale(1.2);\n }\n }\n\n .activity-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 150px;\n }\n `]\n})\nexport class ActivityIndicatorComponent {\n @Input() config?: ActivityIndicatorConfig;\n}\n"]}
1
+ {"version":3,"file":"activity-indicator.component.js","sourceRoot":"","sources":["../../../../src/lib/components/notification/activity-indicator.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;;IAkBvC,+BAA4B;IAAA,YAAkB;IAAA,iBAAO;;;IAAzB,cAAkB;IAAlB,uEAAkB;;;IANhD,AADF,8BAAkM,aACrK;IAGzB,AADA,AADA,0BAAyB,cACA,cACA;IAC3B,iBAAM;IACN,2GAAoB;IAGtB,iBAAM;;;IATwI,AAA5D,AAAlD,iGAAiD,6FAA4D,qFAAoD;IAM/L,eAEC;IAFD,8EAEC;;AAhBT;;GAEG;AA4FH,MAAM,OAAO,0BAA0B;IAC5B,MAAM,CAA2B;IAE1C,sCAAsC;IACtC,IAAa,MAAM,CAAC,KAA0C;QAC5D,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IACD,sCAAsC;IACtC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;oHAVU,0BAA0B;6DAA1B,0BAA0B;YAvFnC,4FAAoB;;YAApB,wEAWC;;;iFA4EQ,0BAA0B;cA3FtC,SAAS;6BACI,KAAK,YACP,uBAAuB,YACvB;;;;;;;;;;;;;GAaT;;kBA4EA,KAAK;;kBAGL,KAAK;;kFAJK,0BAA0B","sourcesContent":["import { Component, Input } from '@angular/core';\nimport { ActivityIndicatorConfig } from '../../models/notification.model';\n\n/**\n * Displays activity indicators for agent processes, typing, etc.\n */\n@Component({\n standalone: false,\n selector: 'mj-activity-indicator',\n template: `\n @if (config?.show) {\n <div class=\"activity-indicator\" [class.activity-agent]=\"config?.type === 'agent'\" [class.activity-processing]=\"config?.type === 'processing'\" [class.activity-typing]=\"config?.type === 'typing'\">\n <div class=\"activity-dots\">\n <span class=\"dot\"></span>\n <span class=\"dot\"></span>\n <span class=\"dot\"></span>\n </div>\n @if (config?.text) {\n <span class=\"activity-text\">{{ config?.text }}</span>\n }\n </div>\n }\n `,\n styles: [`\n .activity-indicator {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: #666;\n background: #F4F4F4;\n transition: all 150ms ease;\n }\n\n .activity-agent {\n background: #EFF6FF;\n color: #0076B6;\n }\n\n .activity-processing {\n background: #FEF3C7;\n color: #D97706;\n }\n\n .activity-typing {\n background: #F3F4F6;\n color: #6B7280;\n }\n\n .activity-dots {\n display: flex;\n align-items: center;\n gap: 3px;\n }\n\n .dot {\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background: currentColor;\n animation: dot-pulse 1.4s ease-in-out infinite;\n }\n\n .dot:nth-child(1) {\n animation-delay: 0s;\n }\n\n .dot:nth-child(2) {\n animation-delay: 0.2s;\n }\n\n .dot:nth-child(3) {\n animation-delay: 0.4s;\n }\n\n @keyframes dot-pulse {\n 0%, 60%, 100% {\n opacity: 0.3;\n transform: scale(0.8);\n }\n 30% {\n opacity: 1;\n transform: scale(1.2);\n }\n }\n\n .activity-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 150px;\n }\n `]\n})\nexport class ActivityIndicatorComponent {\n @Input() Config?: ActivityIndicatorConfig;\n\n /** @deprecated Use {@link Config}. */\n @Input() set config(value: ActivityIndicatorConfig | undefined) {\n this.Config = value;\n }\n /** @deprecated Use {@link Config}. */\n get config(): ActivityIndicatorConfig | undefined {\n return this.Config;\n }\n}\n"]}
@@ -8,20 +8,32 @@ import * as i0 from "@angular/core";
8
8
  */
9
9
  export declare class NotificationBadgeComponent implements OnInit, OnDestroy {
10
10
  private notificationService;
11
- conversationId?: string;
12
- badgeConfig?: BadgeConfig;
11
+ ConversationId?: string;
12
+ /** @deprecated Use {@link ConversationId}. */
13
+ set conversationId(value: string | undefined);
14
+ /** @deprecated Use {@link ConversationId}. */
15
+ get conversationId(): string | undefined;
16
+ BadgeConfig?: BadgeConfig;
17
+ /** @deprecated Use {@link BadgeConfig}. */
18
+ set badgeConfig(value: BadgeConfig | undefined);
19
+ /** @deprecated Use {@link BadgeConfig}. */
20
+ get badgeConfig(): BadgeConfig | undefined;
13
21
  private destroy$;
14
22
  private _loadedBadgeConfig;
15
23
  constructor(notificationService: NotificationService);
16
24
  ngOnInit(): void;
17
25
  ngOnDestroy(): void;
26
+ get DisplayConfig(): BadgeConfig | null;
27
+ /** @deprecated Use {@link DisplayConfig}. */
18
28
  get displayConfig(): BadgeConfig | null;
19
29
  /**
20
30
  * Formats count for display
21
31
  * Shows 99+ for counts over 99
22
32
  */
33
+ FormatCount(count: number): string;
34
+ /** @deprecated Use {@link FormatCount}. */
23
35
  formatCount(count: number): string;
24
36
  static ɵfac: i0.ɵɵFactoryDeclaration<NotificationBadgeComponent, never>;
25
- static ɵcmp: i0.ɵɵComponentDeclaration<NotificationBadgeComponent, "mj-notification-badge", never, { "conversationId": { "alias": "conversationId"; "required": false; }; "badgeConfig": { "alias": "badgeConfig"; "required": false; }; }, {}, never, never, false, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<NotificationBadgeComponent, "mj-notification-badge", never, { "ConversationId": { "alias": "ConversationId"; "required": false; }; "conversationId": { "alias": "conversationId"; "required": false; }; "BadgeConfig": { "alias": "BadgeConfig"; "required": false; }; "badgeConfig": { "alias": "badgeConfig"; "required": false; }; }, {}, never, never, false, never>;
26
38
  }
27
39
  //# sourceMappingURL=notification-badge.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification-badge.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/notification/notification-badge.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGpE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;;AAE1E;;;GAGG;AACH,qBA8Na,0BAA2B,YAAW,MAAM,EAAE,SAAS;IAOtD,OAAO,CAAC,mBAAmB;IAN9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAEnC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,kBAAkB,CAA4B;gBAElC,mBAAmB,EAAE,mBAAmB;IAE5D,QAAQ,IAAI,IAAI;IAYhB,WAAW,IAAI,IAAI;IAKnB,IAAI,aAAa,IAAI,WAAW,GAAG,IAAI,CAEtC;IAED;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;yCAlCvB,0BAA0B;2CAA1B,0BAA0B;CAqCtC"}
1
+ {"version":3,"file":"notification-badge.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/notification/notification-badge.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGpE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;;AAE1E;;;GAGG;AACH,qBA8Na,0BAA2B,YAAW,MAAM,EAAE,SAAS;IAyBtD,OAAO,CAAC,mBAAmB;IAxB9B,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,CAAC,EAAE,WAAW,CAAC;IAEnC,2CAA2C;IAC3C,IAAa,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAEtD;IACD,2CAA2C;IAC3C,IAAI,WAAW,IAAI,WAAW,GAAG,SAAS,CAEzC;IAED,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,kBAAkB,CAA4B;gBAElC,mBAAmB,EAAE,mBAAmB;IAE5D,QAAQ,IAAI,IAAI;IAYhB,WAAW,IAAI,IAAI;IAKnB,IAAI,aAAa,IAAI,WAAW,GAAG,IAAI,CAEtC;IAED,6CAA6C;IAC7C,IAAI,aAAa,IAAI,WAAW,GAAG,IAAI,CAEtC;IAED;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIlC,2CAA2C;IAC3C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;yCA9DvB,0BAA0B;2CAA1B,0BAA0B;CAiEtC"}
@@ -71,8 +71,24 @@ function NotificationBadgeComponent_Conditional_0_Template(rf, ctx) { if (rf & 1
71
71
  */
72
72
  export class NotificationBadgeComponent {
73
73
  notificationService;
74
- conversationId;
75
- badgeConfig;
74
+ ConversationId;
75
+ /** @deprecated Use {@link ConversationId}. */
76
+ set conversationId(value) {
77
+ this.ConversationId = value;
78
+ }
79
+ /** @deprecated Use {@link ConversationId}. */
80
+ get conversationId() {
81
+ return this.ConversationId;
82
+ }
83
+ BadgeConfig;
84
+ /** @deprecated Use {@link BadgeConfig}. */
85
+ set badgeConfig(value) {
86
+ this.BadgeConfig = value;
87
+ }
88
+ /** @deprecated Use {@link BadgeConfig}. */
89
+ get badgeConfig() {
90
+ return this.BadgeConfig;
91
+ }
76
92
  destroy$ = new Subject();
77
93
  _loadedBadgeConfig = null;
78
94
  constructor(notificationService) {
@@ -80,9 +96,9 @@ export class NotificationBadgeComponent {
80
96
  }
81
97
  ngOnInit() {
82
98
  // If badgeConfig not provided but conversationId is, load from service
83
- if (!this.badgeConfig && this.conversationId) {
99
+ if (!this.BadgeConfig && this.ConversationId) {
84
100
  this.notificationService
85
- .getBadgeConfig$(this.conversationId)
101
+ .getBadgeConfig$(this.ConversationId)
86
102
  .pipe(takeUntil(this.destroy$))
87
103
  .subscribe(config => {
88
104
  this._loadedBadgeConfig = config;
@@ -93,18 +109,26 @@ export class NotificationBadgeComponent {
93
109
  this.destroy$.next();
94
110
  this.destroy$.complete();
95
111
  }
112
+ get DisplayConfig() {
113
+ return this.BadgeConfig || this._loadedBadgeConfig;
114
+ }
115
+ /** @deprecated Use {@link DisplayConfig}. */
96
116
  get displayConfig() {
97
- return this.badgeConfig || this._loadedBadgeConfig;
117
+ return this.DisplayConfig;
98
118
  }
99
119
  /**
100
120
  * Formats count for display
101
121
  * Shows 99+ for counts over 99
102
122
  */
103
- formatCount(count) {
123
+ FormatCount(count) {
104
124
  return count > 99 ? '99+' : count.toString();
105
125
  }
126
+ /** @deprecated Use {@link FormatCount}. */
127
+ formatCount(count) {
128
+ return this.FormatCount(count);
129
+ }
106
130
  static ɵfac = function NotificationBadgeComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NotificationBadgeComponent)(i0.ɵɵdirectiveInject(i1.NotificationService)); };
107
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NotificationBadgeComponent, selectors: [["mj-notification-badge"]], inputs: { conversationId: "conversationId", badgeConfig: "badgeConfig" }, standalone: false, decls: 1, vars: 1, consts: [[1, "notification-badge-container"], [1, "notification-badge", "badge-count", 3, "badge-high", "badge-urgent", "badge-animate"], [1, "notification-badge", "badge-dot", 3, "badge-high", "badge-urgent", "badge-animate"], [1, "notification-badge", "badge-pulse", 3, "badge-high", "badge-urgent"], [1, "notification-badge", "badge-new", 3, "badge-animate"], [1, "notification-badge", "badge-count"], [1, "notification-badge", "badge-dot"], [1, "notification-badge", "badge-pulse"], [1, "pulse-ring"], [1, "pulse-ring-delay"], [1, "pulse-count"], [1, "notification-badge", "badge-new"]], template: function NotificationBadgeComponent_Template(rf, ctx) { if (rf & 1) {
131
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NotificationBadgeComponent, selectors: [["mj-notification-badge"]], inputs: { ConversationId: "ConversationId", conversationId: "conversationId", BadgeConfig: "BadgeConfig", badgeConfig: "badgeConfig" }, standalone: false, decls: 1, vars: 1, consts: [[1, "notification-badge-container"], [1, "notification-badge", "badge-count", 3, "badge-high", "badge-urgent", "badge-animate"], [1, "notification-badge", "badge-dot", 3, "badge-high", "badge-urgent", "badge-animate"], [1, "notification-badge", "badge-pulse", 3, "badge-high", "badge-urgent"], [1, "notification-badge", "badge-new", 3, "badge-animate"], [1, "notification-badge", "badge-count"], [1, "notification-badge", "badge-dot"], [1, "notification-badge", "badge-pulse"], [1, "pulse-ring"], [1, "pulse-ring-delay"], [1, "pulse-count"], [1, "notification-badge", "badge-new"]], template: function NotificationBadgeComponent_Template(rf, ctx) { if (rf & 1) {
108
132
  i0.ɵɵconditionalCreate(0, NotificationBadgeComponent_Conditional_0_Template, 5, 4, "div", 0);
109
133
  } if (rf & 2) {
110
134
  i0.ɵɵconditional((ctx.badgeConfig == null ? null : ctx.badgeConfig.show) ? 0 : -1);
@@ -154,7 +178,11 @@ export class NotificationBadgeComponent {
154
178
  </div>
155
179
  }
156
180
  `, styles: ["\n .notification-badge-container {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n .notification-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: 700;\n line-height: 1;\n color: white;\n border-radius: 10px;\n white-space: nowrap;\n transition: all 150ms ease;\n }\n\n /* Count badge */\n .badge-count {\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-count.badge-high {\n background: #F59E0B;\n }\n\n .badge-count.badge-urgent {\n background: #DC2626;\n }\n\n /* Dot badge */\n .badge-dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-dot.badge-high {\n background: #F59E0B;\n }\n\n .badge-dot.badge-urgent {\n background: #DC2626;\n }\n\n /* Pulse badge with animated rings */\n .badge-pulse {\n position: relative;\n width: 24px;\n height: 24px;\n background: #0076B6;\n border-radius: 50%;\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\n }\n\n .badge-pulse.badge-high {\n background: #F59E0B;\n }\n\n .badge-pulse.badge-urgent {\n background: #DC2626;\n }\n\n .pulse-ring {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n opacity: 0;\n }\n\n .pulse-ring-delay {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n animation-delay: 1s;\n opacity: 0;\n }\n\n @keyframes pulse-ring {\n 0% {\n transform: translate(-50%, -50%) scale(0.8);\n opacity: 1;\n }\n 50% {\n transform: translate(-50%, -50%) scale(1.3);\n opacity: 0.5;\n }\n 100% {\n transform: translate(-50%, -50%) scale(1.5);\n opacity: 0;\n }\n }\n\n .pulse-count {\n position: relative;\n z-index: 1;\n font-size: 10px;\n font-weight: 700;\n color: white;\n }\n\n /* New badge */\n .badge-new {\n height: 18px;\n padding: 0 6px;\n background: linear-gradient(135deg, #10B981, #059669);\n font-size: 9px;\n font-weight: 800;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(16, 185, 129, 0.3);\n }\n\n /* Pop-in animation for badges */\n .badge-animate {\n animation: badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55);\n }\n\n @keyframes badge-pop {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1.2);\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n }\n\n /* Shake animation for urgent badges */\n .badge-urgent.badge-animate {\n animation: badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55),\n badge-shake 400ms ease-in-out 300ms;\n }\n\n @keyframes badge-shake {\n 0%, 100% { transform: translateX(0); }\n 10%, 30%, 50%, 70%, 90% { transform: translateX(-2px); }\n 20%, 40%, 60%, 80% { transform: translateX(2px); }\n }\n\n /* Hover effects */\n .notification-badge:hover {\n transform: scale(1.1);\n cursor: default;\n }\n\n .badge-pulse:hover .pulse-ring,\n .badge-pulse:hover .pulse-ring-delay {\n animation-play-state: paused;\n }\n "] }]
157
- }], () => [{ type: i1.NotificationService }], { conversationId: [{
181
+ }], () => [{ type: i1.NotificationService }], { ConversationId: [{
182
+ type: Input
183
+ }], conversationId: [{
184
+ type: Input
185
+ }], BadgeConfig: [{
158
186
  type: Input
159
187
  }], badgeConfig: [{
160
188
  type: Input
@@ -1 +1 @@
1
- {"version":3,"file":"notification-badge.component.js","sourceRoot":"","sources":["../../../../src/lib/components/notification/notification-badge.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAc,OAAO,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;;;;IAejC,8BAI+C;IAC7C,YACF;IAAA,iBAAM;;;IAFJ,AADA,AADA,0GAAqD,gGACI,iFACb;IAC5C,cACF;IADE,iHACF;;;IAGA,yBAKM;;;IADJ,AADA,AADA,0GAAqD,gGACI,iFACb;;;IAW1C,gCAA0B;IAAA,YAAsC;IAAA,iBAAO;;;IAA7C,cAAsC;IAAtC,sGAAsC;;;IAPpE,8BAG4D;IAE1D,AADA,0BAAgC,cACM;IACtC,0HAA6D;IAG/D,iBAAM;;;IANJ,AADA,0GAAqD,gGACI;IAGzD,eAEC;IAFD,uKAEC;;;IAIH,+BAE+C;IAC7C,qBACF;IAAA,iBAAM;;;IAFJ,+FAA4C;;;IAjClD,8BAA0C;IACxC,0GAA8F;IAS9F,0GAAmC;IAQnC,0GAAqC;IAYrC,0GAAmC;IAOrC,iBAAM;;;IApCJ,cAQC;IARD,oPAQC;IACD,cAOC;IAPD,kGAOC;IACD,cAWC;IAXD,oGAWC;IACD,cAMC;IAND,kGAMC;;AA7CT;;;GAGG;AA+NH,MAAM,OAAO,0BAA0B;IAOjB;IANX,cAAc,CAAU;IACxB,WAAW,CAAe;IAE3B,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;IAC/B,kBAAkB,GAAuB,IAAI,CAAC;IAEtD,YAAoB,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IAAG,CAAC;IAEhE,QAAQ;QACN,uEAAuE;QACvE,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,IAAI,CAAC,mBAAmB;iBACrB,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;iBACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC9B,SAAS,CAAC,MAAM,CAAC,EAAE;gBAClB,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;YACnC,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,KAAa;QACvB,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;oHApCU,0BAA0B;6DAA1B,0BAA0B;YA1NnC,4FAAyB;;YAAzB,kFAuCC;;;iFAmLQ,0BAA0B;cA9NtC,SAAS;6BACI,KAAK,YACP,uBAAuB,YACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCT;;kBAmLA,KAAK;;kBACL,KAAK;;kFAFK,0BAA0B","sourcesContent":["import { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { BadgeConfig } from '../../models/notification.model';\nimport { NotificationService } from '../../services/notification.service';\n\n/**\n * Displays notification badges with various styles and animations\n * Supports count, dot, pulse, and new badge types\n */\n@Component({\n standalone: false,\n selector: 'mj-notification-badge',\n template: `\n @if (badgeConfig?.show) {\n <div class=\"notification-badge-container\">\n @if (badgeConfig?.type === 'count' && badgeConfig?.count != null && badgeConfig?.count! > 0) {\n <div\n class=\"notification-badge badge-count\"\n [class.badge-high]=\"badgeConfig?.priority === 'high'\"\n [class.badge-urgent]=\"badgeConfig?.priority === 'urgent'\"\n [class.badge-animate]=\"badgeConfig?.animate\">\n {{ formatCount(badgeConfig?.count!) }}\n </div>\n }\n @if (badgeConfig?.type === 'dot') {\n <div\n class=\"notification-badge badge-dot\"\n [class.badge-high]=\"badgeConfig?.priority === 'high'\"\n [class.badge-urgent]=\"badgeConfig?.priority === 'urgent'\"\n [class.badge-animate]=\"badgeConfig?.animate\">\n </div>\n }\n @if (badgeConfig?.type === 'pulse') {\n <div\n class=\"notification-badge badge-pulse\"\n [class.badge-high]=\"badgeConfig?.priority === 'high'\"\n [class.badge-urgent]=\"badgeConfig?.priority === 'urgent'\">\n <span class=\"pulse-ring\"></span>\n <span class=\"pulse-ring-delay\"></span>\n @if (badgeConfig?.count != null && badgeConfig?.count! > 0) {\n <span class=\"pulse-count\">{{ formatCount(badgeConfig?.count!) }}</span>\n }\n </div>\n }\n @if (badgeConfig?.type === 'new') {\n <div\n class=\"notification-badge badge-new\"\n [class.badge-animate]=\"badgeConfig?.animate\">\n NEW\n </div>\n }\n </div>\n }\n `,\n styles: [`\n .notification-badge-container {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n .notification-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: 700;\n line-height: 1;\n color: white;\n border-radius: 10px;\n white-space: nowrap;\n transition: all 150ms ease;\n }\n\n /* Count badge */\n .badge-count {\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-count.badge-high {\n background: #F59E0B;\n }\n\n .badge-count.badge-urgent {\n background: #DC2626;\n }\n\n /* Dot badge */\n .badge-dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-dot.badge-high {\n background: #F59E0B;\n }\n\n .badge-dot.badge-urgent {\n background: #DC2626;\n }\n\n /* Pulse badge with animated rings */\n .badge-pulse {\n position: relative;\n width: 24px;\n height: 24px;\n background: #0076B6;\n border-radius: 50%;\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\n }\n\n .badge-pulse.badge-high {\n background: #F59E0B;\n }\n\n .badge-pulse.badge-urgent {\n background: #DC2626;\n }\n\n .pulse-ring {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n opacity: 0;\n }\n\n .pulse-ring-delay {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n animation-delay: 1s;\n opacity: 0;\n }\n\n @keyframes pulse-ring {\n 0% {\n transform: translate(-50%, -50%) scale(0.8);\n opacity: 1;\n }\n 50% {\n transform: translate(-50%, -50%) scale(1.3);\n opacity: 0.5;\n }\n 100% {\n transform: translate(-50%, -50%) scale(1.5);\n opacity: 0;\n }\n }\n\n .pulse-count {\n position: relative;\n z-index: 1;\n font-size: 10px;\n font-weight: 700;\n color: white;\n }\n\n /* New badge */\n .badge-new {\n height: 18px;\n padding: 0 6px;\n background: linear-gradient(135deg, #10B981, #059669);\n font-size: 9px;\n font-weight: 800;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(16, 185, 129, 0.3);\n }\n\n /* Pop-in animation for badges */\n .badge-animate {\n animation: badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55);\n }\n\n @keyframes badge-pop {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1.2);\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n }\n\n /* Shake animation for urgent badges */\n .badge-urgent.badge-animate {\n animation: badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55),\n badge-shake 400ms ease-in-out 300ms;\n }\n\n @keyframes badge-shake {\n 0%, 100% { transform: translateX(0); }\n 10%, 30%, 50%, 70%, 90% { transform: translateX(-2px); }\n 20%, 40%, 60%, 80% { transform: translateX(2px); }\n }\n\n /* Hover effects */\n .notification-badge:hover {\n transform: scale(1.1);\n cursor: default;\n }\n\n .badge-pulse:hover .pulse-ring,\n .badge-pulse:hover .pulse-ring-delay {\n animation-play-state: paused;\n }\n `]\n})\nexport class NotificationBadgeComponent implements OnInit, OnDestroy {\n @Input() conversationId?: string;\n @Input() badgeConfig?: BadgeConfig;\n\n private destroy$ = new Subject<void>();\n private _loadedBadgeConfig: BadgeConfig | null = null;\n\n constructor(private notificationService: NotificationService) {}\n\n ngOnInit(): void {\n // If badgeConfig not provided but conversationId is, load from service\n if (!this.badgeConfig && this.conversationId) {\n this.notificationService\n .getBadgeConfig$(this.conversationId)\n .pipe(takeUntil(this.destroy$))\n .subscribe(config => {\n this._loadedBadgeConfig = config;\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n get displayConfig(): BadgeConfig | null {\n return this.badgeConfig || this._loadedBadgeConfig;\n }\n\n /**\n * Formats count for display\n * Shows 99+ for counts over 99\n */\n formatCount(count: number): string {\n return count > 99 ? '99+' : count.toString();\n }\n}\n"]}
1
+ {"version":3,"file":"notification-badge.component.js","sourceRoot":"","sources":["../../../../src/lib/components/notification/notification-badge.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { BadgeConfig } from '../../models/notification.model';\nimport { NotificationService } from '../../services/notification.service';\n\n/**\n * Displays notification badges with various styles and animations\n * Supports count, dot, pulse, and new badge types\n */\n@Component({\n standalone: false,\n selector: 'mj-notification-badge',\n template: `\n @if (badgeConfig?.show) {\n <div class=\"notification-badge-container\">\n @if (badgeConfig?.type === 'count' && badgeConfig?.count != null && badgeConfig?.count! > 0) {\n <div\n class=\"notification-badge badge-count\"\n [class.badge-high]=\"badgeConfig?.priority === 'high'\"\n [class.badge-urgent]=\"badgeConfig?.priority === 'urgent'\"\n [class.badge-animate]=\"badgeConfig?.animate\">\n {{ formatCount(badgeConfig?.count!) }}\n </div>\n }\n @if (badgeConfig?.type === 'dot') {\n <div\n class=\"notification-badge badge-dot\"\n [class.badge-high]=\"badgeConfig?.priority === 'high'\"\n [class.badge-urgent]=\"badgeConfig?.priority === 'urgent'\"\n [class.badge-animate]=\"badgeConfig?.animate\">\n </div>\n }\n @if (badgeConfig?.type === 'pulse') {\n <div\n class=\"notification-badge badge-pulse\"\n [class.badge-high]=\"badgeConfig?.priority === 'high'\"\n [class.badge-urgent]=\"badgeConfig?.priority === 'urgent'\">\n <span class=\"pulse-ring\"></span>\n <span class=\"pulse-ring-delay\"></span>\n @if (badgeConfig?.count != null && badgeConfig?.count! > 0) {\n <span class=\"pulse-count\">{{ formatCount(badgeConfig?.count!) }}</span>\n }\n </div>\n }\n @if (badgeConfig?.type === 'new') {\n <div\n class=\"notification-badge badge-new\"\n [class.badge-animate]=\"badgeConfig?.animate\">\n NEW\n </div>\n }\n </div>\n }\n `,\n styles: [`\n .notification-badge-container {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n .notification-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: 700;\n line-height: 1;\n color: white;\n border-radius: 10px;\n white-space: nowrap;\n transition: all 150ms ease;\n }\n\n /* Count badge */\n .badge-count {\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-count.badge-high {\n background: #F59E0B;\n }\n\n .badge-count.badge-urgent {\n background: #DC2626;\n }\n\n /* Dot badge */\n .badge-dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-dot.badge-high {\n background: #F59E0B;\n }\n\n .badge-dot.badge-urgent {\n background: #DC2626;\n }\n\n /* Pulse badge with animated rings */\n .badge-pulse {\n position: relative;\n width: 24px;\n height: 24px;\n background: #0076B6;\n border-radius: 50%;\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\n }\n\n .badge-pulse.badge-high {\n background: #F59E0B;\n }\n\n .badge-pulse.badge-urgent {\n background: #DC2626;\n }\n\n .pulse-ring {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n opacity: 0;\n }\n\n .pulse-ring-delay {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n animation-delay: 1s;\n opacity: 0;\n }\n\n @keyframes pulse-ring {\n 0% {\n transform: translate(-50%, -50%) scale(0.8);\n opacity: 1;\n }\n 50% {\n transform: translate(-50%, -50%) scale(1.3);\n opacity: 0.5;\n }\n 100% {\n transform: translate(-50%, -50%) scale(1.5);\n opacity: 0;\n }\n }\n\n .pulse-count {\n position: relative;\n z-index: 1;\n font-size: 10px;\n font-weight: 700;\n color: white;\n }\n\n /* New badge */\n .badge-new {\n height: 18px;\n padding: 0 6px;\n background: linear-gradient(135deg, #10B981, #059669);\n font-size: 9px;\n font-weight: 800;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(16, 185, 129, 0.3);\n }\n\n /* Pop-in animation for badges */\n .badge-animate {\n animation: badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55);\n }\n\n @keyframes badge-pop {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1.2);\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n }\n\n /* Shake animation for urgent badges */\n .badge-urgent.badge-animate {\n animation: badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55),\n badge-shake 400ms ease-in-out 300ms;\n }\n\n @keyframes badge-shake {\n 0%, 100% { transform: translateX(0); }\n 10%, 30%, 50%, 70%, 90% { transform: translateX(-2px); }\n 20%, 40%, 60%, 80% { transform: translateX(2px); }\n }\n\n /* Hover effects */\n .notification-badge:hover {\n transform: scale(1.1);\n cursor: default;\n }\n\n .badge-pulse:hover .pulse-ring,\n .badge-pulse:hover .pulse-ring-delay {\n animation-play-state: paused;\n }\n `]\n})\nexport class NotificationBadgeComponent 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() BadgeConfig?: BadgeConfig;\n\n /** @deprecated Use {@link BadgeConfig}. */\n @Input() set badgeConfig(value: BadgeConfig | undefined) {\n this.BadgeConfig = value;\n }\n /** @deprecated Use {@link BadgeConfig}. */\n get badgeConfig(): BadgeConfig | undefined {\n return this.BadgeConfig;\n }\n\n private destroy$ = new Subject<void>();\n private _loadedBadgeConfig: BadgeConfig | null = null;\n\n constructor(private notificationService: NotificationService) {}\n\n ngOnInit(): void {\n // If badgeConfig not provided but conversationId is, load from service\n if (!this.BadgeConfig && this.ConversationId) {\n this.notificationService\n .getBadgeConfig$(this.ConversationId)\n .pipe(takeUntil(this.destroy$))\n .subscribe(config => {\n this._loadedBadgeConfig = config;\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n get DisplayConfig(): BadgeConfig | null {\n return this.BadgeConfig || this._loadedBadgeConfig;\n }\n\n /** @deprecated Use {@link DisplayConfig}. */\n get displayConfig(): BadgeConfig | null {\n return this.DisplayConfig;\n }\n\n /**\n * Formats count for display\n * Shows 99+ for counts over 99\n */\n FormatCount(count: number): string {\n return count > 99 ? '99+' : count.toString();\n }\n\n /** @deprecated Use {@link FormatCount}. */\n formatCount(count: number): string {\n return this.FormatCount(count);\n }\n}\n"]}
@@ -49,7 +49,7 @@ export declare class ChatAgentsOverlayComponent extends BaseAngularComponent imp
49
49
  /** Mousedown-to-mousemove distance that promotes a click into a drag. */
50
50
  private static readonly BUBBLE_DRAG_THRESHOLD_PX;
51
51
  /** Controls external visibility (e.g., parent hides overlay on chat route) */
52
- private _IsVisible;
52
+ private _isVisible;
53
53
  set IsVisible(value: boolean);
54
54
  get IsVisible(): boolean;
55
55
  /** Current user info, passed through to conversation-chat-area. Auto-resolved from Metadata if not provided. */
@@ -165,17 +165,17 @@ export class ChatAgentsOverlayComponent extends BaseAngularComponent {
165
165
  static BUBBLE_DRAG_THRESHOLD_PX = 5;
166
166
  // --- Inputs ---
167
167
  /** Controls external visibility (e.g., parent hides overlay on chat route) */
168
- _IsVisible = true;
168
+ _isVisible = true;
169
169
  set IsVisible(value) {
170
- const prev = this._IsVisible;
171
- this._IsVisible = value;
170
+ const prev = this._isVisible;
171
+ this._isVisible = value;
172
172
  if (!value && prev && this.State !== 'collapsed') {
173
173
  this.Collapse();
174
174
  }
175
175
  this.cdr.detectChanges();
176
176
  }
177
177
  get IsVisible() {
178
- return this._IsVisible;
178
+ return this._isVisible;
179
179
  }
180
180
  /** Current user info, passed through to conversation-chat-area. Auto-resolved from Metadata if not provided. */
181
181
  CurrentUser;