@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
@@ -83,35 +83,91 @@ function LibraryFullViewComponent_Conditional_17_Template(rf, ctx) { if (rf & 1)
83
83
  * Replaces the main content area when Collections tab is selected
84
84
  */
85
85
  export class LibraryFullViewComponent extends BaseAngularComponent {
86
- environmentId;
87
- currentUser;
88
- collections = [];
89
- filteredCollections = [];
90
- searchQuery = '';
86
+ EnvironmentId;
87
+ /** @deprecated Use {@link EnvironmentId}. */
88
+ set environmentId(value) {
89
+ this.EnvironmentId = value;
90
+ }
91
+ /** @deprecated Use {@link EnvironmentId}. */
92
+ get environmentId() {
93
+ return this.EnvironmentId;
94
+ }
95
+ CurrentUser;
96
+ /** @deprecated Use {@link CurrentUser}. */
97
+ set currentUser(value) {
98
+ this.CurrentUser = value;
99
+ }
100
+ /** @deprecated Use {@link CurrentUser}. */
101
+ get currentUser() {
102
+ return this.CurrentUser;
103
+ }
104
+ Collections = [];
105
+ /** @deprecated Use {@link Collections}. */
106
+ get collections() {
107
+ return this.Collections;
108
+ }
109
+ /** @deprecated Use {@link Collections}. */
110
+ set collections(value) {
111
+ this.Collections = value;
112
+ }
113
+ FilteredCollections = [];
114
+ /** @deprecated Use {@link FilteredCollections}. */
115
+ get filteredCollections() {
116
+ return this.FilteredCollections;
117
+ }
118
+ /** @deprecated Use {@link FilteredCollections}. */
119
+ set filteredCollections(value) {
120
+ this.FilteredCollections = value;
121
+ }
122
+ SearchQuery = '';
123
+ /** @deprecated Use {@link SearchQuery}. */
124
+ get searchQuery() {
125
+ return this.SearchQuery;
126
+ }
127
+ /** @deprecated Use {@link SearchQuery}. */
128
+ set searchQuery(value) {
129
+ this.SearchQuery = value;
130
+ }
91
131
  isLoading = false;
92
- breadcrumbs = [];
93
- currentCollectionId = null;
132
+ Breadcrumbs = [];
133
+ /** @deprecated Use {@link Breadcrumbs}. */
134
+ get breadcrumbs() {
135
+ return this.Breadcrumbs;
136
+ }
137
+ /** @deprecated Use {@link Breadcrumbs}. */
138
+ set breadcrumbs(value) {
139
+ this.Breadcrumbs = value;
140
+ }
141
+ CurrentCollectionId = null;
142
+ /** @deprecated Use {@link CurrentCollectionId}. */
143
+ get currentCollectionId() {
144
+ return this.CurrentCollectionId;
145
+ }
146
+ /** @deprecated Use {@link CurrentCollectionId}. */
147
+ set currentCollectionId(value) {
148
+ this.CurrentCollectionId = value;
149
+ }
94
150
  constructor() {
95
151
  super();
96
152
  }
97
153
  ngOnInit() {
98
- this.loadCollections();
154
+ this.LoadCollections();
99
155
  }
100
- async loadCollections() {
156
+ async LoadCollections() {
101
157
  this.isLoading = true;
102
158
  try {
103
159
  const rv = RunView.FromMetadataProvider(this.ProviderToUse);
104
- const filter = `EnvironmentID='${this.environmentId}'` +
105
- (this.currentCollectionId ? ` AND ParentID='${this.currentCollectionId}'` : ' AND ParentID IS NULL');
160
+ const filter = `EnvironmentID='${this.EnvironmentId}'` +
161
+ (this.CurrentCollectionId ? ` AND ParentID='${this.CurrentCollectionId}'` : ' AND ParentID IS NULL');
106
162
  const result = await rv.RunView({
107
163
  EntityName: 'MJ: Collections',
108
164
  ExtraFilter: filter,
109
165
  OrderBy: 'Name ASC',
110
166
  MaxRows: 1000,
111
167
  ResultType: 'entity_object'
112
- }, this.currentUser);
168
+ }, this.CurrentUser);
113
169
  if (result.Success) {
114
- this.collections = result.Results || [];
170
+ this.Collections = result.Results || [];
115
171
  this.applySearch();
116
172
  }
117
173
  }
@@ -122,45 +178,69 @@ export class LibraryFullViewComponent extends BaseAngularComponent {
122
178
  this.isLoading = false;
123
179
  }
124
180
  }
125
- onSearchChange(query) {
181
+ /** @deprecated Use {@link LoadCollections}. */
182
+ async loadCollections() {
183
+ return this.LoadCollections();
184
+ }
185
+ OnSearchChange(query) {
126
186
  this.applySearch();
127
187
  }
188
+ /** @deprecated Use {@link OnSearchChange}. */
189
+ onSearchChange(query) {
190
+ return this.OnSearchChange(query);
191
+ }
128
192
  applySearch() {
129
- if (!this.searchQuery.trim()) {
130
- this.filteredCollections = [...this.collections];
193
+ if (!this.SearchQuery.trim()) {
194
+ this.FilteredCollections = [...this.Collections];
131
195
  }
132
196
  else {
133
- const query = this.searchQuery.toLowerCase();
134
- this.filteredCollections = this.collections.filter(c => c.Name.toLowerCase().includes(query) ||
197
+ const query = this.SearchQuery.toLowerCase();
198
+ this.FilteredCollections = this.Collections.filter(c => c.Name.toLowerCase().includes(query) ||
135
199
  (c.Description && c.Description.toLowerCase().includes(query)));
136
200
  }
137
201
  }
202
+ OpenCollection(collection) {
203
+ this.Breadcrumbs.push({ id: collection.ID, name: collection.Name });
204
+ this.CurrentCollectionId = collection.ID;
205
+ this.SearchQuery = '';
206
+ this.LoadCollections();
207
+ }
208
+ /** @deprecated Use {@link OpenCollection}. */
138
209
  openCollection(collection) {
139
- this.breadcrumbs.push({ id: collection.ID, name: collection.Name });
140
- this.currentCollectionId = collection.ID;
141
- this.searchQuery = '';
142
- this.loadCollections();
210
+ return this.OpenCollection(collection);
143
211
  }
144
- navigateTo(crumb) {
145
- const index = this.breadcrumbs.findIndex(b => b.id === crumb.id);
212
+ NavigateTo(crumb) {
213
+ const index = this.Breadcrumbs.findIndex(b => b.id === crumb.id);
146
214
  if (index !== -1) {
147
- this.breadcrumbs = this.breadcrumbs.slice(0, index + 1);
148
- this.currentCollectionId = crumb.id;
149
- this.searchQuery = '';
150
- this.loadCollections();
215
+ this.Breadcrumbs = this.Breadcrumbs.slice(0, index + 1);
216
+ this.CurrentCollectionId = crumb.id;
217
+ this.SearchQuery = '';
218
+ this.LoadCollections();
151
219
  }
152
220
  }
221
+ /** @deprecated Use {@link NavigateTo}. */
222
+ navigateTo(crumb) {
223
+ return this.NavigateTo(crumb);
224
+ }
225
+ NavigateToRoot() {
226
+ this.Breadcrumbs = [];
227
+ this.CurrentCollectionId = null;
228
+ this.SearchQuery = '';
229
+ this.LoadCollections();
230
+ }
231
+ /** @deprecated Use {@link NavigateToRoot}. */
153
232
  navigateToRoot() {
154
- this.breadcrumbs = [];
155
- this.currentCollectionId = null;
156
- this.searchQuery = '';
157
- this.loadCollections();
233
+ return this.NavigateToRoot();
158
234
  }
235
+ Refresh() {
236
+ this.LoadCollections();
237
+ }
238
+ /** @deprecated Use {@link Refresh}. */
159
239
  refresh() {
160
- this.loadCollections();
240
+ return this.Refresh();
161
241
  }
162
242
  static ɵfac = function LibraryFullViewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LibraryFullViewComponent)(); };
163
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LibraryFullViewComponent, selectors: [["mj-library-full-view"]], inputs: { environmentId: "environmentId", currentUser: "currentUser" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 18, vars: 5, consts: [[1, "collections-view"], [1, "collections-header"], [1, "collections-breadcrumb"], [1, "breadcrumb-item"], [1, "fas", "fa-home"], [1, "breadcrumb-link", 3, "click"], [1, "breadcrumb-path"], [1, "collections-search"], [1, "fas", "fa-search"], ["type", "text", "placeholder", "Search collections and artifacts...", 1, "library-search-input", 3, "ngModelChange", "ngModel"], [1, "collections-actions"], ["title", "Refresh", 1, "btn-secondary", 3, "click"], [1, "fas", "fa-sync"], [1, "collections-content"], [1, "loading-state"], ["Icon", "fa-solid fa-folder-open", 3, "Variant", "Title"], [1, "library-folders"], [1, "fas", "fa-chevron-right", "breadcrumb-separator"], ["text", "Loading collections...", "size", "large"], [1, "library-folder"], [1, "library-folder", 3, "click"], [1, "folder-icon"], [1, "fas", "fa-folder"], [1, "folder-info"], [1, "folder-name"], [1, "folder-meta"]], template: function LibraryFullViewComponent_Template(rf, ctx) { if (rf & 1) {
243
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LibraryFullViewComponent, selectors: [["mj-library-full-view"]], inputs: { EnvironmentId: "EnvironmentId", environmentId: "environmentId", CurrentUser: "CurrentUser", currentUser: "currentUser" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 18, vars: 5, consts: [[1, "collections-view"], [1, "collections-header"], [1, "collections-breadcrumb"], [1, "breadcrumb-item"], [1, "fas", "fa-home"], [1, "breadcrumb-link", 3, "click"], [1, "breadcrumb-path"], [1, "collections-search"], [1, "fas", "fa-search"], ["type", "text", "placeholder", "Search collections and artifacts...", 1, "library-search-input", 3, "ngModelChange", "ngModel"], [1, "collections-actions"], ["title", "Refresh", 1, "btn-secondary", 3, "click"], [1, "fas", "fa-sync"], [1, "collections-content"], [1, "loading-state"], ["Icon", "fa-solid fa-folder-open", 3, "Variant", "Title"], [1, "library-folders"], [1, "fas", "fa-chevron-right", "breadcrumb-separator"], ["text", "Loading collections...", "size", "large"], [1, "library-folder"], [1, "library-folder", 3, "click"], [1, "folder-icon"], [1, "fas", "fa-folder"], [1, "folder-info"], [1, "folder-name"], [1, "folder-meta"]], template: function LibraryFullViewComponent_Template(rf, ctx) { if (rf & 1) {
164
244
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3);
165
245
  i0.ɵɵelement(4, "i", 4);
166
246
  i0.ɵɵelementStart(5, "a", 5);
@@ -270,7 +350,11 @@ export class LibraryFullViewComponent extends BaseAngularComponent {
270
350
  </div>
271
351
  </div>
272
352
  `, styles: ["\n .collections-view {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: white;\n }\n\n .collections-header {\n display: flex;\n align-items: center;\n padding: 16px 24px;\n border-bottom: 1px solid #E5E7EB;\n gap: 16px;\n }\n\n .collections-breadcrumb {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n min-width: 0;\n }\n\n .breadcrumb-item {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .breadcrumb-item i {\n color: #6B7280;\n font-size: 14px;\n }\n\n .breadcrumb-link {\n color: #111827;\n font-weight: 500;\n cursor: pointer;\n text-decoration: none;\n white-space: nowrap;\n transition: color 150ms ease;\n }\n\n .breadcrumb-link:hover {\n color: #1e40af;\n }\n\n .breadcrumb-link.active {\n color: #6B7280;\n cursor: default;\n }\n\n .breadcrumb-path {\n display: flex;\n align-items: center;\n gap: 8px;\n overflow-x: auto;\n }\n\n .breadcrumb-separator {\n color: #D1D5DB;\n font-size: 10px;\n }\n\n .collections-search {\n display: flex;\n align-items: center;\n gap: 8px;\n background: #F9FAFB;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n padding: 8px 12px;\n min-width: 300px;\n }\n\n .collections-search i {\n color: #9CA3AF;\n font-size: 14px;\n }\n\n .library-search-input {\n border: none;\n background: transparent;\n outline: none;\n font-size: 14px;\n flex: 1;\n color: #111827;\n }\n\n .library-search-input::placeholder {\n color: #9CA3AF;\n }\n\n .collections-actions {\n display: flex;\n gap: 8px;\n }\n\n .btn-secondary {\n padding: 8px 12px;\n background: transparent;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n cursor: pointer;\n color: #6B7280;\n transition: all 150ms ease;\n }\n\n .btn-secondary:hover {\n background: #F9FAFB;\n color: #111827;\n }\n\n .collections-content {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n }\n\n .loading-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #9CA3AF;\n }\n\n .collections-content mj-empty-state {\n height: 100%;\n }\n\n .library-folders {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n gap: 16px;\n }\n\n .library-folder {\n display: flex;\n align-items: start;\n gap: 16px;\n padding: 20px;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n cursor: pointer;\n transition: all 150ms ease;\n }\n\n .library-folder:hover {\n border-color: #1e40af;\n box-shadow: 0 2px 8px rgba(0,0,0,0.08);\n }\n\n .folder-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #EFF6FF;\n border-radius: 8px;\n flex-shrink: 0;\n }\n\n .folder-icon i {\n font-size: 20px;\n color: #1e40af;\n }\n\n .folder-info {\n flex: 1;\n min-width: 0;\n }\n\n .folder-name {\n font-size: 15px;\n font-weight: 500;\n color: #111827;\n margin-bottom: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .folder-meta {\n font-size: 13px;\n color: #6B7280;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n "] }]
273
- }], () => [], { environmentId: [{
353
+ }], () => [], { EnvironmentId: [{
354
+ type: Input
355
+ }], environmentId: [{
356
+ type: Input
357
+ }], CurrentUser: [{
274
358
  type: Input
275
359
  }], currentUser: [{
276
360
  type: Input
@@ -1 +1 @@
1
- {"version":3,"file":"library-full-view.component.js","sourceRoot":"","sources":["../../../../src/lib/components/library/library-full-view.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { UserInfo, RunView } from '@memberjunction/core';\nimport { MJCollectionEntity } from '@memberjunction/core-entities';\n\n/**\n * Full-panel Collections view component\n * Replaces the main content area when Collections tab is selected\n */\n@Component({\n standalone: false,\n selector: 'mj-library-full-view',\n template: `\n <div class=\"collections-view\">\n <div class=\"collections-header\">\n <div class=\"collections-breadcrumb\">\n <div class=\"breadcrumb-item\">\n <i class=\"fas fa-home\"></i>\n <a class=\"breadcrumb-link\" (click)=\"navigateToRoot()\">Collections</a>\n </div>\n @if (breadcrumbs.length > 0) {\n <span class=\"breadcrumb-path\">\n @for (crumb of breadcrumbs; track crumb; let last = $last) {\n <i class=\"fas fa-chevron-right breadcrumb-separator\"></i>\n <a class=\"breadcrumb-link\"\n [class.active]=\"last\"\n (click)=\"navigateTo(crumb)\">\n {{ crumb.name }}\n </a>\n }\n </span>\n }\n </div>\n <div class=\"collections-search\">\n <i class=\"fas fa-search\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchQuery\"\n (ngModelChange)=\"onSearchChange($event)\"\n placeholder=\"Search collections and artifacts...\"\n class=\"library-search-input\">\n </div>\n <div class=\"collections-actions\">\n <button class=\"btn-secondary\" (click)=\"refresh()\" title=\"Refresh\">\n <i class=\"fas fa-sync\"></i>\n </button>\n </div>\n </div>\n <div class=\"collections-content\">\n @if (isLoading) {\n <div class=\"loading-state\">\n <mj-loading text=\"Loading collections...\" size=\"large\"></mj-loading>\n </div>\n }\n @if (!isLoading && filteredCollections.length === 0) {\n <mj-empty-state\n [Variant]=\"searchQuery ? 'no-results' : 'empty'\"\n Icon=\"fa-solid fa-folder-open\"\n [Title]=\"searchQuery ? 'No collections found' : 'No collections yet'\" />\n }\n @if (!isLoading && filteredCollections.length > 0) {\n <div class=\"library-folders\">\n @for (collection of filteredCollections; track collection) {\n <div\n class=\"library-folder\"\n (click)=\"openCollection(collection)\">\n <div class=\"folder-icon\">\n <i class=\"fas fa-folder\"></i>\n </div>\n <div class=\"folder-info\">\n <div class=\"folder-name\">{{ collection.Name }}</div>\n @if (collection.Description) {\n <div class=\"folder-meta\">\n {{ collection.Description }}\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n </div>\n </div>\n `,\n styles: [`\n .collections-view {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: white;\n }\n\n .collections-header {\n display: flex;\n align-items: center;\n padding: 16px 24px;\n border-bottom: 1px solid #E5E7EB;\n gap: 16px;\n }\n\n .collections-breadcrumb {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n min-width: 0;\n }\n\n .breadcrumb-item {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .breadcrumb-item i {\n color: #6B7280;\n font-size: 14px;\n }\n\n .breadcrumb-link {\n color: #111827;\n font-weight: 500;\n cursor: pointer;\n text-decoration: none;\n white-space: nowrap;\n transition: color 150ms ease;\n }\n\n .breadcrumb-link:hover {\n color: #1e40af;\n }\n\n .breadcrumb-link.active {\n color: #6B7280;\n cursor: default;\n }\n\n .breadcrumb-path {\n display: flex;\n align-items: center;\n gap: 8px;\n overflow-x: auto;\n }\n\n .breadcrumb-separator {\n color: #D1D5DB;\n font-size: 10px;\n }\n\n .collections-search {\n display: flex;\n align-items: center;\n gap: 8px;\n background: #F9FAFB;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n padding: 8px 12px;\n min-width: 300px;\n }\n\n .collections-search i {\n color: #9CA3AF;\n font-size: 14px;\n }\n\n .library-search-input {\n border: none;\n background: transparent;\n outline: none;\n font-size: 14px;\n flex: 1;\n color: #111827;\n }\n\n .library-search-input::placeholder {\n color: #9CA3AF;\n }\n\n .collections-actions {\n display: flex;\n gap: 8px;\n }\n\n .btn-secondary {\n padding: 8px 12px;\n background: transparent;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n cursor: pointer;\n color: #6B7280;\n transition: all 150ms ease;\n }\n\n .btn-secondary:hover {\n background: #F9FAFB;\n color: #111827;\n }\n\n .collections-content {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n }\n\n .loading-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #9CA3AF;\n }\n\n .collections-content mj-empty-state {\n height: 100%;\n }\n\n .library-folders {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n gap: 16px;\n }\n\n .library-folder {\n display: flex;\n align-items: start;\n gap: 16px;\n padding: 20px;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n cursor: pointer;\n transition: all 150ms ease;\n }\n\n .library-folder:hover {\n border-color: #1e40af;\n box-shadow: 0 2px 8px rgba(0,0,0,0.08);\n }\n\n .folder-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #EFF6FF;\n border-radius: 8px;\n flex-shrink: 0;\n }\n\n .folder-icon i {\n font-size: 20px;\n color: #1e40af;\n }\n\n .folder-info {\n flex: 1;\n min-width: 0;\n }\n\n .folder-name {\n font-size: 15px;\n font-weight: 500;\n color: #111827;\n margin-bottom: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .folder-meta {\n font-size: 13px;\n color: #6B7280;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n `]\n})\nexport class LibraryFullViewComponent extends BaseAngularComponent implements OnInit {\n @Input() environmentId!: string;\n @Input() currentUser!: UserInfo;\n\n public collections: MJCollectionEntity[] = [];\n public filteredCollections: MJCollectionEntity[] = [];\n public searchQuery: string = '';\n public isLoading: boolean = false;\n public breadcrumbs: Array<{ id: string; name: string }> = [];\n public currentCollectionId: string | null = null;\n\n constructor() {\n super();}\n\n ngOnInit() {\n this.loadCollections();\n }\n\n async loadCollections(): Promise<void> {\n this.isLoading = true;\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const filter = `EnvironmentID='${this.environmentId}'` +\n (this.currentCollectionId ? ` AND ParentID='${this.currentCollectionId}'` : ' AND ParentID IS NULL');\n\n const result = await rv.RunView<MJCollectionEntity>(\n {\n EntityName: 'MJ: Collections',\n ExtraFilter: filter,\n OrderBy: 'Name ASC',\n MaxRows: 1000,\n ResultType: 'entity_object'\n },\n this.currentUser\n );\n\n if (result.Success) {\n this.collections = result.Results || [];\n this.applySearch();\n }\n } catch (error) {\n console.error('Failed to load collections:', error);\n } finally {\n this.isLoading = false;\n }\n }\n\n onSearchChange(query: string): void {\n this.applySearch();\n }\n\n private applySearch(): void {\n if (!this.searchQuery.trim()) {\n this.filteredCollections = [...this.collections];\n } else {\n const query = this.searchQuery.toLowerCase();\n this.filteredCollections = this.collections.filter(c =>\n c.Name.toLowerCase().includes(query) ||\n (c.Description && c.Description.toLowerCase().includes(query))\n );\n }\n }\n\n openCollection(collection: MJCollectionEntity): void {\n this.breadcrumbs.push({ id: collection.ID, name: collection.Name });\n this.currentCollectionId = collection.ID;\n this.searchQuery = '';\n this.loadCollections();\n }\n\n navigateTo(crumb: { id: string; name: string }): void {\n const index = this.breadcrumbs.findIndex(b => b.id === crumb.id);\n if (index !== -1) {\n this.breadcrumbs = this.breadcrumbs.slice(0, index + 1);\n this.currentCollectionId = crumb.id;\n this.searchQuery = '';\n this.loadCollections();\n }\n }\n\n navigateToRoot(): void {\n this.breadcrumbs = [];\n this.currentCollectionId = null;\n this.searchQuery = '';\n this.loadCollections();\n }\n\n refresh(): void {\n this.loadCollections();\n }\n}\n"]}
1
+ {"version":3,"file":"library-full-view.component.js","sourceRoot":"","sources":["../../../../src/lib/components/library/library-full-view.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { UserInfo, RunView } from '@memberjunction/core';\nimport { MJCollectionEntity } from '@memberjunction/core-entities';\n\n/**\n * Full-panel Collections view component\n * Replaces the main content area when Collections tab is selected\n */\n@Component({\n standalone: false,\n selector: 'mj-library-full-view',\n template: `\n <div class=\"collections-view\">\n <div class=\"collections-header\">\n <div class=\"collections-breadcrumb\">\n <div class=\"breadcrumb-item\">\n <i class=\"fas fa-home\"></i>\n <a class=\"breadcrumb-link\" (click)=\"navigateToRoot()\">Collections</a>\n </div>\n @if (breadcrumbs.length > 0) {\n <span class=\"breadcrumb-path\">\n @for (crumb of breadcrumbs; track crumb; let last = $last) {\n <i class=\"fas fa-chevron-right breadcrumb-separator\"></i>\n <a class=\"breadcrumb-link\"\n [class.active]=\"last\"\n (click)=\"navigateTo(crumb)\">\n {{ crumb.name }}\n </a>\n }\n </span>\n }\n </div>\n <div class=\"collections-search\">\n <i class=\"fas fa-search\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchQuery\"\n (ngModelChange)=\"onSearchChange($event)\"\n placeholder=\"Search collections and artifacts...\"\n class=\"library-search-input\">\n </div>\n <div class=\"collections-actions\">\n <button class=\"btn-secondary\" (click)=\"refresh()\" title=\"Refresh\">\n <i class=\"fas fa-sync\"></i>\n </button>\n </div>\n </div>\n <div class=\"collections-content\">\n @if (isLoading) {\n <div class=\"loading-state\">\n <mj-loading text=\"Loading collections...\" size=\"large\"></mj-loading>\n </div>\n }\n @if (!isLoading && filteredCollections.length === 0) {\n <mj-empty-state\n [Variant]=\"searchQuery ? 'no-results' : 'empty'\"\n Icon=\"fa-solid fa-folder-open\"\n [Title]=\"searchQuery ? 'No collections found' : 'No collections yet'\" />\n }\n @if (!isLoading && filteredCollections.length > 0) {\n <div class=\"library-folders\">\n @for (collection of filteredCollections; track collection) {\n <div\n class=\"library-folder\"\n (click)=\"openCollection(collection)\">\n <div class=\"folder-icon\">\n <i class=\"fas fa-folder\"></i>\n </div>\n <div class=\"folder-info\">\n <div class=\"folder-name\">{{ collection.Name }}</div>\n @if (collection.Description) {\n <div class=\"folder-meta\">\n {{ collection.Description }}\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n </div>\n </div>\n `,\n styles: [`\n .collections-view {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: white;\n }\n\n .collections-header {\n display: flex;\n align-items: center;\n padding: 16px 24px;\n border-bottom: 1px solid #E5E7EB;\n gap: 16px;\n }\n\n .collections-breadcrumb {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n min-width: 0;\n }\n\n .breadcrumb-item {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .breadcrumb-item i {\n color: #6B7280;\n font-size: 14px;\n }\n\n .breadcrumb-link {\n color: #111827;\n font-weight: 500;\n cursor: pointer;\n text-decoration: none;\n white-space: nowrap;\n transition: color 150ms ease;\n }\n\n .breadcrumb-link:hover {\n color: #1e40af;\n }\n\n .breadcrumb-link.active {\n color: #6B7280;\n cursor: default;\n }\n\n .breadcrumb-path {\n display: flex;\n align-items: center;\n gap: 8px;\n overflow-x: auto;\n }\n\n .breadcrumb-separator {\n color: #D1D5DB;\n font-size: 10px;\n }\n\n .collections-search {\n display: flex;\n align-items: center;\n gap: 8px;\n background: #F9FAFB;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n padding: 8px 12px;\n min-width: 300px;\n }\n\n .collections-search i {\n color: #9CA3AF;\n font-size: 14px;\n }\n\n .library-search-input {\n border: none;\n background: transparent;\n outline: none;\n font-size: 14px;\n flex: 1;\n color: #111827;\n }\n\n .library-search-input::placeholder {\n color: #9CA3AF;\n }\n\n .collections-actions {\n display: flex;\n gap: 8px;\n }\n\n .btn-secondary {\n padding: 8px 12px;\n background: transparent;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n cursor: pointer;\n color: #6B7280;\n transition: all 150ms ease;\n }\n\n .btn-secondary:hover {\n background: #F9FAFB;\n color: #111827;\n }\n\n .collections-content {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n }\n\n .loading-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #9CA3AF;\n }\n\n .collections-content mj-empty-state {\n height: 100%;\n }\n\n .library-folders {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n gap: 16px;\n }\n\n .library-folder {\n display: flex;\n align-items: start;\n gap: 16px;\n padding: 20px;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n cursor: pointer;\n transition: all 150ms ease;\n }\n\n .library-folder:hover {\n border-color: #1e40af;\n box-shadow: 0 2px 8px rgba(0,0,0,0.08);\n }\n\n .folder-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #EFF6FF;\n border-radius: 8px;\n flex-shrink: 0;\n }\n\n .folder-icon i {\n font-size: 20px;\n color: #1e40af;\n }\n\n .folder-info {\n flex: 1;\n min-width: 0;\n }\n\n .folder-name {\n font-size: 15px;\n font-weight: 500;\n color: #111827;\n margin-bottom: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .folder-meta {\n font-size: 13px;\n color: #6B7280;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n `]\n})\nexport class LibraryFullViewComponent extends BaseAngularComponent implements OnInit {\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\n public Collections: MJCollectionEntity[] = [];\n\n /** @deprecated Use {@link Collections}. */\n public get collections(): MJCollectionEntity[] {\n return this.Collections;\n }\n /** @deprecated Use {@link Collections}. */\n public set collections(value: MJCollectionEntity[]) {\n this.Collections = value;\n }\n public FilteredCollections: MJCollectionEntity[] = [];\n\n /** @deprecated Use {@link FilteredCollections}. */\n public get filteredCollections(): MJCollectionEntity[] {\n return this.FilteredCollections;\n }\n /** @deprecated Use {@link FilteredCollections}. */\n public set filteredCollections(value: MJCollectionEntity[]) {\n this.FilteredCollections = value;\n }\n public SearchQuery: string = '';\n\n /** @deprecated Use {@link SearchQuery}. */\n public get searchQuery(): string {\n return this.SearchQuery;\n }\n /** @deprecated Use {@link SearchQuery}. */\n public set searchQuery(value: string) {\n this.SearchQuery = value;\n }\n public isLoading: boolean = false;\n public Breadcrumbs: Array<{ id: string; name: string }> = [];\n\n /** @deprecated Use {@link Breadcrumbs}. */\n public get breadcrumbs(): Array<{ id: string; name: string }> {\n return this.Breadcrumbs;\n }\n /** @deprecated Use {@link Breadcrumbs}. */\n public set breadcrumbs(value: Array<{ id: string; name: string }>) {\n this.Breadcrumbs = value;\n }\n public CurrentCollectionId: string | null = null;\n\n /** @deprecated Use {@link CurrentCollectionId}. */\n public get currentCollectionId(): string | null {\n return this.CurrentCollectionId;\n }\n /** @deprecated Use {@link CurrentCollectionId}. */\n public set currentCollectionId(value: string | null) {\n this.CurrentCollectionId = value;\n }\n\n constructor() {\n super();}\n\n ngOnInit() {\n this.LoadCollections();\n }\n\n async LoadCollections(): Promise<void> {\n this.isLoading = true;\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const filter = `EnvironmentID='${this.EnvironmentId}'` +\n (this.CurrentCollectionId ? ` AND ParentID='${this.CurrentCollectionId}'` : ' AND ParentID IS NULL');\n\n const result = await rv.RunView<MJCollectionEntity>(\n {\n EntityName: 'MJ: Collections',\n ExtraFilter: filter,\n OrderBy: 'Name ASC',\n MaxRows: 1000,\n ResultType: 'entity_object'\n },\n this.CurrentUser\n );\n\n if (result.Success) {\n this.Collections = result.Results || [];\n this.applySearch();\n }\n } catch (error) {\n console.error('Failed to load collections:', error);\n } finally {\n this.isLoading = false;\n }\n }\n\n /** @deprecated Use {@link LoadCollections}. */\n async loadCollections(): Promise<void> {\n return this.LoadCollections();\n }\n\n OnSearchChange(query: string): void {\n this.applySearch();\n }\n\n /** @deprecated Use {@link OnSearchChange}. */\n onSearchChange(query: string): void {\n return this.OnSearchChange(query);\n }\n\n private applySearch(): void {\n if (!this.SearchQuery.trim()) {\n this.FilteredCollections = [...this.Collections];\n } else {\n const query = this.SearchQuery.toLowerCase();\n this.FilteredCollections = this.Collections.filter(c =>\n c.Name.toLowerCase().includes(query) ||\n (c.Description && c.Description.toLowerCase().includes(query))\n );\n }\n }\n\n OpenCollection(collection: MJCollectionEntity): void {\n this.Breadcrumbs.push({ id: collection.ID, name: collection.Name });\n this.CurrentCollectionId = collection.ID;\n this.SearchQuery = '';\n this.LoadCollections();\n }\n\n /** @deprecated Use {@link OpenCollection}. */\n openCollection(collection: MJCollectionEntity): void {\n return this.OpenCollection(collection);\n }\n\n NavigateTo(crumb: { id: string; name: string }): void {\n const index = this.Breadcrumbs.findIndex(b => b.id === crumb.id);\n if (index !== -1) {\n this.Breadcrumbs = this.Breadcrumbs.slice(0, index + 1);\n this.CurrentCollectionId = crumb.id;\n this.SearchQuery = '';\n this.LoadCollections();\n }\n }\n\n /** @deprecated Use {@link NavigateTo}. */\n navigateTo(crumb: { id: string; name: string }): void {\n return this.NavigateTo(crumb);\n }\n\n NavigateToRoot(): void {\n this.Breadcrumbs = [];\n this.CurrentCollectionId = null;\n this.SearchQuery = '';\n this.LoadCollections();\n }\n\n /** @deprecated Use {@link NavigateToRoot}. */\n navigateToRoot(): void {\n return this.NavigateToRoot();\n }\n\n Refresh(): void {\n this.LoadCollections();\n }\n\n /** @deprecated Use {@link Refresh}. */\n refresh(): void {\n return this.Refresh();\n }\n}\n"]}
@@ -13,30 +13,96 @@ interface ConversationMember {
13
13
  }
14
14
  export declare class MembersModalComponent {
15
15
  private dialogService;
16
- isVisible: boolean;
17
- conversation?: MJConversationEntity;
18
- currentUser: UserInfo;
16
+ IsVisible: boolean;
17
+ /** @deprecated Use {@link IsVisible}. */
18
+ set isVisible(value: MembersModalComponent['IsVisible']);
19
+ /** @deprecated Use {@link IsVisible}. */
20
+ get isVisible(): MembersModalComponent['IsVisible'];
21
+ Conversation?: MJConversationEntity;
22
+ /** @deprecated Use {@link Conversation}. */
23
+ set conversation(value: MJConversationEntity | undefined);
24
+ /** @deprecated Use {@link Conversation}. */
25
+ get conversation(): MJConversationEntity | undefined;
26
+ CurrentUser: UserInfo;
27
+ /** @deprecated Use {@link CurrentUser}. */
28
+ set currentUser(value: UserInfo);
29
+ /** @deprecated Use {@link CurrentUser}. */
30
+ get currentUser(): UserInfo;
31
+ Cancelled: EventEmitter<void>;
32
+ /**
33
+ * @deprecated Use {@link Cancelled}.
34
+ *
35
+ * The same emitter under the old binding name, so a template still binding
36
+ * (cancelled) keeps working. Must stay AFTER Cancelled: class fields
37
+ * initialise in order, and the other way round this captures undefined.
38
+ */
19
39
  cancelled: EventEmitter<void>;
40
+ MembersChanged: EventEmitter<void>;
41
+ /**
42
+ * @deprecated Use {@link MembersChanged}.
43
+ *
44
+ * The same emitter under the old binding name, so a template still binding
45
+ * (membersChanged) keeps working. Must stay AFTER MembersChanged: class fields
46
+ * initialise in order, and the other way round this captures undefined.
47
+ */
20
48
  membersChanged: EventEmitter<void>;
21
- members: ConversationMember[];
22
- newMemberEmail: string;
23
- newMemberRole: 'member' | 'owner';
24
- isLoading: boolean;
25
- errorMessage: string;
49
+ Members: ConversationMember[];
50
+ /** @deprecated Use {@link Members}. */
51
+ get members(): ConversationMember[];
52
+ /** @deprecated Use {@link Members}. */
53
+ set members(value: ConversationMember[]);
54
+ NewMemberEmail: string;
55
+ /** @deprecated Use {@link NewMemberEmail}. */
56
+ get newMemberEmail(): string;
57
+ /** @deprecated Use {@link NewMemberEmail}. */
58
+ set newMemberEmail(value: string);
59
+ NewMemberRole: 'member' | 'owner';
60
+ /** @deprecated Use {@link NewMemberRole}. */
61
+ get newMemberRole(): 'member' | 'owner';
62
+ /** @deprecated Use {@link NewMemberRole}. */
63
+ set newMemberRole(value: 'member' | 'owner');
64
+ IsLoading: boolean;
65
+ /** @deprecated Use {@link IsLoading}. */
66
+ get isLoading(): boolean;
67
+ /** @deprecated Use {@link IsLoading}. */
68
+ set isLoading(value: boolean);
69
+ ErrorMessage: string;
70
+ /** @deprecated Use {@link ErrorMessage}. */
71
+ get errorMessage(): string;
72
+ /** @deprecated Use {@link ErrorMessage}. */
73
+ set errorMessage(value: string);
74
+ get ModalTitle(): string;
75
+ /** @deprecated Use {@link ModalTitle}. */
26
76
  get modalTitle(): string;
27
- roleOptions: {
77
+ RoleOptions: {
28
78
  value: string;
29
79
  label: string;
30
80
  }[];
81
+ /** @deprecated Use {@link RoleOptions}. */
82
+ get roleOptions(): {
83
+ value: string;
84
+ label: string;
85
+ }[];
86
+ /** @deprecated Use {@link RoleOptions}. */
87
+ set roleOptions(value: {
88
+ value: string;
89
+ label: string;
90
+ }[]);
31
91
  constructor(dialogService: DialogService);
32
92
  ngOnChanges(): void;
33
93
  private loadMembers;
94
+ OnAddMember(): Promise<void>;
95
+ /** @deprecated Use {@link OnAddMember}. */
34
96
  onAddMember(): Promise<void>;
97
+ OnRemoveMember(member: ConversationMember): Promise<void>;
98
+ /** @deprecated Use {@link OnRemoveMember}. */
35
99
  onRemoveMember(member: ConversationMember): Promise<void>;
100
+ OnCancel(): void;
101
+ /** @deprecated Use {@link OnCancel}. */
36
102
  onCancel(): void;
37
103
  private resetForm;
38
104
  static ɵfac: i0.ɵɵFactoryDeclaration<MembersModalComponent, never>;
39
- static ɵcmp: i0.ɵɵComponentDeclaration<MembersModalComponent, "mj-members-modal", never, { "isVisible": { "alias": "isVisible"; "required": false; }; "conversation": { "alias": "conversation"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; }, { "cancelled": "cancelled"; "membersChanged": "membersChanged"; }, never, never, false, never>;
105
+ static ɵcmp: i0.ɵɵComponentDeclaration<MembersModalComponent, "mj-members-modal", never, { "IsVisible": { "alias": "IsVisible"; "required": false; }; "isVisible": { "alias": "isVisible"; "required": false; }; "Conversation": { "alias": "Conversation"; "required": false; }; "conversation": { "alias": "conversation"; "required": false; }; "CurrentUser": { "alias": "CurrentUser"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; }, { "Cancelled": "Cancelled"; "cancelled": "cancelled"; "MembersChanged": "MembersChanged"; "membersChanged": "membersChanged"; }, never, never, false, never>;
40
106
  }
41
107
  export {};
42
108
  //# sourceMappingURL=members-modal.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"members-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/members/members-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAiB,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAqB,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;;AAE9D,UAAU,kBAAkB;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,OAAO,EAAE,IAAI,CAAC;CACf;AAED,qBAuNa,qBAAqB;IAsBpB,OAAO,CAAC,aAAa;IArBxB,SAAS,UAAS;IAClB,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,WAAW,EAAG,QAAQ,CAAC;IACtB,SAAS,qBAA4B;IACrC,cAAc,qBAA4B;IAEpD,OAAO,EAAE,kBAAkB,EAAE,CAAM;IACnC,cAAc,SAAM;IACpB,aAAa,EAAE,QAAQ,GAAG,OAAO,CAAY;IAC7C,SAAS,UAAS;IAClB,YAAY,SAAM;IAElB,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,WAAW;;;QAGT;gBAEkB,aAAa,EAAE,aAAa;IAEhD,WAAW,IAAI,IAAI;YAML,WAAW;IA2BnB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA0C5B,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB/D,QAAQ,IAAI,IAAI;IAKhB,OAAO,CAAC,SAAS;yCAjIN,qBAAqB;2CAArB,qBAAqB;CAuIjC"}
1
+ {"version":3,"file":"members-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/members/members-modal.component.ts"],"names":[],"mappings":"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"}