@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
@@ -119,19 +119,91 @@ export class ShareModalComponent extends BaseAngularComponent {
119
119
  dialogService;
120
120
  toastService;
121
121
  cdr;
122
- conversation;
123
- currentUser;
124
- isOpen = false;
125
- closed = new EventEmitter();
126
- permissions = [];
127
- newUserEmail = '';
128
- isPublicLink = false;
129
- shareLink = '';
130
- accessLevels = [
122
+ Conversation;
123
+ /** @deprecated Use {@link Conversation}. */
124
+ set conversation(value) {
125
+ this.Conversation = value;
126
+ }
127
+ /** @deprecated Use {@link Conversation}. */
128
+ get conversation() {
129
+ return this.Conversation;
130
+ }
131
+ CurrentUser;
132
+ /** @deprecated Use {@link CurrentUser}. */
133
+ set currentUser(value) {
134
+ this.CurrentUser = value;
135
+ }
136
+ /** @deprecated Use {@link CurrentUser}. */
137
+ get currentUser() {
138
+ return this.CurrentUser;
139
+ }
140
+ IsOpen = false;
141
+ /** @deprecated Use {@link IsOpen}. */
142
+ set isOpen(value) {
143
+ this.IsOpen = value;
144
+ }
145
+ /** @deprecated Use {@link IsOpen}. */
146
+ get isOpen() {
147
+ return this.IsOpen;
148
+ }
149
+ Closed = new EventEmitter();
150
+ /**
151
+ * @deprecated Use {@link Closed}.
152
+ *
153
+ * The same emitter under the old binding name, so a template still binding
154
+ * (closed) keeps working. Must stay AFTER Closed: class fields
155
+ * initialise in order, and the other way round this captures undefined.
156
+ */
157
+ closed = this.Closed;
158
+ Permissions = [];
159
+ /** @deprecated Use {@link Permissions}. */
160
+ get permissions() {
161
+ return this.Permissions;
162
+ }
163
+ /** @deprecated Use {@link Permissions}. */
164
+ set permissions(value) {
165
+ this.Permissions = value;
166
+ }
167
+ NewUserEmail = '';
168
+ /** @deprecated Use {@link NewUserEmail}. */
169
+ get newUserEmail() {
170
+ return this.NewUserEmail;
171
+ }
172
+ /** @deprecated Use {@link NewUserEmail}. */
173
+ set newUserEmail(value) {
174
+ this.NewUserEmail = value;
175
+ }
176
+ IsPublicLink = false;
177
+ /** @deprecated Use {@link IsPublicLink}. */
178
+ get isPublicLink() {
179
+ return this.IsPublicLink;
180
+ }
181
+ /** @deprecated Use {@link IsPublicLink}. */
182
+ set isPublicLink(value) {
183
+ this.IsPublicLink = value;
184
+ }
185
+ ShareLink = '';
186
+ /** @deprecated Use {@link ShareLink}. */
187
+ get shareLink() {
188
+ return this.ShareLink;
189
+ }
190
+ /** @deprecated Use {@link ShareLink}. */
191
+ set shareLink(value) {
192
+ this.ShareLink = value;
193
+ }
194
+ AccessLevels = [
131
195
  { label: 'Can View', value: 'View' },
132
196
  { label: 'Can Edit', value: 'Edit' },
133
197
  { label: 'Owner', value: 'Owner' }
134
198
  ];
199
+ /** @deprecated Use {@link AccessLevels}. */
200
+ get accessLevels() {
201
+ return this.AccessLevels;
202
+ }
203
+ /** @deprecated Use {@link AccessLevels}. */
204
+ set accessLevels(value) {
205
+ this.AccessLevels = value;
206
+ }
135
207
  CONVERSATIONS_RESOURCE_TYPE_ID = '81D4BC3D-9FEB-EF11-B01A-286B35C04427';
136
208
  constructor(dialogService, toastService, cdr) {
137
209
  super();
@@ -140,7 +212,7 @@ export class ShareModalComponent extends BaseAngularComponent {
140
212
  this.cdr = cdr;
141
213
  }
142
214
  ngOnInit() {
143
- if (this.conversation) {
215
+ if (this.Conversation) {
144
216
  this.loadPermissions();
145
217
  this.updateShareLink();
146
218
  }
@@ -150,7 +222,7 @@ export class ShareModalComponent extends BaseAngularComponent {
150
222
  const rv = RunView.FromMetadataProvider(this.ProviderToUse);
151
223
  const result = await rv.RunView({
152
224
  EntityName: 'MJ: Resource Permissions',
153
- ExtraFilter: `ResourceTypeID='${this.CONVERSATIONS_RESOURCE_TYPE_ID}' AND ResourceRecordID='${this.conversation.ID}' AND Status='Approved'`,
225
+ ExtraFilter: `ResourceTypeID='${this.CONVERSATIONS_RESOURCE_TYPE_ID}' AND ResourceRecordID='${this.Conversation.ID}' AND Status='Approved'`,
154
226
  ResultType: 'entity_object'
155
227
  });
156
228
  if (result.Success && result.Results) {
@@ -176,7 +248,7 @@ export class ShareModalComponent extends BaseAngularComponent {
176
248
  return null;
177
249
  });
178
250
  const resolvedPermissions = await Promise.all(permissionPromises);
179
- this.permissions = resolvedPermissions.filter(p => p !== null);
251
+ this.Permissions = resolvedPermissions.filter(p => p !== null);
180
252
  }
181
253
  }
182
254
  catch (error) {
@@ -186,15 +258,23 @@ export class ShareModalComponent extends BaseAngularComponent {
186
258
  this.cdr.detectChanges();
187
259
  }
188
260
  }
189
- getAccessLevel(permission) {
261
+ GetAccessLevel(permission) {
190
262
  return permission.permissionLevel;
191
263
  }
192
- async onAccessLevelChange(permission, level) {
264
+ /** @deprecated Use {@link GetAccessLevel}. */
265
+ getAccessLevel(permission) {
266
+ return this.GetAccessLevel(permission);
267
+ }
268
+ async OnAccessLevelChange(permission, level) {
193
269
  permission.permissionLevel = level;
194
270
  await this.savePermission(permission);
195
271
  }
196
- async onAddUser() {
197
- const email = this.newUserEmail.trim();
272
+ /** @deprecated Use {@link OnAccessLevelChange}. */
273
+ async onAccessLevelChange(permission, level) {
274
+ return this.OnAccessLevelChange(permission, level);
275
+ }
276
+ async OnAddUser() {
277
+ const email = this.NewUserEmail.trim();
198
278
  if (!email)
199
279
  return;
200
280
  // Simple email validation
@@ -203,7 +283,7 @@ export class ShareModalComponent extends BaseAngularComponent {
203
283
  return;
204
284
  }
205
285
  // Check if user already has access
206
- if (this.permissions.some(p => p.userEmail === email)) {
286
+ if (this.Permissions.some(p => p.userEmail === email)) {
207
287
  await this.dialogService.alert('User Already Has Access', 'This user already has access');
208
288
  return;
209
289
  }
@@ -228,8 +308,8 @@ export class ShareModalComponent extends BaseAngularComponent {
228
308
  permissionLevel: 'View'
229
309
  };
230
310
  await this.savePermission(newPermission);
231
- this.permissions.push(newPermission);
232
- this.newUserEmail = '';
311
+ this.Permissions.push(newPermission);
312
+ this.NewUserEmail = '';
233
313
  this.toastService.success(`Access granted to ${user.Email}`);
234
314
  this.cdr.detectChanges();
235
315
  }
@@ -238,7 +318,11 @@ export class ShareModalComponent extends BaseAngularComponent {
238
318
  this.toastService.error('Failed to add user');
239
319
  }
240
320
  }
241
- async onRemoveUser(permission) {
321
+ /** @deprecated Use {@link OnAddUser}. */
322
+ async onAddUser() {
323
+ return this.OnAddUser();
324
+ }
325
+ async OnRemoveUser(permission) {
242
326
  const confirmed = await this.dialogService.confirm({
243
327
  title: 'Remove Access',
244
328
  message: `Remove access for ${permission.userEmail}?`,
@@ -257,7 +341,7 @@ export class ShareModalComponent extends BaseAngularComponent {
257
341
  throw new Error('Failed to delete permission');
258
342
  }
259
343
  }
260
- this.permissions = this.permissions.filter(p => p.userId !== permission.userId);
344
+ this.Permissions = this.Permissions.filter(p => p.userId !== permission.userId);
261
345
  this.toastService.success(`Access removed for ${permission.userEmail}`);
262
346
  }
263
347
  catch (error) {
@@ -265,6 +349,10 @@ export class ShareModalComponent extends BaseAngularComponent {
265
349
  this.toastService.error('Failed to remove user');
266
350
  }
267
351
  }
352
+ /** @deprecated Use {@link OnRemoveUser}. */
353
+ async onRemoveUser(permission) {
354
+ return this.OnRemoveUser(permission);
355
+ }
268
356
  async savePermission(permission) {
269
357
  try {
270
358
  const md = this.ProviderToUse;
@@ -277,7 +365,7 @@ export class ShareModalComponent extends BaseAngularComponent {
277
365
  else {
278
366
  // Create new permission
279
367
  permEntity.ResourceTypeID = this.CONVERSATIONS_RESOURCE_TYPE_ID;
280
- permEntity.ResourceRecordID = this.conversation.ID;
368
+ permEntity.ResourceRecordID = this.Conversation.ID;
281
369
  permEntity.Type = 'User';
282
370
  permEntity.UserID = permission.userId;
283
371
  permEntity.PermissionLevel = permission.permissionLevel;
@@ -297,7 +385,7 @@ export class ShareModalComponent extends BaseAngularComponent {
297
385
  throw error;
298
386
  }
299
387
  }
300
- async onTogglePublicLink() {
388
+ async OnTogglePublicLink() {
301
389
  try {
302
390
  // Note: Public link functionality uses the conversation ID directly.
303
391
  // For enhanced security with unique tokens, password protection, and expiration,
@@ -309,19 +397,23 @@ export class ShareModalComponent extends BaseAngularComponent {
309
397
  await this.dialogService.alert('Error', 'Failed to update sharing settings');
310
398
  }
311
399
  }
400
+ /** @deprecated Use {@link OnTogglePublicLink}. */
401
+ async onTogglePublicLink() {
402
+ return this.OnTogglePublicLink();
403
+ }
312
404
  updateShareLink() {
313
- if (this.isPublicLink && this.conversation) {
405
+ if (this.IsPublicLink && this.Conversation) {
314
406
  // Generate shareable link
315
407
  const baseUrl = window.location.origin;
316
- this.shareLink = `${baseUrl}/chat/${this.conversation.ID}`;
408
+ this.ShareLink = `${baseUrl}/chat/${this.Conversation.ID}`;
317
409
  }
318
410
  else {
319
- this.shareLink = '';
411
+ this.ShareLink = '';
320
412
  }
321
413
  }
322
- async onCopyLink() {
414
+ async OnCopyLink() {
323
415
  try {
324
- await navigator.clipboard.writeText(this.shareLink);
416
+ await navigator.clipboard.writeText(this.ShareLink);
325
417
  this.toastService.success('Link copied to clipboard');
326
418
  }
327
419
  catch (err) {
@@ -329,11 +421,19 @@ export class ShareModalComponent extends BaseAngularComponent {
329
421
  this.toastService.error('Failed to copy link');
330
422
  }
331
423
  }
424
+ /** @deprecated Use {@link OnCopyLink}. */
425
+ async onCopyLink() {
426
+ return this.OnCopyLink();
427
+ }
428
+ OnClose() {
429
+ this.Closed.emit();
430
+ }
431
+ /** @deprecated Use {@link OnClose}. */
332
432
  onClose() {
333
- this.closed.emit();
433
+ return this.OnClose();
334
434
  }
335
435
  static ɵfac = function ShareModalComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ShareModalComponent)(i0.ɵɵdirectiveInject(i1.DialogService), i0.ɵɵdirectiveInject(i2.ToastService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
336
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ShareModalComponent, selectors: [["mj-share-modal"]], inputs: { conversation: "conversation", currentUser: "currentUser", isOpen: "isOpen" }, outputs: { closed: "closed" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [[3, "Title", "Width", "Height", "Visible"], [3, "Close", "Title", "Width", "Height", "Visible"], [1, "share-content"], [1, "add-user-section"], [1, "add-user-form"], ["type", "text", "placeholder", "Enter email address", 1, "mj-textbox", 2, "flex", "1", 3, "ngModelChange", "ngModel"], ["mjButton", "", "variant", "primary", 3, "click"], [1, "permissions-section"], [1, "permission-list"], ["Icon", "fa-solid fa-user-group", "Title", "No one has been given access yet", "Size", "compact"], [1, "permission-item"], [1, "link-section"], [1, "link-controls"], ["type", "checkbox", 3, "ngModelChange", "ngModel"], [1, "link-display"], ["mjButton", "", 3, "click"], [1, "user-info"], [1, "fas", "fa-user-circle"], [1, "user-details"], [1, "user-name"], [1, "user-email"], [1, "permission-controls"], [1, "mj-select", 2, "width", "120px", 3, "ngModelChange", "ngModel"], [3, "value"], ["title", "Remove access", 1, "btn-remove", 3, "click"], [1, "fas", "fa-times"], ["type", "text", "readonly", "", 1, "mj-textbox", 2, "flex", "1", 3, "value"], ["mjButton", "", "variant", "flat", 3, "click"], [1, "fas", "fa-copy"]], template: function ShareModalComponent_Template(rf, ctx) { if (rf & 1) {
436
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ShareModalComponent, selectors: [["mj-share-modal"]], inputs: { Conversation: "Conversation", conversation: "conversation", CurrentUser: "CurrentUser", currentUser: "currentUser", IsOpen: "IsOpen", isOpen: "isOpen" }, outputs: { Closed: "Closed", closed: "closed" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [[3, "Title", "Width", "Height", "Visible"], [3, "Close", "Title", "Width", "Height", "Visible"], [1, "share-content"], [1, "add-user-section"], [1, "add-user-form"], ["type", "text", "placeholder", "Enter email address", 1, "mj-textbox", 2, "flex", "1", 3, "ngModelChange", "ngModel"], ["mjButton", "", "variant", "primary", 3, "click"], [1, "permissions-section"], [1, "permission-list"], ["Icon", "fa-solid fa-user-group", "Title", "No one has been given access yet", "Size", "compact"], [1, "permission-item"], [1, "link-section"], [1, "link-controls"], ["type", "checkbox", 3, "ngModelChange", "ngModel"], [1, "link-display"], ["mjButton", "", 3, "click"], [1, "user-info"], [1, "fas", "fa-user-circle"], [1, "user-details"], [1, "user-name"], [1, "user-email"], [1, "permission-controls"], [1, "mj-select", 2, "width", "120px", 3, "ngModelChange", "ngModel"], [3, "value"], ["title", "Remove access", 1, "btn-remove", 3, "click"], [1, "fas", "fa-times"], ["type", "text", "readonly", "", 1, "mj-textbox", 2, "flex", "1", 3, "value"], ["mjButton", "", "variant", "flat", 3, "click"], [1, "fas", "fa-copy"]], template: function ShareModalComponent_Template(rf, ctx) { if (rf & 1) {
337
437
  i0.ɵɵconditionalCreate(0, ShareModalComponent_Conditional_0_Template, 27, 8, "mj-dialog", 0);
338
438
  } if (rf & 2) {
339
439
  i0.ɵɵconditional(ctx.isOpen ? 0 : -1);
@@ -432,12 +532,20 @@ export class ShareModalComponent extends BaseAngularComponent {
432
532
  </mj-dialog>
433
533
  }
434
534
  `, styles: ["\n .share-content { display: flex; flex-direction: column; gap: 24px; }\n\n .add-user-section h4,\n .permissions-section h4,\n .link-section h4 { margin: 0 0 12px 0; font-size: 14px; font-weight: 600; }\n\n .add-user-form { display: flex; gap: 8px; }\n\n .permission-list { border: 1px solid #D9D9D9; border-radius: 4px; max-height: 300px; overflow-y: auto; }\n .permission-item { padding: 12px; border-bottom: 1px solid #E8E8E8; display: flex; justify-content: space-between; align-items: center; }\n .permission-item:last-child { border-bottom: none; }\n\n .user-info { display: flex; align-items: center; gap: 12px; flex: 1; }\n .user-info i { font-size: 32px; color: #999; }\n .user-details { display: flex; flex-direction: column; }\n .user-name { font-size: 14px; font-weight: 500; }\n .user-email { font-size: 12px; color: #666; }\n\n .permission-controls { display: flex; align-items: center; gap: 8px; }\n .btn-remove { padding: 6px 8px; background: transparent; border: none; cursor: pointer; border-radius: 3px; color: #999; }\n .btn-remove:hover { background: #FFEBEE; color: #D32F2F; }\n\n .link-controls { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }\n .link-controls label { font-size: 13px; }\n\n .link-display { display: flex; gap: 8px; }\n "] }]
435
- }], () => [{ type: i1.DialogService }, { type: i2.ToastService }, { type: i0.ChangeDetectorRef }], { conversation: [{
535
+ }], () => [{ type: i1.DialogService }, { type: i2.ToastService }, { type: i0.ChangeDetectorRef }], { Conversation: [{
536
+ type: Input
537
+ }], conversation: [{
538
+ type: Input
539
+ }], CurrentUser: [{
436
540
  type: Input
437
541
  }], currentUser: [{
438
542
  type: Input
543
+ }], IsOpen: [{
544
+ type: Input
439
545
  }], isOpen: [{
440
546
  type: Input
547
+ }], Closed: [{
548
+ type: Output
441
549
  }], closed: [{
442
550
  type: Output
443
551
  }] }); })();
@@ -1 +1 @@
1
- {"version":3,"file":"share-modal.component.js","sourceRoot":"","sources":["../../../../src/lib/components/share/share-modal.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit, ChangeDetectorRef } from '@angular/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { MJConversationEntity, MJResourcePermissionEntity, MJUserEntity } from '@memberjunction/core-entities';\nimport { UserInfo, RunView, Metadata } from '@memberjunction/core';\nimport { DialogService } from '../../services/dialog.service';\nimport { ToastService } from '../../services/toast.service';\n\ninterface SharePermission {\n permissionId: string | null;\n userId: string;\n userEmail: string;\n userName: string;\n permissionLevel: 'View' | 'Edit' | 'Owner';\n}\n\n@Component({\n standalone: false,\n selector: 'mj-share-modal',\n template: `\n @if (isOpen) {\n <mj-dialog\n [Title]=\"'Share: ' + (conversation.Name || '')\"\n [Width]=\"500\"\n [Height]=\"600\"\n [Visible]=\"true\"\n (Close)=\"onClose()\">\n <div class=\"share-content\">\n <div class=\"add-user-section\">\n <h4>Add People</h4>\n <div class=\"add-user-form\">\n <input\n type=\"text\"\n [(ngModel)]=\"newUserEmail\"\n placeholder=\"Enter email address\"\n class=\"mj-textbox\"\n style=\"flex: 1;\">\n <button mjButton variant=\"primary\" (click)=\"onAddUser()\">\n Add\n </button>\n </div>\n </div>\n <div class=\"permissions-section\">\n <h4>People with Access</h4>\n <div class=\"permission-list\">\n @if (permissions.length === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-user-group\"\n Title=\"No one has been given access yet\"\n Size=\"compact\" />\n }\n @for (permission of permissions; track permission) {\n <div class=\"permission-item\">\n <div class=\"user-info\">\n <i class=\"fas fa-user-circle\"></i>\n <div class=\"user-details\">\n <div class=\"user-name\">{{ permission.userName }}</div>\n <div class=\"user-email\">{{ permission.userEmail }}</div>\n </div>\n </div>\n <div class=\"permission-controls\">\n <select\n [ngModel]=\"permission.permissionLevel\"\n (ngModelChange)=\"onAccessLevelChange(permission, $event)\"\n style=\"width: 120px;\" class=\"mj-select\">\n @for (level of accessLevels; track level.value) {\n <option [value]=\"level.value\">{{ level.label }}</option>\n }\n </select>\n <button\n class=\"btn-remove\"\n (click)=\"onRemoveUser(permission)\"\n title=\"Remove access\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n }\n </div>\n </div>\n <div class=\"link-section\">\n <h4>Share Link</h4>\n <div class=\"link-controls\">\n <input\n type=\"checkbox\"\n [(ngModel)]=\"isPublicLink\"\n (ngModelChange)=\"onTogglePublicLink()\">\n <label>Anyone with the link can view</label>\n </div>\n @if (isPublicLink) {\n <div class=\"link-display\">\n <input\n type=\"text\"\n [value]=\"shareLink\"\n readonly\n class=\"mj-textbox\"\n style=\"flex: 1;\">\n <button mjButton variant=\"flat\" (click)=\"onCopyLink()\">\n <i class=\"fas fa-copy\"></i> Copy\n </button>\n </div>\n }\n </div>\n </div>\n <mj-dialog-actions>\n <button mjButton (click)=\"onClose()\">Close</button>\n </mj-dialog-actions>\n </mj-dialog>\n }\n `,\n styles: [`\n .share-content { display: flex; flex-direction: column; gap: 24px; }\n\n .add-user-section h4,\n .permissions-section h4,\n .link-section h4 { margin: 0 0 12px 0; font-size: 14px; font-weight: 600; }\n\n .add-user-form { display: flex; gap: 8px; }\n\n .permission-list { border: 1px solid #D9D9D9; border-radius: 4px; max-height: 300px; overflow-y: auto; }\n .permission-item { padding: 12px; border-bottom: 1px solid #E8E8E8; display: flex; justify-content: space-between; align-items: center; }\n .permission-item:last-child { border-bottom: none; }\n\n .user-info { display: flex; align-items: center; gap: 12px; flex: 1; }\n .user-info i { font-size: 32px; color: #999; }\n .user-details { display: flex; flex-direction: column; }\n .user-name { font-size: 14px; font-weight: 500; }\n .user-email { font-size: 12px; color: #666; }\n\n .permission-controls { display: flex; align-items: center; gap: 8px; }\n .btn-remove { padding: 6px 8px; background: transparent; border: none; cursor: pointer; border-radius: 3px; color: #999; }\n .btn-remove:hover { background: #FFEBEE; color: #D32F2F; }\n\n .link-controls { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }\n .link-controls label { font-size: 13px; }\n\n .link-display { display: flex; gap: 8px; }\n `]\n})\nexport class ShareModalComponent extends BaseAngularComponent implements OnInit {\n @Input() conversation!: MJConversationEntity;\n @Input() currentUser!: UserInfo;\n @Input() isOpen: boolean = false;\n\n @Output() closed = new EventEmitter<void>();\n\n public permissions: SharePermission[] = [];\n public newUserEmail: string = '';\n public isPublicLink: boolean = false;\n public shareLink: string = '';\n\n public accessLevels = [\n { label: 'Can View', value: 'View' },\n { label: 'Can Edit', value: 'Edit' },\n { label: 'Owner', value: 'Owner' }\n ];\n\n private readonly CONVERSATIONS_RESOURCE_TYPE_ID = '81D4BC3D-9FEB-EF11-B01A-286B35C04427';\n\n constructor(\n private dialogService: DialogService,\n private toastService: ToastService,\n private cdr: ChangeDetectorRef\n ) {\n super();}\n\n ngOnInit() {\n if (this.conversation) {\n this.loadPermissions();\n this.updateShareLink();\n }\n }\n\n private async loadPermissions(): Promise<void> {\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<MJResourcePermissionEntity>({\n EntityName: 'MJ: Resource Permissions',\n ExtraFilter: `ResourceTypeID='${this.CONVERSATIONS_RESOURCE_TYPE_ID}' AND ResourceRecordID='${this.conversation.ID}' AND Status='Approved'`,\n ResultType: 'entity_object'\n });\n\n if (result.Success && result.Results) {\n const permissionPromises = result.Results.map(async (perm) => {\n if (perm.UserID) {\n const userRv = RunView.FromMetadataProvider(this.ProviderToUse);\n const userResult = await userRv.RunView<MJUserEntity>({\n EntityName: 'MJ: Users',\n ExtraFilter: `ID='${perm.UserID}'`,\n ResultType: 'entity_object'\n });\n\n if (userResult.Success && userResult.Results && userResult.Results.length > 0) {\n const user = userResult.Results[0];\n return {\n permissionId: perm.ID,\n userId: perm.UserID,\n userEmail: user.Email,\n userName: user.Name,\n permissionLevel: perm.PermissionLevel || 'View'\n } as SharePermission;\n }\n }\n return null;\n });\n\n const resolvedPermissions = await Promise.all(permissionPromises);\n this.permissions = resolvedPermissions.filter(p => p !== null) as SharePermission[];\n }\n } catch (error) {\n console.error('Failed to load permissions:', error);\n } finally {\n this.cdr.detectChanges();\n }\n }\n\n getAccessLevel(permission: SharePermission): string {\n return permission.permissionLevel;\n }\n\n async onAccessLevelChange(permission: SharePermission, level: 'View' | 'Edit' | 'Owner'): Promise<void> {\n permission.permissionLevel = level;\n await this.savePermission(permission);\n }\n\n async onAddUser(): Promise<void> {\n const email = this.newUserEmail.trim();\n if (!email) return;\n\n // Simple email validation\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)) {\n await this.dialogService.alert('Invalid Email', 'Please enter a valid email address');\n return;\n }\n\n // Check if user already has access\n if (this.permissions.some(p => p.userEmail === email)) {\n await this.dialogService.alert('User Already Has Access', 'This user already has access');\n return;\n }\n\n try {\n // Look up user by email\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const userResult = await rv.RunView<MJUserEntity>({\n EntityName: 'MJ: Users',\n ExtraFilter: `Email='${email}'`,\n ResultType: 'entity_object'\n });\n\n if (!userResult.Success || !userResult.Results || userResult.Results.length === 0) {\n await this.dialogService.alert('User Not Found', 'No user found with that email address');\n return;\n }\n\n const user = userResult.Results[0];\n const newPermission: SharePermission = {\n permissionId: null,\n userId: user.ID,\n userEmail: user.Email,\n userName: user.Name,\n permissionLevel: 'View'\n };\n\n await this.savePermission(newPermission);\n this.permissions.push(newPermission);\n this.newUserEmail = '';\n this.toastService.success(`Access granted to ${user.Email}`);\n this.cdr.detectChanges();\n } catch (error) {\n console.error('Failed to add user:', error);\n this.toastService.error('Failed to add user');\n }\n }\n\n async onRemoveUser(permission: SharePermission): Promise<void> {\n const confirmed = await this.dialogService.confirm({\n title: 'Remove Access',\n message: `Remove access for ${permission.userEmail}?`,\n okText: 'Remove',\n cancelText: 'Cancel'\n });\n\n if (!confirmed) return;\n\n try {\n if (permission.permissionId) {\n const md = this.ProviderToUse;\n const permEntity = await md.GetEntityObject<MJResourcePermissionEntity>('MJ: Resource Permissions');\n await permEntity.Load(permission.permissionId);\n\n const deleteResult = await permEntity.Delete();\n if (!deleteResult) {\n throw new Error('Failed to delete permission');\n }\n }\n\n this.permissions = this.permissions.filter(p => p.userId !== permission.userId);\n this.toastService.success(`Access removed for ${permission.userEmail}`);\n } catch (error) {\n console.error('Failed to remove user:', error);\n this.toastService.error('Failed to remove user');\n }\n }\n\n private async savePermission(permission: SharePermission): Promise<void> {\n try {\n const md = this.ProviderToUse;\n const permEntity = await md.GetEntityObject<MJResourcePermissionEntity>('MJ: Resource Permissions');\n\n if (permission.permissionId) {\n // Update existing permission\n await permEntity.Load(permission.permissionId);\n permEntity.PermissionLevel = permission.permissionLevel;\n } else {\n // Create new permission\n permEntity.ResourceTypeID = this.CONVERSATIONS_RESOURCE_TYPE_ID;\n permEntity.ResourceRecordID = this.conversation.ID;\n permEntity.Type = 'User';\n permEntity.UserID = permission.userId;\n permEntity.PermissionLevel = permission.permissionLevel;\n permEntity.Status = 'Approved';\n }\n\n const saveResult = await permEntity.Save();\n if (!saveResult) {\n throw new Error('Failed to save permission');\n }\n\n // Update the permission ID if it was a new permission\n if (!permission.permissionId) {\n permission.permissionId = permEntity.ID;\n }\n } catch (error) {\n console.error('Failed to save permission:', error);\n throw error;\n }\n }\n\n async onTogglePublicLink(): Promise<void> {\n try {\n // Note: Public link functionality uses the conversation ID directly.\n // For enhanced security with unique tokens, password protection, and expiration,\n // future migration should add: PublicAccessToken, PublicAccessPassword, PublicAccessExpiresAt fields\n this.updateShareLink();\n } catch (error) {\n console.error('Failed to toggle public link:', error);\n await this.dialogService.alert('Error', 'Failed to update sharing settings');\n }\n }\n\n private updateShareLink(): void {\n if (this.isPublicLink && this.conversation) {\n // Generate shareable link\n const baseUrl = window.location.origin;\n this.shareLink = `${baseUrl}/chat/${this.conversation.ID}`;\n } else {\n this.shareLink = '';\n }\n }\n\n async onCopyLink(): Promise<void> {\n try {\n await navigator.clipboard.writeText(this.shareLink);\n this.toastService.success('Link copied to clipboard');\n } catch (err) {\n console.error('Failed to copy link:', err);\n this.toastService.error('Failed to copy link');\n }\n }\n\n onClose(): void {\n this.closed.emit();\n }\n}"]}
1
+ {"version":3,"file":"share-modal.component.js","sourceRoot":"","sources":["../../../../src/lib/components/share/share-modal.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit, ChangeDetectorRef } from '@angular/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { MJConversationEntity, MJResourcePermissionEntity, MJUserEntity } from '@memberjunction/core-entities';\nimport { UserInfo, RunView, Metadata } from '@memberjunction/core';\nimport { DialogService } from '../../services/dialog.service';\nimport { ToastService } from '../../services/toast.service';\n\ninterface SharePermission {\n permissionId: string | null;\n userId: string;\n userEmail: string;\n userName: string;\n permissionLevel: 'View' | 'Edit' | 'Owner';\n}\n\n@Component({\n standalone: false,\n selector: 'mj-share-modal',\n template: `\n @if (isOpen) {\n <mj-dialog\n [Title]=\"'Share: ' + (conversation.Name || '')\"\n [Width]=\"500\"\n [Height]=\"600\"\n [Visible]=\"true\"\n (Close)=\"onClose()\">\n <div class=\"share-content\">\n <div class=\"add-user-section\">\n <h4>Add People</h4>\n <div class=\"add-user-form\">\n <input\n type=\"text\"\n [(ngModel)]=\"newUserEmail\"\n placeholder=\"Enter email address\"\n class=\"mj-textbox\"\n style=\"flex: 1;\">\n <button mjButton variant=\"primary\" (click)=\"onAddUser()\">\n Add\n </button>\n </div>\n </div>\n <div class=\"permissions-section\">\n <h4>People with Access</h4>\n <div class=\"permission-list\">\n @if (permissions.length === 0) {\n <mj-empty-state\n Icon=\"fa-solid fa-user-group\"\n Title=\"No one has been given access yet\"\n Size=\"compact\" />\n }\n @for (permission of permissions; track permission) {\n <div class=\"permission-item\">\n <div class=\"user-info\">\n <i class=\"fas fa-user-circle\"></i>\n <div class=\"user-details\">\n <div class=\"user-name\">{{ permission.userName }}</div>\n <div class=\"user-email\">{{ permission.userEmail }}</div>\n </div>\n </div>\n <div class=\"permission-controls\">\n <select\n [ngModel]=\"permission.permissionLevel\"\n (ngModelChange)=\"onAccessLevelChange(permission, $event)\"\n style=\"width: 120px;\" class=\"mj-select\">\n @for (level of accessLevels; track level.value) {\n <option [value]=\"level.value\">{{ level.label }}</option>\n }\n </select>\n <button\n class=\"btn-remove\"\n (click)=\"onRemoveUser(permission)\"\n title=\"Remove access\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n }\n </div>\n </div>\n <div class=\"link-section\">\n <h4>Share Link</h4>\n <div class=\"link-controls\">\n <input\n type=\"checkbox\"\n [(ngModel)]=\"isPublicLink\"\n (ngModelChange)=\"onTogglePublicLink()\">\n <label>Anyone with the link can view</label>\n </div>\n @if (isPublicLink) {\n <div class=\"link-display\">\n <input\n type=\"text\"\n [value]=\"shareLink\"\n readonly\n class=\"mj-textbox\"\n style=\"flex: 1;\">\n <button mjButton variant=\"flat\" (click)=\"onCopyLink()\">\n <i class=\"fas fa-copy\"></i> Copy\n </button>\n </div>\n }\n </div>\n </div>\n <mj-dialog-actions>\n <button mjButton (click)=\"onClose()\">Close</button>\n </mj-dialog-actions>\n </mj-dialog>\n }\n `,\n styles: [`\n .share-content { display: flex; flex-direction: column; gap: 24px; }\n\n .add-user-section h4,\n .permissions-section h4,\n .link-section h4 { margin: 0 0 12px 0; font-size: 14px; font-weight: 600; }\n\n .add-user-form { display: flex; gap: 8px; }\n\n .permission-list { border: 1px solid #D9D9D9; border-radius: 4px; max-height: 300px; overflow-y: auto; }\n .permission-item { padding: 12px; border-bottom: 1px solid #E8E8E8; display: flex; justify-content: space-between; align-items: center; }\n .permission-item:last-child { border-bottom: none; }\n\n .user-info { display: flex; align-items: center; gap: 12px; flex: 1; }\n .user-info i { font-size: 32px; color: #999; }\n .user-details { display: flex; flex-direction: column; }\n .user-name { font-size: 14px; font-weight: 500; }\n .user-email { font-size: 12px; color: #666; }\n\n .permission-controls { display: flex; align-items: center; gap: 8px; }\n .btn-remove { padding: 6px 8px; background: transparent; border: none; cursor: pointer; border-radius: 3px; color: #999; }\n .btn-remove:hover { background: #FFEBEE; color: #D32F2F; }\n\n .link-controls { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }\n .link-controls label { font-size: 13px; }\n\n .link-display { display: flex; gap: 8px; }\n `]\n})\nexport class ShareModalComponent extends BaseAngularComponent implements OnInit {\n @Input() Conversation!: MJConversationEntity;\n\n /** @deprecated Use {@link Conversation}. */\n @Input() set conversation(value: MJConversationEntity) {\n this.Conversation = value;\n }\n /** @deprecated Use {@link Conversation}. */\n get conversation(): MJConversationEntity {\n return this.Conversation;\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() IsOpen: boolean = false;\n\n /** @deprecated Use {@link IsOpen}. */\n @Input() set isOpen(value: boolean) {\n this.IsOpen = value;\n }\n /** @deprecated Use {@link IsOpen}. */\n get isOpen(): boolean {\n return this.IsOpen;\n }\n\n @Output() Closed = new EventEmitter<void>();\n\n /**\n * @deprecated Use {@link Closed}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (closed) keeps working. Must stay AFTER Closed: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() closed = this.Closed;\n\n public Permissions: SharePermission[] = [];\n\n /** @deprecated Use {@link Permissions}. */\n public get permissions(): SharePermission[] {\n return this.Permissions;\n }\n /** @deprecated Use {@link Permissions}. */\n public set permissions(value: SharePermission[]) {\n this.Permissions = value;\n }\n public NewUserEmail: string = '';\n\n /** @deprecated Use {@link NewUserEmail}. */\n public get newUserEmail(): string {\n return this.NewUserEmail;\n }\n /** @deprecated Use {@link NewUserEmail}. */\n public set newUserEmail(value: string) {\n this.NewUserEmail = value;\n }\n public IsPublicLink: boolean = false;\n\n /** @deprecated Use {@link IsPublicLink}. */\n public get isPublicLink(): boolean {\n return this.IsPublicLink;\n }\n /** @deprecated Use {@link IsPublicLink}. */\n public set isPublicLink(value: boolean) {\n this.IsPublicLink = value;\n }\n public ShareLink: string = '';\n\n /** @deprecated Use {@link ShareLink}. */\n public get shareLink(): string {\n return this.ShareLink;\n }\n /** @deprecated Use {@link ShareLink}. */\n public set shareLink(value: string) {\n this.ShareLink = value;\n }\n\n public AccessLevels = [\n { label: 'Can View', value: 'View' },\n { label: 'Can Edit', value: 'Edit' },\n { label: 'Owner', value: 'Owner' }\n ];\n\n /** @deprecated Use {@link AccessLevels}. */\n public get accessLevels() {\n return this.AccessLevels;\n }\n /** @deprecated Use {@link AccessLevels}. */\n public set accessLevels(value) {\n this.AccessLevels = value;\n }\n\n private readonly CONVERSATIONS_RESOURCE_TYPE_ID = '81D4BC3D-9FEB-EF11-B01A-286B35C04427';\n\n constructor(\n private dialogService: DialogService,\n private toastService: ToastService,\n private cdr: ChangeDetectorRef\n ) {\n super();}\n\n ngOnInit() {\n if (this.Conversation) {\n this.loadPermissions();\n this.updateShareLink();\n }\n }\n\n private async loadPermissions(): Promise<void> {\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<MJResourcePermissionEntity>({\n EntityName: 'MJ: Resource Permissions',\n ExtraFilter: `ResourceTypeID='${this.CONVERSATIONS_RESOURCE_TYPE_ID}' AND ResourceRecordID='${this.Conversation.ID}' AND Status='Approved'`,\n ResultType: 'entity_object'\n });\n\n if (result.Success && result.Results) {\n const permissionPromises = result.Results.map(async (perm) => {\n if (perm.UserID) {\n const userRv = RunView.FromMetadataProvider(this.ProviderToUse);\n const userResult = await userRv.RunView<MJUserEntity>({\n EntityName: 'MJ: Users',\n ExtraFilter: `ID='${perm.UserID}'`,\n ResultType: 'entity_object'\n });\n\n if (userResult.Success && userResult.Results && userResult.Results.length > 0) {\n const user = userResult.Results[0];\n return {\n permissionId: perm.ID,\n userId: perm.UserID,\n userEmail: user.Email,\n userName: user.Name,\n permissionLevel: perm.PermissionLevel || 'View'\n } as SharePermission;\n }\n }\n return null;\n });\n\n const resolvedPermissions = await Promise.all(permissionPromises);\n this.Permissions = resolvedPermissions.filter(p => p !== null) as SharePermission[];\n }\n } catch (error) {\n console.error('Failed to load permissions:', error);\n } finally {\n this.cdr.detectChanges();\n }\n }\n\n GetAccessLevel(permission: SharePermission): string {\n return permission.permissionLevel;\n }\n\n /** @deprecated Use {@link GetAccessLevel}. */\n getAccessLevel(permission: SharePermission): string {\n return this.GetAccessLevel(permission);\n }\n\n async OnAccessLevelChange(permission: SharePermission, level: 'View' | 'Edit' | 'Owner'): Promise<void> {\n permission.permissionLevel = level;\n await this.savePermission(permission);\n }\n\n /** @deprecated Use {@link OnAccessLevelChange}. */\n async onAccessLevelChange(permission: SharePermission, level: 'View' | 'Edit' | 'Owner'): Promise<void> {\n return this.OnAccessLevelChange(permission, level);\n }\n\n async OnAddUser(): Promise<void> {\n const email = this.NewUserEmail.trim();\n if (!email) return;\n\n // Simple email validation\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)) {\n await this.dialogService.alert('Invalid Email', 'Please enter a valid email address');\n return;\n }\n\n // Check if user already has access\n if (this.Permissions.some(p => p.userEmail === email)) {\n await this.dialogService.alert('User Already Has Access', 'This user already has access');\n return;\n }\n\n try {\n // Look up user by email\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const userResult = await rv.RunView<MJUserEntity>({\n EntityName: 'MJ: Users',\n ExtraFilter: `Email='${email}'`,\n ResultType: 'entity_object'\n });\n\n if (!userResult.Success || !userResult.Results || userResult.Results.length === 0) {\n await this.dialogService.alert('User Not Found', 'No user found with that email address');\n return;\n }\n\n const user = userResult.Results[0];\n const newPermission: SharePermission = {\n permissionId: null,\n userId: user.ID,\n userEmail: user.Email,\n userName: user.Name,\n permissionLevel: 'View'\n };\n\n await this.savePermission(newPermission);\n this.Permissions.push(newPermission);\n this.NewUserEmail = '';\n this.toastService.success(`Access granted to ${user.Email}`);\n this.cdr.detectChanges();\n } catch (error) {\n console.error('Failed to add user:', error);\n this.toastService.error('Failed to add user');\n }\n }\n\n /** @deprecated Use {@link OnAddUser}. */\n async onAddUser(): Promise<void> {\n return this.OnAddUser();\n }\n\n async OnRemoveUser(permission: SharePermission): Promise<void> {\n const confirmed = await this.dialogService.confirm({\n title: 'Remove Access',\n message: `Remove access for ${permission.userEmail}?`,\n okText: 'Remove',\n cancelText: 'Cancel'\n });\n\n if (!confirmed) return;\n\n try {\n if (permission.permissionId) {\n const md = this.ProviderToUse;\n const permEntity = await md.GetEntityObject<MJResourcePermissionEntity>('MJ: Resource Permissions');\n await permEntity.Load(permission.permissionId);\n\n const deleteResult = await permEntity.Delete();\n if (!deleteResult) {\n throw new Error('Failed to delete permission');\n }\n }\n\n this.Permissions = this.Permissions.filter(p => p.userId !== permission.userId);\n this.toastService.success(`Access removed for ${permission.userEmail}`);\n } catch (error) {\n console.error('Failed to remove user:', error);\n this.toastService.error('Failed to remove user');\n }\n }\n\n /** @deprecated Use {@link OnRemoveUser}. */\n async onRemoveUser(permission: SharePermission): Promise<void> {\n return this.OnRemoveUser(permission);\n }\n\n private async savePermission(permission: SharePermission): Promise<void> {\n try {\n const md = this.ProviderToUse;\n const permEntity = await md.GetEntityObject<MJResourcePermissionEntity>('MJ: Resource Permissions');\n\n if (permission.permissionId) {\n // Update existing permission\n await permEntity.Load(permission.permissionId);\n permEntity.PermissionLevel = permission.permissionLevel;\n } else {\n // Create new permission\n permEntity.ResourceTypeID = this.CONVERSATIONS_RESOURCE_TYPE_ID;\n permEntity.ResourceRecordID = this.Conversation.ID;\n permEntity.Type = 'User';\n permEntity.UserID = permission.userId;\n permEntity.PermissionLevel = permission.permissionLevel;\n permEntity.Status = 'Approved';\n }\n\n const saveResult = await permEntity.Save();\n if (!saveResult) {\n throw new Error('Failed to save permission');\n }\n\n // Update the permission ID if it was a new permission\n if (!permission.permissionId) {\n permission.permissionId = permEntity.ID;\n }\n } catch (error) {\n console.error('Failed to save permission:', error);\n throw error;\n }\n }\n\n async OnTogglePublicLink(): Promise<void> {\n try {\n // Note: Public link functionality uses the conversation ID directly.\n // For enhanced security with unique tokens, password protection, and expiration,\n // future migration should add: PublicAccessToken, PublicAccessPassword, PublicAccessExpiresAt fields\n this.updateShareLink();\n } catch (error) {\n console.error('Failed to toggle public link:', error);\n await this.dialogService.alert('Error', 'Failed to update sharing settings');\n }\n }\n\n /** @deprecated Use {@link OnTogglePublicLink}. */\n async onTogglePublicLink(): Promise<void> {\n return this.OnTogglePublicLink();\n }\n\n private updateShareLink(): void {\n if (this.IsPublicLink && this.Conversation) {\n // Generate shareable link\n const baseUrl = window.location.origin;\n this.ShareLink = `${baseUrl}/chat/${this.Conversation.ID}`;\n } else {\n this.ShareLink = '';\n }\n }\n\n async OnCopyLink(): Promise<void> {\n try {\n await navigator.clipboard.writeText(this.ShareLink);\n this.toastService.success('Link copied to clipboard');\n } catch (err) {\n console.error('Failed to copy link:', err);\n this.toastService.error('Failed to copy link');\n }\n }\n\n /** @deprecated Use {@link OnCopyLink}. */\n async onCopyLink(): Promise<void> {\n return this.OnCopyLink();\n }\n\n OnClose(): void {\n this.Closed.emit();\n }\n\n /** @deprecated Use {@link OnClose}. */\n onClose(): void {\n return this.OnClose();\n }\n}"]}
@@ -11,22 +11,62 @@ export interface UserSearchResult {
11
11
  }
12
12
  export declare class UserPickerComponent extends BaseAngularComponent implements OnInit, OnDestroy {
13
13
  private cdr;
14
- currentUser: UserInfo;
15
- excludeUserIds: string[];
16
- placeholder: string;
14
+ CurrentUser: UserInfo;
15
+ /** @deprecated Use {@link CurrentUser}. */
16
+ set currentUser(value: UserInfo);
17
+ /** @deprecated Use {@link CurrentUser}. */
18
+ get currentUser(): UserInfo;
19
+ ExcludeUserIds: string[];
20
+ /** @deprecated Use {@link ExcludeUserIds}. */
21
+ set excludeUserIds(value: string[]);
22
+ /** @deprecated Use {@link ExcludeUserIds}. */
23
+ get excludeUserIds(): string[];
24
+ Placeholder: string;
25
+ /** @deprecated Use {@link Placeholder}. */
26
+ set placeholder(value: string);
27
+ /** @deprecated Use {@link Placeholder}. */
28
+ get placeholder(): string;
17
29
  constructor(cdr: ChangeDetectorRef);
30
+ UserSelected: EventEmitter<UserSearchResult>;
31
+ /**
32
+ * @deprecated Use {@link UserSelected}.
33
+ *
34
+ * The same emitter under the old binding name, so a template still binding
35
+ * (userSelected) keeps working. Must stay AFTER UserSelected: class fields
36
+ * initialise in order, and the other way round this captures undefined.
37
+ */
18
38
  userSelected: EventEmitter<UserSearchResult>;
19
- searchQuery: string;
20
- searchResults: UserSearchResult[];
21
- isSearching: boolean;
22
- showResults: boolean;
39
+ SearchQuery: string;
40
+ /** @deprecated Use {@link SearchQuery}. */
41
+ get searchQuery(): string;
42
+ /** @deprecated Use {@link SearchQuery}. */
43
+ set searchQuery(value: string);
44
+ SearchResults: UserSearchResult[];
45
+ /** @deprecated Use {@link SearchResults}. */
46
+ get searchResults(): UserSearchResult[];
47
+ /** @deprecated Use {@link SearchResults}. */
48
+ set searchResults(value: UserSearchResult[]);
49
+ IsSearching: boolean;
50
+ /** @deprecated Use {@link IsSearching}. */
51
+ get isSearching(): boolean;
52
+ /** @deprecated Use {@link IsSearching}. */
53
+ set isSearching(value: boolean);
54
+ ShowResults: boolean;
55
+ /** @deprecated Use {@link ShowResults}. */
56
+ get showResults(): boolean;
57
+ /** @deprecated Use {@link ShowResults}. */
58
+ set showResults(value: boolean);
23
59
  ngOnInit(): void;
24
60
  ngOnDestroy(): void;
25
61
  private handleClickOutside;
62
+ OnSearch(): void;
63
+ /** @deprecated Use {@link OnSearch}. */
26
64
  onSearch(): void;
65
+ OnSelectUser(user: UserSearchResult): void;
66
+ /** @deprecated Use {@link OnSelectUser}. */
27
67
  onSelectUser(user: UserSearchResult): void;
28
68
  private performSearch;
29
69
  static ɵfac: i0.ɵɵFactoryDeclaration<UserPickerComponent, never>;
30
- static ɵcmp: i0.ɵɵComponentDeclaration<UserPickerComponent, "mj-user-picker", never, { "currentUser": { "alias": "currentUser"; "required": false; }; "excludeUserIds": { "alias": "excludeUserIds"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; }, { "userSelected": "userSelected"; }, never, never, true, never>;
70
+ static ɵcmp: i0.ɵɵComponentDeclaration<UserPickerComponent, "mj-user-picker", never, { "CurrentUser": { "alias": "CurrentUser"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "ExcludeUserIds": { "alias": "ExcludeUserIds"; "required": false; }; "excludeUserIds": { "alias": "excludeUserIds"; "required": false; }; "Placeholder": { "alias": "Placeholder"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; }, { "UserSelected": "UserSelected"; "userSelected": "userSelected"; }, never, never, true, never>;
31
71
  }
32
72
  //# sourceMappingURL=user-picker.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-picker.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/shared/user-picker.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC7G,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAIrE,OAAO,EAAE,QAAQ,EAAW,MAAM,sBAAsB,CAAC;;AAGzD,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBAyKa,mBAAoB,SAAQ,oBAAqB,YAAW,MAAM,EAAE,SAAS;IAK1E,OAAO,CAAC,GAAG;IAJd,WAAW,EAAG,QAAQ,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAM;IAC9B,WAAW,EAAE,MAAM,CAAwC;gBAEhD,GAAG,EAAE,iBAAiB;IAGhC,YAAY,iCAAwC;IAE9D,WAAW,EAAE,MAAM,CAAM;IACzB,aAAa,EAAE,gBAAgB,EAAE,CAAM;IACvC,WAAW,EAAE,OAAO,CAAS;IAC7B,WAAW,EAAE,OAAO,CAAS;IAE7B,QAAQ,IAAI,IAAI;IAKhB,WAAW,IAAI,IAAI;IAInB,OAAO,CAAC,kBAAkB;IAO1B,QAAQ,IAAI,IAAI;IAShB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;YAO5B,aAAa;yCA/ClB,mBAAmB;2CAAnB,mBAAmB;CAiH/B"}
1
+ {"version":3,"file":"user-picker.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/shared/user-picker.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC7G,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAIrE,OAAO,EAAE,QAAQ,EAAW,MAAM,sBAAsB,CAAC;;AAGzD,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBAyKa,mBAAoB,SAAQ,oBAAqB,YAAW,MAAM,EAAE,SAAS;IAgC1E,OAAO,CAAC,GAAG;IA/Bd,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,EAAE,CAAM;IAEvC,8CAA8C;IAC9C,IAAa,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAE1C;IACD,8CAA8C;IAC9C,IAAI,cAAc,IAAI,MAAM,EAAE,CAE7B;IACQ,WAAW,EAAE,MAAM,CAAwC;IAEpE,2CAA2C;IAC3C,IAAa,WAAW,CAAC,KAAK,EAAE,MAAM,EAErC;IACD,2CAA2C;IAC3C,IAAI,WAAW,IAAI,MAAM,CAExB;gBAEmB,GAAG,EAAE,iBAAiB;IAGhC,YAAY,iCAAwC;IAE9D;;;;;;OAMG;IACO,YAAY,iCAAqB;IAE3C,WAAW,EAAE,MAAM,CAAM;IAEzB,2CAA2C;IAC3C,IAAI,WAAW,IAAI,MAAM,CAExB;IACD,2CAA2C;IAC3C,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAE5B;IACD,aAAa,EAAE,gBAAgB,EAAE,CAAM;IAEvC,6CAA6C;IAC7C,IAAI,aAAa,IAAI,gBAAgB,EAAE,CAEtC;IACD,6CAA6C;IAC7C,IAAI,aAAa,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAE1C;IACD,WAAW,EAAE,OAAO,CAAS;IAE7B,2CAA2C;IAC3C,IAAI,WAAW,IAAI,OAAO,CAEzB;IACD,2CAA2C;IAC3C,IAAI,WAAW,CAAC,KAAK,EAAE,OAAO,EAE7B;IACD,WAAW,EAAE,OAAO,CAAS;IAE7B,2CAA2C;IAC3C,IAAI,WAAW,IAAI,OAAO,CAEzB;IACD,2CAA2C;IAC3C,IAAI,WAAW,CAAC,KAAK,EAAE,OAAO,EAE7B;IAED,QAAQ,IAAI,IAAI;IAKhB,WAAW,IAAI,IAAI;IAInB,OAAO,CAAC,kBAAkB;IAO1B,QAAQ,IAAI,IAAI;IAShB,wCAAwC;IACxC,QAAQ,IAAI,IAAI;IAIhB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAO1C,4CAA4C;IAC5C,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;YAI5B,aAAa;yCAjIlB,mBAAmB;2CAAnB,mBAAmB;CAmM/B"}