@memberjunction/ng-conversations 4.0.0 → 4.2.0
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.
- package/README.md +287 -155
- package/package.json +17 -17
- package/dist/lib/components/artifact/artifact-viewer-panel.component.d.ts +0 -48
- package/dist/lib/components/artifact/artifact-viewer-panel.component.d.ts.map +0 -1
- package/dist/lib/components/artifact/artifact-viewer-panel.component.js +0 -457
- package/dist/lib/components/artifact/artifact-viewer-panel.component.js.map +0 -1
- package/dist/lib/components/delete-confirm/delete-confirm-modal.component.d.ts +0 -52
- package/dist/lib/components/delete-confirm/delete-confirm-modal.component.d.ts.map +0 -1
- package/dist/lib/components/delete-confirm/delete-confirm-modal.component.js +0 -276
- package/dist/lib/components/delete-confirm/delete-confirm-modal.component.js.map +0 -1
- package/dist/lib/services/conversation-state.service.d.ts +0 -160
- package/dist/lib/services/conversation-state.service.d.ts.map +0 -1
- package/dist/lib/services/conversation-state.service.js +0 -334
- package/dist/lib/services/conversation-state.service.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,197 +1,329 @@
|
|
|
1
1
|
# @memberjunction/ng-conversations
|
|
2
2
|
|
|
3
|
-
Angular
|
|
3
|
+
A comprehensive Angular component library for building conversation-based interfaces in MemberJunction, including messaging, artifact management, collections, projects, tasks, agent interaction panels, and collaboration features.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
The `@memberjunction/ng-conversations` package is a large, feature-rich module that powers MemberJunction's conversation UI. It provides 40+ components covering the entire conversation lifecycle: message composition and rendering (with markdown, mentions, code blocks, and artifacts), conversation navigation and history, threaded discussions, artifact collections and libraries, project/task management, agent execution panels, sharing/permission modals, search, notifications, and export.
|
|
8
|
+
|
|
9
|
+
```mermaid
|
|
10
|
+
graph TD
|
|
11
|
+
A[ConversationsModule] --> B[Messaging]
|
|
12
|
+
A --> C[Navigation]
|
|
13
|
+
A --> D[Collections & Library]
|
|
14
|
+
A --> E[Agent & Tasks]
|
|
15
|
+
A --> F[Collaboration]
|
|
16
|
+
|
|
17
|
+
B --> B1[MessageItemComponent]
|
|
18
|
+
B --> B2[MessageListComponent]
|
|
19
|
+
B --> B3[MessageInputComponent]
|
|
20
|
+
B --> B4[MentionEditorComponent]
|
|
21
|
+
B --> B5[SuggestedResponsesComponent]
|
|
22
|
+
B --> B6[ConversationMessageRatingComponent]
|
|
23
|
+
|
|
24
|
+
C --> C1[ConversationWorkspaceComponent]
|
|
25
|
+
C --> C2[ConversationNavigationComponent]
|
|
26
|
+
C --> C3[ConversationSidebarComponent]
|
|
27
|
+
C --> C4[ConversationListComponent]
|
|
28
|
+
C --> C5[ConversationChatAreaComponent]
|
|
29
|
+
C --> C6[ThreadPanelComponent]
|
|
30
|
+
|
|
31
|
+
D --> D1[CollectionTreeComponent]
|
|
32
|
+
D --> D2[CollectionViewComponent]
|
|
33
|
+
D --> D3[LibraryFullViewComponent]
|
|
34
|
+
D --> D4[ArtifactCreateModalComponent]
|
|
35
|
+
|
|
36
|
+
E --> E1[AgentProcessPanelComponent]
|
|
37
|
+
E --> E2[ActiveAgentIndicatorComponent]
|
|
38
|
+
E --> E3[TasksFullViewComponent]
|
|
39
|
+
E --> E4[GlobalTasksPanelComponent]
|
|
40
|
+
|
|
41
|
+
F --> F1[ShareModalComponent]
|
|
42
|
+
F --> F2[MembersModalComponent]
|
|
43
|
+
F --> F3[ExportModalComponent]
|
|
44
|
+
F --> F4[SearchPanelComponent]
|
|
45
|
+
|
|
46
|
+
style A fill:#2d6a9f,stroke:#1a4971,color:#fff
|
|
47
|
+
style B fill:#7c5295,stroke:#563a6b,color:#fff
|
|
48
|
+
style C fill:#2d8659,stroke:#1a5c3a,color:#fff
|
|
49
|
+
style D fill:#b8762f,stroke:#8a5722,color:#fff
|
|
50
|
+
style E fill:#7c5295,stroke:#563a6b,color:#fff
|
|
51
|
+
style F fill:#2d8659,stroke:#1a5c3a,color:#fff
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Installation
|
|
4
55
|
|
|
5
|
-
|
|
56
|
+
```bash
|
|
57
|
+
npm install @memberjunction/ng-conversations
|
|
58
|
+
```
|
|
6
59
|
|
|
7
|
-
|
|
60
|
+
## Usage
|
|
8
61
|
|
|
9
|
-
###
|
|
62
|
+
### Import the Module
|
|
10
63
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
- **MessageDataService** - Message management with caching
|
|
14
|
-
- **ArtifactDataService** - Artifact and version management
|
|
15
|
-
- **ProjectDataService** - Project organization
|
|
16
|
-
- **CollectionDataService** - Collection and artifact organization
|
|
17
|
-
- **ConversationStateService** - Reactive state management for conversations
|
|
18
|
-
- **ArtifactStateService** - Reactive state management for artifacts
|
|
64
|
+
```typescript
|
|
65
|
+
import { ConversationsModule } from '@memberjunction/ng-conversations';
|
|
19
66
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
67
|
+
@NgModule({
|
|
68
|
+
imports: [ConversationsModule]
|
|
69
|
+
})
|
|
70
|
+
export class YourModule { }
|
|
71
|
+
```
|
|
23
72
|
|
|
24
|
-
|
|
25
|
-
- TypeScript interfaces for all state management types
|
|
26
|
-
- Union types for navigation tabs, layouts, and view modes
|
|
73
|
+
### Full Conversation Workspace
|
|
27
74
|
|
|
28
|
-
|
|
75
|
+
The top-level workspace component provides a complete conversation experience with sidebar, chat area, and thread panel:
|
|
29
76
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
77
|
+
```html
|
|
78
|
+
<mj-conversation-workspace
|
|
79
|
+
[conversationId]="selectedConversationId"
|
|
80
|
+
(conversationChanged)="onConversationChanged($event)">
|
|
81
|
+
</mj-conversation-workspace>
|
|
82
|
+
```
|
|
34
83
|
|
|
35
|
-
|
|
36
|
-
- All services use Metadata.GetEntityObject() pattern
|
|
37
|
-
- RunView for efficient data loading
|
|
38
|
-
- Proper type safety with generic methods
|
|
84
|
+
### Chat Area
|
|
39
85
|
|
|
40
|
-
|
|
41
|
-
- RxJS BehaviorSubjects for all state
|
|
42
|
-
- Derived observables using combineLatest
|
|
43
|
-
- shareReplay(1) for efficient caching
|
|
86
|
+
The chat area handles message display, input, and agent interactions:
|
|
44
87
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
88
|
+
```html
|
|
89
|
+
<mj-conversation-chat-area
|
|
90
|
+
[conversationId]="conversationId"
|
|
91
|
+
[conversation]="conversation"
|
|
92
|
+
[threadId]="selectedThreadId"
|
|
93
|
+
[isNewConversation]="isNewConversation"
|
|
94
|
+
(conversationCreated)="onConversationCreated($event)"
|
|
95
|
+
(threadOpened)="onThreadOpened($event)"
|
|
96
|
+
(threadClosed)="onThreadClosed()">
|
|
97
|
+
</mj-conversation-chat-area>
|
|
98
|
+
```
|
|
48
99
|
|
|
49
|
-
###
|
|
100
|
+
### Message Components
|
|
50
101
|
|
|
51
|
-
|
|
102
|
+
#### Message List
|
|
52
103
|
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
|
|
104
|
+
```html
|
|
105
|
+
<mj-message-list
|
|
106
|
+
[messages]="conversationMessages"
|
|
107
|
+
[isLoading]="isLoadingMessages"
|
|
108
|
+
(messageRated)="onMessageRated($event)">
|
|
109
|
+
</mj-message-list>
|
|
56
110
|
```
|
|
57
111
|
|
|
58
|
-
|
|
112
|
+
#### Message Input with Mentions
|
|
59
113
|
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
} from '@memberjunction/ng-conversations';
|
|
67
|
-
|
|
68
|
-
// In your component
|
|
69
|
-
constructor(
|
|
70
|
-
private conversationData: ConversationDataService,
|
|
71
|
-
private conversationState: ConversationStateService,
|
|
72
|
-
private currentUser: UserInfo
|
|
73
|
-
) {}
|
|
74
|
-
|
|
75
|
-
async ngOnInit() {
|
|
76
|
-
// Load conversations
|
|
77
|
-
const conversations = await this.conversationData.loadConversations(
|
|
78
|
-
environmentId,
|
|
79
|
-
this.currentUser
|
|
80
|
-
);
|
|
81
|
-
|
|
82
|
-
// Set active conversation
|
|
83
|
-
this.conversationState.setActiveConversation(conversations[0].ID);
|
|
84
|
-
|
|
85
|
-
// Subscribe to state changes
|
|
86
|
-
this.conversationState.activeConversation$.subscribe(conv => {
|
|
87
|
-
console.log('Active conversation changed:', conv);
|
|
88
|
-
});
|
|
89
|
-
}
|
|
114
|
+
```html
|
|
115
|
+
<mj-message-input
|
|
116
|
+
[conversationId]="conversationId"
|
|
117
|
+
[allowSend]="!isProcessing"
|
|
118
|
+
(messageSent)="onMessageSent($event)">
|
|
119
|
+
</mj-message-input>
|
|
90
120
|
```
|
|
91
121
|
|
|
92
|
-
|
|
122
|
+
#### Mention Editor
|
|
93
123
|
|
|
124
|
+
```html
|
|
125
|
+
<mj-mention-editor
|
|
126
|
+
[mentionSources]="availableMentionSources"
|
|
127
|
+
(mentionSelected)="onMentionSelected($event)">
|
|
128
|
+
</mj-mention-editor>
|
|
94
129
|
```
|
|
95
|
-
src/
|
|
96
|
-
├── lib/
|
|
97
|
-
│ ├── components/
|
|
98
|
-
│ │ └── message/ # Message display components
|
|
99
|
-
│ │ ├── message-item.component.ts
|
|
100
|
-
│ │ ├── message-item.component.html
|
|
101
|
-
│ │ ├── message-item.component.css
|
|
102
|
-
│ │ ├── message-list.component.ts
|
|
103
|
-
│ │ ├── message-list.component.html
|
|
104
|
-
│ │ └── message-list.component.css
|
|
105
|
-
│ ├── services/
|
|
106
|
-
│ │ ├── conversation-data.service.ts # Conversation CRUD
|
|
107
|
-
│ │ ├── message-data.service.ts # Message CRUD
|
|
108
|
-
│ │ ├── artifact-data.service.ts # Artifact & versions
|
|
109
|
-
│ │ ├── project-data.service.ts # Project management
|
|
110
|
-
│ │ ├── collection-data.service.ts # Collections
|
|
111
|
-
│ │ ├── conversation-state.service.ts # Conversation state
|
|
112
|
-
│ │ └── artifact-state.service.ts # Artifact state
|
|
113
|
-
│ ├── models/
|
|
114
|
-
│ │ └── conversation-state.model.ts # TypeScript interfaces
|
|
115
|
-
│ └── conversations.module.ts
|
|
116
|
-
└── public-api.ts
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### 🚀 Next Steps
|
|
120
130
|
|
|
121
|
-
|
|
131
|
+
### Collections and Library
|
|
122
132
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
133
|
+
```html
|
|
134
|
+
<!-- Collection tree for organizing artifacts -->
|
|
135
|
+
<mj-collection-tree
|
|
136
|
+
[projectId]="currentProjectId"
|
|
137
|
+
(collectionSelected)="onCollectionSelected($event)">
|
|
138
|
+
</mj-collection-tree>
|
|
127
139
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
140
|
+
<!-- Full library view -->
|
|
141
|
+
<mj-library-full-view
|
|
142
|
+
[projectId]="currentProjectId">
|
|
143
|
+
</mj-library-full-view>
|
|
144
|
+
```
|
|
133
145
|
|
|
134
|
-
|
|
135
|
-
- ArtifactPanelComponent (right panel)
|
|
136
|
-
- ArtifactViewerComponent (type-specific rendering)
|
|
137
|
-
- ArtifactEditorComponent (edit mode)
|
|
138
|
-
- ArtifactVersionHistoryComponent (version timeline)
|
|
139
|
-
- ArtifactShareModalComponent (sharing UI)
|
|
146
|
+
### Project and Task Management
|
|
140
147
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
148
|
+
```html
|
|
149
|
+
<!-- Project selector -->
|
|
150
|
+
<mj-project-selector
|
|
151
|
+
[currentProjectId]="projectId"
|
|
152
|
+
(projectChanged)="onProjectChanged($event)">
|
|
153
|
+
</mj-project-selector>
|
|
145
154
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
- AgentProcessPanelComponent (floating panel)
|
|
155
|
+
<!-- Tasks view -->
|
|
156
|
+
<mj-tasks-full-view
|
|
157
|
+
[projectId]="currentProjectId">
|
|
158
|
+
</mj-tasks-full-view>
|
|
159
|
+
```
|
|
152
160
|
|
|
153
|
-
|
|
154
|
-
- Add `/chat` route to explorer-core
|
|
155
|
-
- Create wrapper components
|
|
156
|
-
- Integrate with Explorer navigation
|
|
161
|
+
### Agent Components
|
|
157
162
|
|
|
158
|
-
|
|
163
|
+
```html
|
|
164
|
+
<!-- Agent execution panel -->
|
|
165
|
+
<mj-agent-process-panel
|
|
166
|
+
[agentRunId]="activeRunId">
|
|
167
|
+
</mj-agent-process-panel>
|
|
159
168
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
169
|
+
<!-- Active agent indicator -->
|
|
170
|
+
<mj-active-agent-indicator
|
|
171
|
+
[isActive]="agentIsRunning">
|
|
172
|
+
</mj-active-agent-indicator>
|
|
173
|
+
```
|
|
164
174
|
|
|
165
|
-
|
|
166
|
-
|
|
175
|
+
### Collaboration
|
|
176
|
+
|
|
177
|
+
```html
|
|
178
|
+
<!-- Share modal -->
|
|
179
|
+
<mj-share-modal
|
|
180
|
+
[visible]="showShareModal"
|
|
181
|
+
[resourceId]="resourceId"
|
|
182
|
+
[resourceType]="'conversation'"
|
|
183
|
+
(closed)="onShareClosed()">
|
|
184
|
+
</mj-share-modal>
|
|
185
|
+
|
|
186
|
+
<!-- Export modal -->
|
|
187
|
+
<mj-export-modal
|
|
188
|
+
[visible]="showExportModal"
|
|
189
|
+
[conversationId]="conversationId"
|
|
190
|
+
(exported)="onExported($event)">
|
|
191
|
+
</mj-export-modal>
|
|
167
192
|
```
|
|
168
193
|
|
|
169
|
-
|
|
194
|
+
## Component Reference
|
|
170
195
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
196
|
+
### Messaging Components
|
|
197
|
+
|
|
198
|
+
| Component | Selector | Description |
|
|
199
|
+
|-----------|----------|-------------|
|
|
200
|
+
| `MessageItemComponent` | `mj-message-item` | Single message display with markdown, artifacts, and rating |
|
|
201
|
+
| `MessageListComponent` | `mj-message-list` | Scrollable message list with auto-scroll |
|
|
202
|
+
| `MessageInputComponent` | `mj-message-input` | Message input with attachment support |
|
|
203
|
+
| `MessageInputBoxComponent` | `mj-message-input-box` | Core input box with auto-resize |
|
|
204
|
+
| `SuggestedResponsesComponent` | `mj-suggested-responses` | Quick response buttons |
|
|
205
|
+
| `FormQuestionComponent` | `mj-form-question` | Structured form input within conversations |
|
|
206
|
+
| `AgentResponseFormComponent` | `mj-agent-response-form` | Agent-generated form responses |
|
|
207
|
+
| `ActionableCommandsComponent` | `mj-actionable-commands` | Clickable command suggestions |
|
|
208
|
+
| `MentionDropdownComponent` | `mj-mention-dropdown` | @-mention autocomplete dropdown |
|
|
209
|
+
| `MentionEditorComponent` | `mj-mention-editor` | Rich text input with mention support |
|
|
210
|
+
| `ConversationMessageRatingComponent` | `mj-conversation-message-rating` | Message feedback (thumbs up/down) |
|
|
211
|
+
|
|
212
|
+
### Navigation Components
|
|
213
|
+
|
|
214
|
+
| Component | Selector | Description |
|
|
215
|
+
|-----------|----------|-------------|
|
|
216
|
+
| `ConversationWorkspaceComponent` | `mj-conversation-workspace` | Full workspace layout |
|
|
217
|
+
| `ConversationNavigationComponent` | `mj-conversation-navigation` | Top-level navigation |
|
|
218
|
+
| `ConversationSidebarComponent` | `mj-conversation-sidebar` | Left sidebar with conversation list |
|
|
219
|
+
| `ConversationListComponent` | `mj-conversation-list` | Scrollable conversation history |
|
|
220
|
+
| `ConversationChatAreaComponent` | `mj-conversation-chat-area` | Main chat area |
|
|
221
|
+
| `ConversationEmptyStateComponent` | `mj-conversation-empty-state` | Empty state display |
|
|
222
|
+
| `ThreadPanelComponent` | `mj-thread-panel` | Threaded discussion panel |
|
|
223
|
+
|
|
224
|
+
### Collection and Library Components
|
|
225
|
+
|
|
226
|
+
| Component | Selector | Description |
|
|
227
|
+
|-----------|----------|-------------|
|
|
228
|
+
| `CollectionTreeComponent` | `mj-collection-tree` | Hierarchical collection browser |
|
|
229
|
+
| `CollectionViewComponent` | `mj-collection-view` | Collection detail view |
|
|
230
|
+
| `CollectionArtifactCardComponent` | `mj-collection-artifact-card` | Artifact card within collections |
|
|
231
|
+
| `LibraryFullViewComponent` | `mj-library-full-view` | Full library interface |
|
|
232
|
+
| `CollectionFormModalComponent` | `mj-collection-form-modal` | Create/edit collection |
|
|
233
|
+
| `ArtifactCreateModalComponent` | `mj-artifact-create-modal` | Create new artifact |
|
|
234
|
+
| `CollectionsFullViewComponent` | `mj-collections-full-view` | All collections browser |
|
|
235
|
+
|
|
236
|
+
### Project and Task Components
|
|
237
|
+
|
|
238
|
+
| Component | Selector | Description |
|
|
239
|
+
|-----------|----------|-------------|
|
|
240
|
+
| `ProjectSelectorComponent` | `mj-project-selector` | Project selection dropdown |
|
|
241
|
+
| `ProjectFormModalComponent` | `mj-project-form-modal` | Create/edit project |
|
|
242
|
+
| `TasksFullViewComponent` | `mj-tasks-full-view` | Full tasks management view (standalone) |
|
|
243
|
+
| `TasksDropdownComponent` | `mj-tasks-dropdown` | Task quick-access dropdown |
|
|
244
|
+
| `TaskWidgetComponent` | `mj-task-widget` | Compact task widget |
|
|
245
|
+
| `GlobalTasksPanelComponent` | `mj-global-tasks-panel` | Global tasks panel |
|
|
246
|
+
|
|
247
|
+
### Agent Components
|
|
248
|
+
|
|
249
|
+
| Component | Selector | Description |
|
|
250
|
+
|-----------|----------|-------------|
|
|
251
|
+
| `AgentProcessPanelComponent` | `mj-agent-process-panel` | Agent execution panel |
|
|
252
|
+
| `ActiveAgentIndicatorComponent` | `mj-active-agent-indicator` | Active processing indicator |
|
|
253
|
+
| `ActiveTasksPanelComponent` | `mj-active-tasks-panel` | Active tasks panel |
|
|
254
|
+
|
|
255
|
+
### Utility Components
|
|
256
|
+
|
|
257
|
+
| Component | Selector | Description |
|
|
258
|
+
|-----------|----------|-------------|
|
|
259
|
+
| `ShareModalComponent` | `mj-share-modal` | Resource sharing modal |
|
|
260
|
+
| `MembersModalComponent` | `mj-members-modal` | Members management |
|
|
261
|
+
| `ExportModalComponent` | `mj-export-modal` | Data export modal |
|
|
262
|
+
| `SearchPanelComponent` | `mj-search-panel` | Search across conversations |
|
|
263
|
+
| `NotificationBadgeComponent` | `mj-notification-badge` | Unread notification count |
|
|
264
|
+
| `ActivityIndicatorComponent` | `mj-activity-indicator` | Active processing indicator |
|
|
265
|
+
| `ToastComponent` | `mj-toast` | Toast notification display |
|
|
266
|
+
| `InputDialogComponent` | `mj-input-dialog` | Generic text input dialog |
|
|
267
|
+
| `ImageViewerComponent` | `mj-image-viewer` | Image attachment viewer |
|
|
268
|
+
|
|
269
|
+
## Directives
|
|
270
|
+
|
|
271
|
+
| Directive | Selector | Description |
|
|
272
|
+
|-----------|----------|-------------|
|
|
273
|
+
| `SearchShortcutDirective` | `[mjSearchShortcut]` | Keyboard shortcut for search |
|
|
274
|
+
|
|
275
|
+
## Key Design Patterns
|
|
276
|
+
|
|
277
|
+
### Performance Optimization
|
|
278
|
+
|
|
279
|
+
Message components use dynamic component creation (`ViewContainerRef.createComponent`) instead of Angular template binding to minimize render cycles and improve performance with large message lists.
|
|
280
|
+
|
|
281
|
+
### MJ Entity Integration
|
|
282
|
+
|
|
283
|
+
All data operations use the MemberJunction entity system:
|
|
284
|
+
- `Metadata.GetEntityObject()` for entity creation
|
|
285
|
+
- `RunView` for efficient data loading
|
|
286
|
+
- Proper generic typing throughout
|
|
287
|
+
|
|
288
|
+
### Reactive State Management
|
|
289
|
+
|
|
290
|
+
RxJS `BehaviorSubject` instances for all state, with derived observables using `combineLatest` and `shareReplay(1)` for efficient caching.
|
|
291
|
+
|
|
292
|
+
## Dependencies
|
|
293
|
+
|
|
294
|
+
### MemberJunction Packages
|
|
295
|
+
|
|
296
|
+
| Package | Description |
|
|
297
|
+
|---------|-------------|
|
|
298
|
+
| `@memberjunction/core` | Core framework |
|
|
299
|
+
| `@memberjunction/core-entities` | Entity type definitions |
|
|
300
|
+
| `@memberjunction/global` | Global utilities |
|
|
301
|
+
| `@memberjunction/graphql-dataprovider` | GraphQL data access |
|
|
302
|
+
| `@memberjunction/ng-artifacts` | Artifact viewer components |
|
|
303
|
+
| `@memberjunction/ng-code-editor` | Code editor component |
|
|
304
|
+
| `@memberjunction/ng-container-directives` | Container directives |
|
|
305
|
+
| `@memberjunction/ng-markdown` | Markdown rendering |
|
|
306
|
+
| `@memberjunction/ng-shared-generic` | Shared generic components |
|
|
307
|
+
| `@memberjunction/ng-testing` | Testing framework components |
|
|
175
308
|
|
|
176
|
-
###
|
|
309
|
+
### Kendo UI Packages
|
|
177
310
|
|
|
178
|
-
-
|
|
179
|
-
- @memberjunction/core-entities ^2.101.0
|
|
180
|
-
- @memberjunction/global ^2.101.0
|
|
181
|
-
- @memberjunction/graphql-dataprovider ^2.101.0
|
|
182
|
-
- @memberjunction/ng-base-types ^2.101.0
|
|
183
|
-
- @progress/kendo-angular-* ^16.2.0
|
|
184
|
-
- @angular/* ^18.0.2
|
|
185
|
-
- @memberjunction/ng-markdown ^2.125.0
|
|
186
|
-
- marked ^9.1.6
|
|
311
|
+
Uses `@progress/kendo-angular-dialog`, `@progress/kendo-angular-buttons`, `@progress/kendo-angular-inputs`, `@progress/kendo-angular-layout`, `@progress/kendo-angular-indicators`, `@progress/kendo-angular-dropdowns`, `@progress/kendo-angular-notification`, `@progress/kendo-angular-upload`, `@progress/kendo-angular-dateinputs`.
|
|
187
312
|
|
|
188
|
-
###
|
|
313
|
+
### Peer Dependencies
|
|
314
|
+
|
|
315
|
+
- `@angular/common` ^21.x
|
|
316
|
+
- `@angular/core` ^21.x
|
|
317
|
+
- `@angular/forms` ^21.x
|
|
318
|
+
- `@angular/router` ^21.x
|
|
189
319
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
320
|
+
## Build
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
cd packages/Angular/Generic/conversations
|
|
324
|
+
npm run build
|
|
325
|
+
```
|
|
194
326
|
|
|
195
|
-
|
|
327
|
+
## License
|
|
196
328
|
|
|
197
|
-
|
|
329
|
+
ISC
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-conversations",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"description": "MemberJunction: Conversation, Collection, and Artifact management components for any Angular application",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -29,21 +29,21 @@
|
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@angular/animations": "21.1.3",
|
|
31
31
|
"@angular/cdk": "21.1.3",
|
|
32
|
-
"@memberjunction/ai": "4.
|
|
33
|
-
"@memberjunction/ai-core-plus": "4.
|
|
34
|
-
"@memberjunction/ai-engine-base": "4.
|
|
35
|
-
"@memberjunction/core": "4.
|
|
36
|
-
"@memberjunction/core-entities": "4.
|
|
37
|
-
"@memberjunction/global": "4.
|
|
38
|
-
"@memberjunction/graphql-dataprovider": "4.
|
|
39
|
-
"@memberjunction/ng-artifacts": "4.
|
|
40
|
-
"@memberjunction/ng-base-types": "4.
|
|
41
|
-
"@memberjunction/ng-code-editor": "4.
|
|
42
|
-
"@memberjunction/ng-container-directives": "4.
|
|
43
|
-
"@memberjunction/ng-notifications": "4.
|
|
44
|
-
"@memberjunction/ng-shared-generic": "4.
|
|
45
|
-
"@memberjunction/ng-tasks": "4.
|
|
46
|
-
"@memberjunction/ng-testing": "4.
|
|
32
|
+
"@memberjunction/ai": "4.2.0",
|
|
33
|
+
"@memberjunction/ai-core-plus": "4.2.0",
|
|
34
|
+
"@memberjunction/ai-engine-base": "4.2.0",
|
|
35
|
+
"@memberjunction/core": "4.2.0",
|
|
36
|
+
"@memberjunction/core-entities": "4.2.0",
|
|
37
|
+
"@memberjunction/global": "4.2.0",
|
|
38
|
+
"@memberjunction/graphql-dataprovider": "4.2.0",
|
|
39
|
+
"@memberjunction/ng-artifacts": "4.2.0",
|
|
40
|
+
"@memberjunction/ng-base-types": "4.2.0",
|
|
41
|
+
"@memberjunction/ng-code-editor": "4.2.0",
|
|
42
|
+
"@memberjunction/ng-container-directives": "4.2.0",
|
|
43
|
+
"@memberjunction/ng-notifications": "4.2.0",
|
|
44
|
+
"@memberjunction/ng-shared-generic": "4.2.0",
|
|
45
|
+
"@memberjunction/ng-tasks": "4.2.0",
|
|
46
|
+
"@memberjunction/ng-testing": "4.2.0",
|
|
47
47
|
"@progress/kendo-angular-buttons": "22.0.1",
|
|
48
48
|
"@progress/kendo-angular-dateinputs": "22.0.1",
|
|
49
49
|
"@progress/kendo-angular-dialog": "22.0.1",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"@progress/kendo-angular-layout": "22.0.1",
|
|
54
54
|
"@progress/kendo-angular-notification": "22.0.1",
|
|
55
55
|
"@progress/kendo-angular-upload": "22.0.1",
|
|
56
|
-
"@memberjunction/ng-markdown": "4.
|
|
56
|
+
"@memberjunction/ng-markdown": "4.2.0",
|
|
57
57
|
"rxjs": "^7.8.2",
|
|
58
58
|
"tslib": "^2.8.1"
|
|
59
59
|
},
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { EventEmitter, OnInit, OnChanges, SimpleChanges, ChangeDetectorRef } from '@angular/core';
|
|
2
|
-
import { UserInfo } from '@memberjunction/core';
|
|
3
|
-
import { ArtifactEntity } from '@memberjunction/core-entities';
|
|
4
|
-
import { ArtifactStateService } from '../../services/artifact-state.service';
|
|
5
|
-
import { ArtifactPermissionService } from '../../services/artifact-permission.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* Artifact viewer panel component
|
|
9
|
-
* Displays artifact content with permission-based actions (share, edit, delete)
|
|
10
|
-
*/
|
|
11
|
-
export declare class ArtifactViewerPanelComponent implements OnInit, OnChanges {
|
|
12
|
-
private artifactStateService;
|
|
13
|
-
private artifactPermissionService;
|
|
14
|
-
private cdr;
|
|
15
|
-
artifactId: string;
|
|
16
|
-
currentUser: UserInfo;
|
|
17
|
-
environmentId: string;
|
|
18
|
-
versionNumber?: number;
|
|
19
|
-
showSaveToCollection: boolean;
|
|
20
|
-
viewContext: 'collection' | 'conversation';
|
|
21
|
-
contextCollectionId?: string;
|
|
22
|
-
closed: EventEmitter<void>;
|
|
23
|
-
navigateToLink: EventEmitter<{
|
|
24
|
-
type: 'conversation' | 'collection';
|
|
25
|
-
id: string;
|
|
26
|
-
}>;
|
|
27
|
-
artifact: ArtifactEntity | null;
|
|
28
|
-
loading: boolean;
|
|
29
|
-
error: string | null;
|
|
30
|
-
canShare: boolean;
|
|
31
|
-
canEdit: boolean;
|
|
32
|
-
isShareModalOpen: boolean;
|
|
33
|
-
constructor(artifactStateService: ArtifactStateService, artifactPermissionService: ArtifactPermissionService, cdr: ChangeDetectorRef);
|
|
34
|
-
ngOnInit(): Promise<void>;
|
|
35
|
-
ngOnChanges(changes: SimpleChanges): Promise<void>;
|
|
36
|
-
private loadArtifact;
|
|
37
|
-
private loadPermissions;
|
|
38
|
-
openShareModal(): void;
|
|
39
|
-
closeShareModal(): void;
|
|
40
|
-
onShareSaved(): void;
|
|
41
|
-
onEdit(): void;
|
|
42
|
-
onDelete(): Promise<void>;
|
|
43
|
-
onSaveToCollection(): void;
|
|
44
|
-
onClose(): void;
|
|
45
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ArtifactViewerPanelComponent, never>;
|
|
46
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ArtifactViewerPanelComponent, "mj-artifact-viewer-panel", never, { "artifactId": { "alias": "artifactId"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "versionNumber": { "alias": "versionNumber"; "required": false; }; "showSaveToCollection": { "alias": "showSaveToCollection"; "required": false; }; "viewContext": { "alias": "viewContext"; "required": false; }; "contextCollectionId": { "alias": "contextCollectionId"; "required": false; }; }, { "closed": "closed"; "navigateToLink": "navigateToLink"; }, never, never, true, never>;
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=artifact-viewer-panel.component.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-viewer-panel.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/artifact/artifact-viewer-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE5H,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;;AAGvF;;;GAGG;AACH,qBA6Ha,4BAA6B,YAAW,MAAM,EAAE,SAAS;IAwBlE,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,yBAAyB;IACjC,OAAO,CAAC,GAAG;IAzBJ,UAAU,EAAG,MAAM,CAAC;IACpB,WAAW,EAAG,QAAQ,CAAC;IACvB,aAAa,EAAG,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,OAAO,CAAS;IACtC,WAAW,EAAE,YAAY,GAAG,cAAc,CAAkB;IAC5D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE5B,MAAM,qBAA4B;IAClC,cAAc;cAA2B,cAAc,GAAG,YAAY;YAAM,MAAM;OAAK;IAEjG,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAQ;IACvC,OAAO,EAAE,OAAO,CAAS;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG5B,QAAQ,EAAE,OAAO,CAAS;IAC1B,OAAO,EAAE,OAAO,CAAS;IAGzB,gBAAgB,EAAE,OAAO,CAAS;gBAGxB,oBAAoB,EAAE,oBAAoB,EAC1C,yBAAyB,EAAE,yBAAyB,EACpD,GAAG,EAAE,iBAAiB;IAG1B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAO1C,YAAY;YAqBZ,eAAe;IAmB7B,cAAc,IAAI,IAAI;IAItB,eAAe,IAAI,IAAI;IAIvB,YAAY,IAAI,IAAI;IAMpB,MAAM,IAAI,IAAI;IAKR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB/B,kBAAkB,IAAI,IAAI;IAK1B,OAAO,IAAI,IAAI;yCAzHJ,4BAA4B;2CAA5B,4BAA4B;CA4HxC"}
|