@memberjunction/ng-chat 2.48.0 → 2.50.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.
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
11
2
|
import { LogError } from '@memberjunction/core';
|
|
12
3
|
import * as i0 from "@angular/core";
|
|
@@ -145,15 +136,16 @@ function ChatComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
|
145
136
|
i0.ɵɵtextInterpolate(ctx_r1.ClearAllMessagesPrompt);
|
|
146
137
|
} }
|
|
147
138
|
export class ChatWelcomeQuestion {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
this.prompt = "";
|
|
152
|
-
}
|
|
139
|
+
topLine = "";
|
|
140
|
+
bottomLine = "";
|
|
141
|
+
prompt = "";
|
|
153
142
|
}
|
|
154
143
|
export class ChatMessage {
|
|
144
|
+
message;
|
|
145
|
+
senderName;
|
|
146
|
+
senderType = 'user';
|
|
147
|
+
id;
|
|
155
148
|
constructor(message, senderName, senderType, id = null) {
|
|
156
|
-
this.senderType = 'user';
|
|
157
149
|
this.message = message;
|
|
158
150
|
this.senderName = senderName;
|
|
159
151
|
this.senderType = senderType;
|
|
@@ -161,13 +153,41 @@ export class ChatMessage {
|
|
|
161
153
|
}
|
|
162
154
|
}
|
|
163
155
|
export class ChatComponent {
|
|
156
|
+
markdownService;
|
|
157
|
+
cd;
|
|
158
|
+
InitialMessage = '';
|
|
159
|
+
Messages = [];
|
|
160
|
+
/**
|
|
161
|
+
* Optional, provide this to show an image for the AI. If not provided, a default robot icon will be shown.
|
|
162
|
+
*/
|
|
163
|
+
AIImageURL = '';
|
|
164
|
+
AILargeImageURL = '';
|
|
165
|
+
/**
|
|
166
|
+
* Optional, provide up to 4 welcome questions with example prompts.
|
|
167
|
+
* These will be shown to the user when the chat is first opened and there are no messages.
|
|
168
|
+
*/
|
|
169
|
+
WelcomeQuestions = [];
|
|
170
|
+
/**
|
|
171
|
+
* Optional, provide a prompt for the user when they click the clear all messages button.
|
|
172
|
+
*/
|
|
173
|
+
ClearAllMessagesPrompt = 'Are you sure you want to clear all messages?';
|
|
174
|
+
/**
|
|
175
|
+
* Set this to enable/disable sending of a message. Whenever the input is empty, this field will be
|
|
176
|
+
* ignored and the send button will be disabled.
|
|
177
|
+
*/
|
|
178
|
+
AllowSend = true;
|
|
179
|
+
InternalAllowSend = true;
|
|
180
|
+
/**
|
|
181
|
+
* The placeholder text for the input field
|
|
182
|
+
*/
|
|
183
|
+
Placeholder = 'Type a message...';
|
|
184
|
+
_ShowWaitingIndicator = false;
|
|
164
185
|
get ShowWaitingIndicator() {
|
|
165
186
|
return this._ShowWaitingIndicator;
|
|
166
187
|
}
|
|
167
188
|
set ShowWaitingIndicator(value) {
|
|
168
|
-
var _a;
|
|
169
189
|
this._ShowWaitingIndicator = value;
|
|
170
|
-
|
|
190
|
+
this.cd?.detectChanges(); // Manually trigger change detection
|
|
171
191
|
if (!value) {
|
|
172
192
|
this.FocusTextArea();
|
|
173
193
|
}
|
|
@@ -175,41 +195,15 @@ export class ChatComponent {
|
|
|
175
195
|
ngAfterViewInit() {
|
|
176
196
|
this.FocusTextArea();
|
|
177
197
|
}
|
|
198
|
+
MessageAdded = new EventEmitter();
|
|
199
|
+
ClearChatRequested = new EventEmitter();
|
|
200
|
+
messagesContainer;
|
|
201
|
+
theInput;
|
|
202
|
+
currentMessage = '';
|
|
203
|
+
showingClearAllDialog = false;
|
|
178
204
|
constructor(markdownService, cd) {
|
|
179
205
|
this.markdownService = markdownService;
|
|
180
206
|
this.cd = cd;
|
|
181
|
-
this.InitialMessage = '';
|
|
182
|
-
this.Messages = [];
|
|
183
|
-
/**
|
|
184
|
-
* Optional, provide this to show an image for the AI. If not provided, a default robot icon will be shown.
|
|
185
|
-
*/
|
|
186
|
-
this.AIImageURL = '';
|
|
187
|
-
this.AILargeImageURL = '';
|
|
188
|
-
/**
|
|
189
|
-
* Optional, provide up to 4 welcome questions with example prompts.
|
|
190
|
-
* These will be shown to the user when the chat is first opened and there are no messages.
|
|
191
|
-
*/
|
|
192
|
-
this.WelcomeQuestions = [];
|
|
193
|
-
/**
|
|
194
|
-
* Optional, provide a prompt for the user when they click the clear all messages button.
|
|
195
|
-
*/
|
|
196
|
-
this.ClearAllMessagesPrompt = 'Are you sure you want to clear all messages?';
|
|
197
|
-
/**
|
|
198
|
-
* Set this to enable/disable sending of a message. Whenever the input is empty, this field will be
|
|
199
|
-
* ignored and the send button will be disabled.
|
|
200
|
-
*/
|
|
201
|
-
this.AllowSend = true;
|
|
202
|
-
this.InternalAllowSend = true;
|
|
203
|
-
/**
|
|
204
|
-
* The placeholder text for the input field
|
|
205
|
-
*/
|
|
206
|
-
this.Placeholder = 'Type a message...';
|
|
207
|
-
this._ShowWaitingIndicator = false;
|
|
208
|
-
this.MessageAdded = new EventEmitter();
|
|
209
|
-
this.ClearChatRequested = new EventEmitter();
|
|
210
|
-
this.currentMessage = '';
|
|
211
|
-
this.showingClearAllDialog = false;
|
|
212
|
-
this.ShowScrollToBottomButton = false;
|
|
213
207
|
}
|
|
214
208
|
SendCurrentMessage() {
|
|
215
209
|
if (this.currentMessage.trim() !== '') {
|
|
@@ -218,15 +212,13 @@ export class ChatComponent {
|
|
|
218
212
|
}
|
|
219
213
|
}
|
|
220
214
|
handleInputChange(event) {
|
|
221
|
-
|
|
222
|
-
const val = (_a = this.theInput) === null || _a === void 0 ? void 0 : _a.nativeElement.value;
|
|
215
|
+
const val = this.theInput?.nativeElement.value;
|
|
223
216
|
this.InternalAllowSend = this.AllowSend && (val ? val.length > 0 : false);
|
|
224
217
|
this.resizeTextInput();
|
|
225
218
|
}
|
|
226
219
|
resizeTextInput() {
|
|
227
|
-
var _a;
|
|
228
220
|
try {
|
|
229
|
-
const textarea =
|
|
221
|
+
const textarea = this.theInput?.nativeElement;
|
|
230
222
|
if (textarea) {
|
|
231
223
|
textarea.style.height = 'auto'; // Reset height to recalculate
|
|
232
224
|
textarea.style.height = `${textarea.scrollHeight}px`; // Set to scrollHeight
|
|
@@ -255,46 +247,44 @@ export class ChatComponent {
|
|
|
255
247
|
this.showingClearAllDialog = false;
|
|
256
248
|
}
|
|
257
249
|
FocusTextArea() {
|
|
258
|
-
setTimeout(() =>
|
|
250
|
+
setTimeout(() => this.theInput?.nativeElement.focus(), 0); // use a timeout to ensure that angular has updated the DOM
|
|
259
251
|
}
|
|
260
|
-
AppendMessage(
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
if (
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
imageElement.appendChild(img);
|
|
271
|
-
}
|
|
272
|
-
else
|
|
273
|
-
imageElement.classList.add('fa-solid', 'fa-robot');
|
|
274
|
-
}
|
|
275
|
-
else {
|
|
276
|
-
imageElement.classList.add('fa-solid', 'fa-user');
|
|
277
|
-
}
|
|
278
|
-
imageElement.classList.add("chat-message-image");
|
|
279
|
-
messageWrapElement.appendChild(imageElement);
|
|
280
|
-
const messageElement = document.createElement('div');
|
|
281
|
-
messageElement.innerHTML = yield this.markdownService.parse(message.message);
|
|
282
|
-
messageElement.className = "chat-message";
|
|
283
|
-
if (message.senderType === 'ai') {
|
|
284
|
-
messageElement.classList.add('chat-message-ai');
|
|
285
|
-
}
|
|
286
|
-
messageWrapElement.appendChild(messageElement);
|
|
287
|
-
this.Messages.push(message);
|
|
288
|
-
if (this.Messages.length === 1) {
|
|
289
|
-
// clear out the default message
|
|
290
|
-
this.messagesContainer.nativeElement.innerHTML = '';
|
|
252
|
+
async AppendMessage(message, fireEvent = true) {
|
|
253
|
+
const messageWrapElement = document.createElement('div');
|
|
254
|
+
messageWrapElement.className = "chat-message-wrap";
|
|
255
|
+
const imageElement = document.createElement('span');
|
|
256
|
+
if (message.senderType === 'ai') {
|
|
257
|
+
if (this.AIImageURL) {
|
|
258
|
+
const img = document.createElement('img');
|
|
259
|
+
img.src = this.AIImageURL;
|
|
260
|
+
img.style.maxWidth = '24px';
|
|
261
|
+
imageElement.appendChild(img);
|
|
291
262
|
}
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
}
|
|
263
|
+
else
|
|
264
|
+
imageElement.classList.add('fa-solid', 'fa-robot');
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
imageElement.classList.add('fa-solid', 'fa-user');
|
|
268
|
+
}
|
|
269
|
+
imageElement.classList.add("chat-message-image");
|
|
270
|
+
messageWrapElement.appendChild(imageElement);
|
|
271
|
+
const messageElement = document.createElement('div');
|
|
272
|
+
messageElement.innerHTML = await this.markdownService.parse(message.message);
|
|
273
|
+
messageElement.className = "chat-message";
|
|
274
|
+
if (message.senderType === 'ai') {
|
|
275
|
+
messageElement.classList.add('chat-message-ai');
|
|
276
|
+
}
|
|
277
|
+
messageWrapElement.appendChild(messageElement);
|
|
278
|
+
this.Messages.push(message);
|
|
279
|
+
if (this.Messages.length === 1) {
|
|
280
|
+
// clear out the default message
|
|
281
|
+
this.messagesContainer.nativeElement.innerHTML = '';
|
|
282
|
+
}
|
|
283
|
+
this.messagesContainer.nativeElement.appendChild(messageWrapElement);
|
|
284
|
+
if (fireEvent)
|
|
285
|
+
this.MessageAdded.emit(message);
|
|
286
|
+
this.ScrollMessagesToBottom(false);
|
|
287
|
+
this.cd.detectChanges(); // Manually trigger change detection
|
|
298
288
|
}
|
|
299
289
|
ScrollMessagesToBottom(animate = true) {
|
|
300
290
|
try {
|
|
@@ -311,6 +301,7 @@ export class ChatComponent {
|
|
|
311
301
|
}
|
|
312
302
|
catch (err) { }
|
|
313
303
|
}
|
|
304
|
+
ShowScrollToBottomButton = false;
|
|
314
305
|
handleCheckScroll() {
|
|
315
306
|
const element = this.messagesContainer.nativeElement;
|
|
316
307
|
if (element.scrollHeight - element.scrollTop > element.clientHeight) {
|
|
@@ -320,60 +311,60 @@ export class ChatComponent {
|
|
|
320
311
|
this.ShowScrollToBottomButton = false;
|
|
321
312
|
}
|
|
322
313
|
}
|
|
314
|
+
static ɵfac = function ChatComponent_Factory(t) { return new (t || ChatComponent)(i0.ɵɵdirectiveInject(i1.MarkdownService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
315
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChatComponent, selectors: [["mj-chat"]], viewQuery: function ChatComponent_Query(rf, ctx) { if (rf & 1) {
|
|
316
|
+
i0.ɵɵviewQuery(_c0, 7);
|
|
317
|
+
i0.ɵɵviewQuery(_c1, 5);
|
|
318
|
+
} if (rf & 2) {
|
|
319
|
+
let _t;
|
|
320
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.messagesContainer = _t.first);
|
|
321
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.theInput = _t.first);
|
|
322
|
+
} }, inputs: { InitialMessage: "InitialMessage", Messages: "Messages", AIImageURL: "AIImageURL", AILargeImageURL: "AILargeImageURL", WelcomeQuestions: "WelcomeQuestions", ClearAllMessagesPrompt: "ClearAllMessagesPrompt", AllowSend: "AllowSend", Placeholder: "Placeholder", ShowWaitingIndicator: "ShowWaitingIndicator" }, outputs: { MessageAdded: "MessageAdded", ClearChatRequested: "ClearChatRequested" }, decls: 18, vars: 10, consts: [["messagesContainer", ""], ["theInput", ""], ["mjFillContainer", "", 1, "chat-wrapper"], [1, "welcome-wrapper"], [1, "chat-messages", 3, "scroll"], [1, "scroll-to-bottom", "fas", "fa-arrow-down"], [1, "chat-input-area"], ["type", "converging-spinner", 1, "loader"], [1, "text-area-wrapper"], [3, "ngModelChange", "input", "keyup.enter", "ngModel", "disabled", "placeholder"], ["kendoButton", "", 3, "click", "disabled"], ["title", "Clear Chat", 1, "fa-solid", "fa-trash-can"], ["title", "Send Message", 1, "fas", "fa-solid", "fa-arrow-up"], [1, "welcome-message"], [3, "src"], [1, "welcome-header-text"], [1, "welcome-suggested-questions"], [1, "welcome-suggested-questions-col"], [1, "welcome-question"], [1, "welcome-question", 3, "click"], [1, "welcome-question-header"], [1, "scroll-to-bottom", "fas", "fa-arrow-down", 3, "click"], ["kendoButton", "", "themeColor", "primary", 3, "click"], ["kendoButton", "", 3, "click"]], template: function ChatComponent_Template(rf, ctx) { if (rf & 1) {
|
|
323
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
324
|
+
i0.ɵɵelementStart(0, "div", 2);
|
|
325
|
+
i0.ɵɵtemplate(1, ChatComponent_Conditional_1_Template, 12, 5, "div", 3);
|
|
326
|
+
i0.ɵɵelementStart(2, "div", 4, 0);
|
|
327
|
+
i0.ɵɵlistener("scroll", function ChatComponent_Template_div_scroll_2_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleCheckScroll()); });
|
|
328
|
+
i0.ɵɵelementStart(4, "span");
|
|
329
|
+
i0.ɵɵtext(5);
|
|
330
|
+
i0.ɵɵelementEnd()();
|
|
331
|
+
i0.ɵɵtemplate(6, ChatComponent_Conditional_6_Template, 1, 0, "span", 5);
|
|
332
|
+
i0.ɵɵelementStart(7, "div", 6);
|
|
333
|
+
i0.ɵɵtemplate(8, ChatComponent_Conditional_8_Template, 1, 0, "kendo-loader", 7);
|
|
334
|
+
i0.ɵɵelementStart(9, "div", 8)(10, "textarea", 9, 1);
|
|
335
|
+
i0.ɵɵtwoWayListener("ngModelChange", function ChatComponent_Template_textarea_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.currentMessage, $event) || (ctx.currentMessage = $event); return i0.ɵɵresetView($event); });
|
|
336
|
+
i0.ɵɵlistener("input", function ChatComponent_Template_textarea_input_10_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleInputChange($event)); })("keyup.enter", function ChatComponent_Template_textarea_keyup_enter_10_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.SendCurrentMessage()); });
|
|
337
|
+
i0.ɵɵtext(12, " ");
|
|
338
|
+
i0.ɵɵelementEnd()();
|
|
339
|
+
i0.ɵɵelementStart(13, "button", 10);
|
|
340
|
+
i0.ɵɵlistener("click", function ChatComponent_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.showingClearAllDialog = true); });
|
|
341
|
+
i0.ɵɵelement(14, "span", 11);
|
|
342
|
+
i0.ɵɵelementEnd();
|
|
343
|
+
i0.ɵɵelementStart(15, "button", 10);
|
|
344
|
+
i0.ɵɵlistener("click", function ChatComponent_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.SendCurrentMessage()); });
|
|
345
|
+
i0.ɵɵelement(16, "span", 12);
|
|
346
|
+
i0.ɵɵelementEnd()()();
|
|
347
|
+
i0.ɵɵtemplate(17, ChatComponent_Conditional_17_Template, 8, 1, "kendo-dialog");
|
|
348
|
+
} if (rf & 2) {
|
|
349
|
+
i0.ɵɵadvance();
|
|
350
|
+
i0.ɵɵconditional(ctx.Messages.length === 0 && !ctx.ShowWaitingIndicator ? 1 : -1);
|
|
351
|
+
i0.ɵɵadvance(4);
|
|
352
|
+
i0.ɵɵtextInterpolate(ctx.InitialMessage);
|
|
353
|
+
i0.ɵɵadvance();
|
|
354
|
+
i0.ɵɵconditional(ctx.ShowScrollToBottomButton ? 6 : -1);
|
|
355
|
+
i0.ɵɵadvance(2);
|
|
356
|
+
i0.ɵɵconditional(ctx.ShowWaitingIndicator ? 8 : -1);
|
|
357
|
+
i0.ɵɵadvance(2);
|
|
358
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx.currentMessage);
|
|
359
|
+
i0.ɵɵproperty("disabled", ctx.ShowWaitingIndicator)("placeholder", ctx.Placeholder);
|
|
360
|
+
i0.ɵɵadvance(3);
|
|
361
|
+
i0.ɵɵproperty("disabled", ctx.Messages.length === 0 || ctx.ShowWaitingIndicator);
|
|
362
|
+
i0.ɵɵadvance(2);
|
|
363
|
+
i0.ɵɵproperty("disabled", !ctx.InternalAllowSend || ctx.currentMessage.length === 0 || ctx.ShowWaitingIndicator);
|
|
364
|
+
i0.ɵɵadvance(2);
|
|
365
|
+
i0.ɵɵconditional(ctx.showingClearAllDialog ? 17 : -1);
|
|
366
|
+
} }, dependencies: [i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, i3.FillContainer, i4.LoaderComponent, i5.ButtonComponent, i6.DialogComponent, i6.DialogActionsComponent], styles: [".loader[_ngcontent-%COMP%] {\n position: absolute;\n left: 0px;\n}\n\n.chat-wrapper[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n position: relative; \n\n}\n\n.chat-messages[_ngcontent-%COMP%] {\n overflow-y: auto; \n\n overflow-x: hidden; \n\n \n\n margin-bottom: 5px;\n\n margin-top: 2px; \n\n\n flex: 1;\n}\n\n\n\n.chat-messages[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 0;\n background: transparent; \n\n}\n\n\n\n.chat-messages[_ngcontent-%COMP%]:hover::-webkit-scrollbar {\n width: 12px; \n\n background-color: #f0f0f0; \n\n\n}\n\n\n\n.chat-messages[_ngcontent-%COMP%]:hover::-webkit-scrollbar-thumb {\n background-color: #888; \n\n opacity: 0.5; \n\n}\n\n\n\n.chat-messages[_ngcontent-%COMP%]:hover::-webkit-scrollbar-thumb {\n border-radius: 10px;\n}\n\n\n\n.chat-messages[_ngcontent-%COMP%]:hover::-webkit-scrollbar-thumb:hover {\n background: #555; \n\n}\n\n\n.chat-messages[_ngcontent-%COMP%] {\n scrollbar-width: thin; \n\n scrollbar-color: #888 #f0f0f0; \n\n}\n \n\n\n\n.chat-input-area[_ngcontent-%COMP%] {\n background: #fff;\n display: flex;\n justify-content: center;\n align-items: center;\n padding-top: 12px;\n min-height: 35px;\n margin-bottom: 15px;\n}\n.chat-input-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%] {\n vertical-align: top;\n width: 30px;\n height: 30px;\n margin-top: 3px;\n border-radius: 12px;\n}\n.chat-input-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:first-of-type {\n margin-left: -40px;\n}\n.chat-input-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:last-child {\n margin-left: -65px;\n}\n\n.text-area-wrapper[_ngcontent-%COMP%] {\n padding: 3px;\n border: solid 1px rgba(0, 0, 0, 0.08) ;\n border-radius: 15px;\n\n margin-top: 4px;\n margin-right: -1px;\n min-height: 42px;\n max-height: 100%; \n\n\n overflow: hidden; \n align-items: center;\n\n \n\n max-width: 710px; \n width: 75%; \n\n padding-right: 90px; \n\n} \n.text-area-wrapper[_ngcontent-%COMP%] > textarea[_ngcontent-%COMP%] {\n border: 0;\n outline: 0;\n resize: none;\n\n min-height: 20px; \n\n\n width: 100%;\n overflow-y: hidden; \n\n\n font-family: S\u00F6hne, ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, Ubuntu, Cantarell, \"Noto Sans\", sans-serif, \"Helvetica Neue\", Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n\n margin-left: 7px;\n margin-top: 7px;\n margin-bottom: 5px;\n}\n\n.text-area-wrapper[_ngcontent-%COMP%] > textarea[_ngcontent-%COMP%]:disabled {\n background-color: white;\n}\n\n\n .chat-message-wrap {\n display: flex;\n align-items: flex-start; \n\n margin-bottom: 10px;\n margin-right: 10px;\n}\n\n .chat-message-image {\n margin-top: 12px;\n font-size: 24px; \n\n margin-right: 10px; \n\n width: 50px;\n flex-shrink: 0; \n \n}\n\n\n\n .chat-message {\n padding-left: 7px;\n padding-right: 7px;\n margin-bottom: 10px;\n border-radius: 5px;\n background-color: rgb(255, 255, 240);\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n word-wrap: break-word;\n}\n\n .chat-message-ai {\n background-color: rgb(230, 246, 253);\n}\n\n.scroll-to-bottom[_ngcontent-%COMP%] {\n position: absolute; \n\n left: 50%; \n\n transform: translateX(-50%); \n\n bottom: 100px; \n\n z-index: 1000; \n\n border-radius: 50%;\n width: 35px;\n height: 35px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 22px;\n background-color: #f8f8f8;\n box-shadow: 0px 0px 5px rgba(0,0,0,0.3); \n\n cursor: pointer;\n}\n\n\n\n\n\n.welcome-wrapper[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.welcome-message[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n overflow: hidden;\n height: 100%;\n}\n\n\n.welcome-message[_ngcontent-%COMP%] img[_ngcontent-%COMP%] {\n width: 120px;\n height: 50px;\n margin-bottom: 20px; \n\n}\n\n.welcome-header-text[_ngcontent-%COMP%] {\n font-size: larger;\n font-weight: bold;\n}\n\n\n\n.welcome-suggested-questions[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-content: center;\n}\n.welcome-suggested-questions-col[_ngcontent-%COMP%] {\n display: flex;\n}\n\n\n\n.welcome-question[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column; \n\n align-items: left;;\n width: 300px; \n justify-content: space-between;\n margin: 5px; \n\n border: solid 1px rgba(41, 28, 28, 0.08);\n border-radius: 15px;\n padding: 10px;\n cursor: pointer;\n}\n\n.welcome-question[_ngcontent-%COMP%]:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n\n.welcome-question-header[_ngcontent-%COMP%] {\n font-size: 12pt;\n font-weight: bold;\n display: block; \n\n}\n\n\n\n.welcome-question[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:not(.welcome-question-header) {\n font-weight: normal;\n font-size: 10pt;\n}"] });
|
|
323
367
|
}
|
|
324
|
-
ChatComponent.ɵfac = function ChatComponent_Factory(t) { return new (t || ChatComponent)(i0.ɵɵdirectiveInject(i1.MarkdownService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
325
|
-
ChatComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChatComponent, selectors: [["mj-chat"]], viewQuery: function ChatComponent_Query(rf, ctx) { if (rf & 1) {
|
|
326
|
-
i0.ɵɵviewQuery(_c0, 7);
|
|
327
|
-
i0.ɵɵviewQuery(_c1, 5);
|
|
328
|
-
} if (rf & 2) {
|
|
329
|
-
let _t;
|
|
330
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.messagesContainer = _t.first);
|
|
331
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.theInput = _t.first);
|
|
332
|
-
} }, inputs: { InitialMessage: "InitialMessage", Messages: "Messages", AIImageURL: "AIImageURL", AILargeImageURL: "AILargeImageURL", WelcomeQuestions: "WelcomeQuestions", ClearAllMessagesPrompt: "ClearAllMessagesPrompt", AllowSend: "AllowSend", Placeholder: "Placeholder", ShowWaitingIndicator: "ShowWaitingIndicator" }, outputs: { MessageAdded: "MessageAdded", ClearChatRequested: "ClearChatRequested" }, decls: 18, vars: 10, consts: [["messagesContainer", ""], ["theInput", ""], ["mjFillContainer", "", 1, "chat-wrapper"], [1, "welcome-wrapper"], [1, "chat-messages", 3, "scroll"], [1, "scroll-to-bottom", "fas", "fa-arrow-down"], [1, "chat-input-area"], ["type", "converging-spinner", 1, "loader"], [1, "text-area-wrapper"], [3, "ngModelChange", "input", "keyup.enter", "ngModel", "disabled", "placeholder"], ["kendoButton", "", 3, "click", "disabled"], ["title", "Clear Chat", 1, "fa-solid", "fa-trash-can"], ["title", "Send Message", 1, "fas", "fa-solid", "fa-arrow-up"], [1, "welcome-message"], [3, "src"], [1, "welcome-header-text"], [1, "welcome-suggested-questions"], [1, "welcome-suggested-questions-col"], [1, "welcome-question"], [1, "welcome-question", 3, "click"], [1, "welcome-question-header"], [1, "scroll-to-bottom", "fas", "fa-arrow-down", 3, "click"], ["kendoButton", "", "themeColor", "primary", 3, "click"], ["kendoButton", "", 3, "click"]], template: function ChatComponent_Template(rf, ctx) { if (rf & 1) {
|
|
333
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
|
334
|
-
i0.ɵɵelementStart(0, "div", 2);
|
|
335
|
-
i0.ɵɵtemplate(1, ChatComponent_Conditional_1_Template, 12, 5, "div", 3);
|
|
336
|
-
i0.ɵɵelementStart(2, "div", 4, 0);
|
|
337
|
-
i0.ɵɵlistener("scroll", function ChatComponent_Template_div_scroll_2_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleCheckScroll()); });
|
|
338
|
-
i0.ɵɵelementStart(4, "span");
|
|
339
|
-
i0.ɵɵtext(5);
|
|
340
|
-
i0.ɵɵelementEnd()();
|
|
341
|
-
i0.ɵɵtemplate(6, ChatComponent_Conditional_6_Template, 1, 0, "span", 5);
|
|
342
|
-
i0.ɵɵelementStart(7, "div", 6);
|
|
343
|
-
i0.ɵɵtemplate(8, ChatComponent_Conditional_8_Template, 1, 0, "kendo-loader", 7);
|
|
344
|
-
i0.ɵɵelementStart(9, "div", 8)(10, "textarea", 9, 1);
|
|
345
|
-
i0.ɵɵtwoWayListener("ngModelChange", function ChatComponent_Template_textarea_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.currentMessage, $event) || (ctx.currentMessage = $event); return i0.ɵɵresetView($event); });
|
|
346
|
-
i0.ɵɵlistener("input", function ChatComponent_Template_textarea_input_10_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleInputChange($event)); })("keyup.enter", function ChatComponent_Template_textarea_keyup_enter_10_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.SendCurrentMessage()); });
|
|
347
|
-
i0.ɵɵtext(12, " ");
|
|
348
|
-
i0.ɵɵelementEnd()();
|
|
349
|
-
i0.ɵɵelementStart(13, "button", 10);
|
|
350
|
-
i0.ɵɵlistener("click", function ChatComponent_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.showingClearAllDialog = true); });
|
|
351
|
-
i0.ɵɵelement(14, "span", 11);
|
|
352
|
-
i0.ɵɵelementEnd();
|
|
353
|
-
i0.ɵɵelementStart(15, "button", 10);
|
|
354
|
-
i0.ɵɵlistener("click", function ChatComponent_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.SendCurrentMessage()); });
|
|
355
|
-
i0.ɵɵelement(16, "span", 12);
|
|
356
|
-
i0.ɵɵelementEnd()()();
|
|
357
|
-
i0.ɵɵtemplate(17, ChatComponent_Conditional_17_Template, 8, 1, "kendo-dialog");
|
|
358
|
-
} if (rf & 2) {
|
|
359
|
-
i0.ɵɵadvance();
|
|
360
|
-
i0.ɵɵconditional(ctx.Messages.length === 0 && !ctx.ShowWaitingIndicator ? 1 : -1);
|
|
361
|
-
i0.ɵɵadvance(4);
|
|
362
|
-
i0.ɵɵtextInterpolate(ctx.InitialMessage);
|
|
363
|
-
i0.ɵɵadvance();
|
|
364
|
-
i0.ɵɵconditional(ctx.ShowScrollToBottomButton ? 6 : -1);
|
|
365
|
-
i0.ɵɵadvance(2);
|
|
366
|
-
i0.ɵɵconditional(ctx.ShowWaitingIndicator ? 8 : -1);
|
|
367
|
-
i0.ɵɵadvance(2);
|
|
368
|
-
i0.ɵɵtwoWayProperty("ngModel", ctx.currentMessage);
|
|
369
|
-
i0.ɵɵproperty("disabled", ctx.ShowWaitingIndicator)("placeholder", ctx.Placeholder);
|
|
370
|
-
i0.ɵɵadvance(3);
|
|
371
|
-
i0.ɵɵproperty("disabled", ctx.Messages.length === 0 || ctx.ShowWaitingIndicator);
|
|
372
|
-
i0.ɵɵadvance(2);
|
|
373
|
-
i0.ɵɵproperty("disabled", !ctx.InternalAllowSend || ctx.currentMessage.length === 0 || ctx.ShowWaitingIndicator);
|
|
374
|
-
i0.ɵɵadvance(2);
|
|
375
|
-
i0.ɵɵconditional(ctx.showingClearAllDialog ? 17 : -1);
|
|
376
|
-
} }, dependencies: [i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, i3.FillContainer, i4.LoaderComponent, i5.ButtonComponent, i6.DialogComponent, i6.DialogActionsComponent], styles: [".loader[_ngcontent-%COMP%] {\n position: absolute;\n left: 0px;\n}\n\n.chat-wrapper[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n position: relative; \n\n}\n\n.chat-messages[_ngcontent-%COMP%] {\n overflow-y: auto; \n\n overflow-x: hidden; \n\n \n\n margin-bottom: 5px;\n\n margin-top: 2px; \n\n\n flex: 1;\n}\n\n\n\n.chat-messages[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 0;\n background: transparent; \n\n}\n\n\n\n.chat-messages[_ngcontent-%COMP%]:hover::-webkit-scrollbar {\n width: 12px; \n\n background-color: #f0f0f0; \n\n\n}\n\n\n\n.chat-messages[_ngcontent-%COMP%]:hover::-webkit-scrollbar-thumb {\n background-color: #888; \n\n opacity: 0.5; \n\n}\n\n\n\n.chat-messages[_ngcontent-%COMP%]:hover::-webkit-scrollbar-thumb {\n border-radius: 10px;\n}\n\n\n\n.chat-messages[_ngcontent-%COMP%]:hover::-webkit-scrollbar-thumb:hover {\n background: #555; \n\n}\n\n\n.chat-messages[_ngcontent-%COMP%] {\n scrollbar-width: thin; \n\n scrollbar-color: #888 #f0f0f0; \n\n}\n \n\n\n\n.chat-input-area[_ngcontent-%COMP%] {\n background: #fff;\n display: flex;\n justify-content: center;\n align-items: center;\n padding-top: 12px;\n min-height: 35px;\n margin-bottom: 15px;\n}\n.chat-input-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%] {\n vertical-align: top;\n width: 30px;\n height: 30px;\n margin-top: 3px;\n border-radius: 12px;\n}\n.chat-input-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:first-of-type {\n margin-left: -40px;\n}\n.chat-input-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:last-child {\n margin-left: -65px;\n}\n\n.text-area-wrapper[_ngcontent-%COMP%] {\n padding: 3px;\n border: solid 1px rgba(0, 0, 0, 0.08) ;\n border-radius: 15px;\n\n margin-top: 4px;\n margin-right: -1px;\n min-height: 42px;\n max-height: 100%; \n\n\n overflow: hidden; \n align-items: center;\n\n \n\n max-width: 710px; \n width: 75%; \n\n padding-right: 90px; \n\n} \n.text-area-wrapper[_ngcontent-%COMP%] > textarea[_ngcontent-%COMP%] {\n border: 0;\n outline: 0;\n resize: none;\n\n min-height: 20px; \n\n\n width: 100%;\n overflow-y: hidden; \n\n\n font-family: S\u00F6hne, ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, Ubuntu, Cantarell, \"Noto Sans\", sans-serif, \"Helvetica Neue\", Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n\n margin-left: 7px;\n margin-top: 7px;\n margin-bottom: 5px;\n}\n\n.text-area-wrapper[_ngcontent-%COMP%] > textarea[_ngcontent-%COMP%]:disabled {\n background-color: white;\n}\n\n\n .chat-message-wrap {\n display: flex;\n align-items: flex-start; \n\n margin-bottom: 10px;\n margin-right: 10px;\n}\n\n .chat-message-image {\n margin-top: 12px;\n font-size: 24px; \n\n margin-right: 10px; \n\n width: 50px;\n flex-shrink: 0; \n \n}\n\n\n\n .chat-message {\n padding-left: 7px;\n padding-right: 7px;\n margin-bottom: 10px;\n border-radius: 5px;\n background-color: rgb(255, 255, 240);\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n word-wrap: break-word;\n}\n\n .chat-message-ai {\n background-color: rgb(230, 246, 253);\n}\n\n.scroll-to-bottom[_ngcontent-%COMP%] {\n position: absolute; \n\n left: 50%; \n\n transform: translateX(-50%); \n\n bottom: 100px; \n\n z-index: 1000; \n\n border-radius: 50%;\n width: 35px;\n height: 35px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 22px;\n background-color: #f8f8f8;\n box-shadow: 0px 0px 5px rgba(0,0,0,0.3); \n\n cursor: pointer;\n}\n\n\n\n\n\n.welcome-wrapper[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.welcome-message[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n overflow: hidden;\n height: 100%;\n}\n\n\n.welcome-message[_ngcontent-%COMP%] img[_ngcontent-%COMP%] {\n width: 120px;\n height: 50px;\n margin-bottom: 20px; \n\n}\n\n.welcome-header-text[_ngcontent-%COMP%] {\n font-size: larger;\n font-weight: bold;\n}\n\n\n\n.welcome-suggested-questions[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-content: center;\n}\n.welcome-suggested-questions-col[_ngcontent-%COMP%] {\n display: flex;\n}\n\n\n\n.welcome-question[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column; \n\n align-items: left;;\n width: 300px; \n justify-content: space-between;\n margin: 5px; \n\n border: solid 1px rgba(41, 28, 28, 0.08);\n border-radius: 15px;\n padding: 10px;\n cursor: pointer;\n}\n\n.welcome-question[_ngcontent-%COMP%]:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n\n.welcome-question-header[_ngcontent-%COMP%] {\n font-size: 12pt;\n font-weight: bold;\n display: block; \n\n}\n\n\n\n.welcome-question[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:not(.welcome-question-header) {\n font-weight: normal;\n font-size: 10pt;\n}"] });
|
|
377
368
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ChatComponent, [{
|
|
378
369
|
type: Component,
|
|
379
370
|
args: [{ selector: 'mj-chat', template: "<div mjFillContainer class=\"chat-wrapper\">\n @if(Messages.length === 0 && !ShowWaitingIndicator) {\n <div class=\"welcome-wrapper\">\n <div class='welcome-message'>\n @if(AILargeImageURL) {\n <img [src]=\"AILargeImageURL\"/>\n }\n <div class=\"welcome-header-text\">What can I help with today?</div>\n </div>\n <div class='welcome-suggested-questions'>\n <div class=\"welcome-suggested-questions-col\">\n @if (WelcomeQuestions.length > 0) {\n <div class=\"welcome-question\" (click)=\"SendUserMessage(WelcomeQuestions[0].prompt)\">\n <span class=\"welcome-question-header\">{{WelcomeQuestions[0].topLine}}</span>\n <span>{{WelcomeQuestions[0].bottomLine}}</span>\n </div>\n }\n @if (WelcomeQuestions.length > 1) {\n <div class=\"welcome-question\" (click)=\"SendUserMessage(WelcomeQuestions[1].prompt)\">\n <span class=\"welcome-question-header\">{{WelcomeQuestions[1].topLine}}</span>\n <span>{{WelcomeQuestions[1].bottomLine}}</span>\n </div> \n }\n </div>\n <div class=\"welcome-suggested-questions-col\">\n @if (WelcomeQuestions.length > 2) {\n <div class=\"welcome-question\" (click)=\"SendUserMessage(WelcomeQuestions[2].prompt)\">\n <span class=\"welcome-question-header\">{{WelcomeQuestions[2].topLine}}</span>\n <span>{{WelcomeQuestions[2].bottomLine}}</span>\n </div> \n }\n @if (WelcomeQuestions.length > 3) {\n <div class=\"welcome-question\" (click)=\"SendUserMessage(WelcomeQuestions[3].prompt)\">\n <span class=\"welcome-question-header\">{{WelcomeQuestions[3].topLine}}</span>\n <span>{{WelcomeQuestions[3].bottomLine}}</span>\n </div> \n }\n </div>\n </div>\n </div> \n }\n\n <div class=\"chat-messages\" \n #messagesContainer \n (scroll)=\"handleCheckScroll()\">\n <!-- messages go here -->\n <span>{{InitialMessage}}</span>\n </div>\n @if (ShowScrollToBottomButton) {\n <span class=\"scroll-to-bottom fas fa-arrow-down\" (click)=\"ScrollMessagesToBottom()\"></span>\n }\n\n <div class = \"chat-input-area\">\n @if (ShowWaitingIndicator) {\n <kendo-loader type=\"converging-spinner\" class=\"loader\"></kendo-loader>\n }\n <div class=\"text-area-wrapper\">\n <textarea #theInput \n [(ngModel)]=\"currentMessage\" \n [disabled]=\"ShowWaitingIndicator\" \n [placeholder]=\"Placeholder\" \n (input)=\"handleInputChange($event)\"\n (keyup.enter)=\"SendCurrentMessage()\" >\n </textarea>\n </div>\n <button kendoButton \n [disabled]=\"Messages.length === 0 || ShowWaitingIndicator\"\n (click)=\"showingClearAllDialog = true\">\n <span class=\"fa-solid fa-trash-can\" title=\"Clear Chat\">\n </span>\n </button>\n <button kendoButton\n [disabled]=\"!InternalAllowSend || currentMessage.length === 0 || ShowWaitingIndicator\" \n (click)=\"SendCurrentMessage()\">\n <span class=\"fas fa-solid fa-arrow-up\" title=\"Send Message\"></span>\n </button>\n </div>\n</div>\n@if (showingClearAllDialog) {\n <kendo-dialog>\n <p>{{ClearAllMessagesPrompt}}</p>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"HandleClearChat()\" themeColor=\"primary\">Yes</button>\n <button kendoButton (click)=\"showingClearAllDialog = false\">No</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n}\n", styles: [".loader {\n position: absolute;\n left: 0px;\n}\n\n.chat-wrapper {\n display: flex;\n flex-direction: column;\n position: relative; /* Add this line if the wrapper needs to be a reference point */\n}\n\n.chat-messages {\n overflow-y: auto; /* enable scrolling if the content overflows */\n overflow-x: hidden; /* hide horizontal scrollbar */\n /* border: solid 1px rgba(0, 0, 0, 0.08); */\n margin-bottom: 5px;\n\n margin-top: 2px; /* align it with the top of converation history exactly*/\n\n flex: 1;\n}\n\n/* Hide scrollbar for Chrome, Safari and Opera */\n.chat-messages::-webkit-scrollbar {\n width: 0;\n background: transparent; /* Optional: just make scrollbar invisible */\n}\n\n/* Optional: Show scrollbar on hover */\n.chat-messages:hover::-webkit-scrollbar {\n width: 12px; /* Adjust the width of the scrollbar here */\n background-color: #f0f0f0; /* Adjust the background color of the scrollbar here */\n\n}\n\n/* Handle on hover */\n.chat-messages:hover::-webkit-scrollbar-thumb {\n background-color: #888; /* Adjust the color of the scrollbar handle here */\n opacity: 0.5; /* Adjust the opacity of the scrollbar handle here */\n}\n\n/* Handle rounded corners */\n.chat-messages:hover::-webkit-scrollbar-thumb {\n border-radius: 10px;\n}\n\n/* Optional: handle's hover effect */\n.chat-messages:hover::-webkit-scrollbar-thumb:hover {\n background: #555; /* Adjust hover color here */\n}\n/* Works on Firefox */\n.chat-messages {\n scrollbar-width: thin; /* \"auto\" or \"thin\" */\n scrollbar-color: #888 #f0f0f0; /* thumb and track color */\n}\n \n\n\n\n.chat-input-area {\n background: #fff;\n display: flex;\n justify-content: center;\n align-items: center;\n padding-top: 12px;\n min-height: 35px;\n margin-bottom: 15px;\n}\n.chat-input-area > button {\n vertical-align: top;\n width: 30px;\n height: 30px;\n margin-top: 3px;\n border-radius: 12px;\n}\n.chat-input-area > button:first-of-type {\n margin-left: -40px;\n}\n.chat-input-area > button:last-child {\n margin-left: -65px;\n}\n\n.text-area-wrapper {\n padding: 3px;\n border: solid 1px rgba(0, 0, 0, 0.08) ;\n border-radius: 15px;\n\n margin-top: 4px;\n margin-right: -1px;\n min-height: 42px;\n max-height: 100%; /* Prevent it from growing beyond the container */\n\n overflow: hidden; \n align-items: center;\n\n /*combined width and padding is 800*/\n max-width: 710px; \n width: 75%; /*take up 75% but no more than 710px*/\n padding-right: 90px; /* Space for the buttons */\n} \n.text-area-wrapper > textarea {\n border: 0;\n outline: 0;\n resize: none;\n\n min-height: 20px; /* Initial height */\n\n width: 100%;\n overflow-y: hidden; /* Hide scrollbar */\n\n font-family: S\u00F6hne, ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, Ubuntu, Cantarell, \"Noto Sans\", sans-serif, \"Helvetica Neue\", Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n\n margin-left: 7px;\n margin-top: 7px;\n margin-bottom: 5px;\n}\n\n.text-area-wrapper > textarea:disabled {\n background-color: white;\n}\n\n\n::ng-deep .chat-message-wrap {\n display: flex;\n align-items: flex-start; /* Align items to the top */\n margin-bottom: 10px;\n margin-right: 10px;\n}\n\n::ng-deep .chat-message-image {\n margin-top: 12px;\n font-size: 24px; /* Adjust size as necessary */\n margin-right: 10px; /* Space between the icon and the message text */\n width: 50px;\n flex-shrink: 0; /* Prevents the icon from shrinking */ \n}\n\n/* Styling for dynamic markdown content and message differentiation */\n::ng-deep .chat-message {\n padding-left: 7px;\n padding-right: 7px;\n margin-bottom: 10px;\n border-radius: 5px;\n background-color: rgb(255, 255, 240);\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n word-wrap: break-word;\n}\n\n::ng-deep .chat-message-ai {\n background-color: rgb(230, 246, 253);\n}\n\n.scroll-to-bottom {\n position: absolute; /* Or absolute, depending on your layout specifics */\n left: 50%; /* Start from the middle of the container */\n transform: translateX(-50%); /* Move it back by half of its own width to truly center it */\n bottom: 100px; /* Adjust based on the height of your input area */\n z-index: 1000; /* Make sure it's above all other content */\n border-radius: 50%;\n width: 35px;\n height: 35px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 22px;\n background-color: #f8f8f8;\n box-shadow: 0px 0px 5px rgba(0,0,0,0.3); /* Optional: Adds a subtle shadow for better visibility */\n cursor: pointer;\n}\n\n\n\n/* Center the welcome message vertically and horizontally */\n.welcome-wrapper {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.welcome-message {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n overflow: hidden;\n height: 100%;\n}\n\n\n.welcome-message img {\n width: 120px;\n height: 50px;\n margin-bottom: 20px; /* Adds some space between the image and the text below */\n}\n\n.welcome-header-text {\n font-size: larger;\n font-weight: bold;\n}\n\n/* Position the welcome-suggested-questions at the bottom of its container */\n.welcome-suggested-questions {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-content: center;\n}\n.welcome-suggested-questions-col {\n display: flex;\n}\n\n/* Flex layout for questions, two per row */\n.welcome-question {\n display: flex;\n flex-direction: column; /* Stack the header and text vertically */\n align-items: left;;\n width: 300px; \n justify-content: space-between;\n margin: 5px; /* Adds some space around each question */\n border: solid 1px rgba(41, 28, 28, 0.08);\n border-radius: 15px;\n padding: 10px;\n cursor: pointer;\n}\n\n.welcome-question:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n\n.welcome-question-header {\n font-size: 12pt;\n font-weight: bold;\n display: block; /* Ensures the header is on its own line */\n}\n\n/* Non-bold text for the content below the header */\n.welcome-question span:not(.welcome-question-header) {\n font-weight: normal;\n font-size: 10pt;\n}\n"] }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.component.js","sourceRoot":"","sources":["../../../src/lib/chat/chat.component.ts","../../../src/lib/chat/chat.component.html"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat.component.js","sourceRoot":"","sources":["../../../src/lib/chat/chat.component.ts","../../../src/lib/chat/chat.component.html"],"names":[],"mappings":"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"}
|
package/dist/lib/module.js
CHANGED
|
@@ -12,16 +12,16 @@ import { DialogModule } from '@progress/kendo-angular-dialog';
|
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
import * as i1 from "ngx-markdown";
|
|
14
14
|
export class ChatModule {
|
|
15
|
+
static ɵfac = function ChatModule_Factory(t) { return new (t || ChatModule)(); };
|
|
16
|
+
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ChatModule });
|
|
17
|
+
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
|
|
18
|
+
FormsModule,
|
|
19
|
+
ContainerDirectivesModule,
|
|
20
|
+
IndicatorsModule,
|
|
21
|
+
ButtonsModule,
|
|
22
|
+
DialogModule,
|
|
23
|
+
MarkdownModule.forRoot()] });
|
|
15
24
|
}
|
|
16
|
-
ChatModule.ɵfac = function ChatModule_Factory(t) { return new (t || ChatModule)(); };
|
|
17
|
-
ChatModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ChatModule });
|
|
18
|
-
ChatModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
|
|
19
|
-
FormsModule,
|
|
20
|
-
ContainerDirectivesModule,
|
|
21
|
-
IndicatorsModule,
|
|
22
|
-
ButtonsModule,
|
|
23
|
-
DialogModule,
|
|
24
|
-
MarkdownModule.forRoot()] });
|
|
25
25
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ChatModule, [{
|
|
26
26
|
type: NgModule,
|
|
27
27
|
args: [{
|
package/dist/lib/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;;;AAmB9D,MAAM,OAAO,UAAU
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/lib/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;;;AAmB9D,MAAM,OAAO,UAAU;oEAAV,UAAU;4DAAV,UAAU;gEAZnB,YAAY;YACZ,WAAW;YACX,yBAAyB;YACzB,gBAAgB;YAChB,aAAa;YACb,YAAY;YACZ,cAAc,CAAC,OAAO,EAAE;;iFAMf,UAAU;cAjBtB,QAAQ;eAAC;gBACR,YAAY,EAAE;oBACZ,aAAa;iBACd;gBACD,OAAO,EAAE;oBACP,YAAY;oBACZ,WAAW;oBACX,yBAAyB;oBACzB,gBAAgB;oBAChB,aAAa;oBACb,YAAY;oBACZ,cAAc,CAAC,OAAO,EAAE;iBACzB;gBACD,OAAO,EAAE;oBACP,aAAa;iBACd;aACF;;wFACY,UAAU,mBAfnB,aAAa,aAGb,YAAY;QACZ,WAAW;QACX,yBAAyB;QACzB,gBAAgB;QAChB,aAAa;QACb,YAAY,gCAIZ,aAAa"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-chat",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.50.0",
|
|
4
4
|
"description": "MemberJunction: Reusable Chat Component - can be used for AI or peer to peer chat applications.",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"@angular/forms": "18.0.2"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@memberjunction/core": "2.
|
|
28
|
-
"@memberjunction/ng-container-directives": "2.
|
|
27
|
+
"@memberjunction/core": "2.50.0",
|
|
28
|
+
"@memberjunction/ng-container-directives": "2.50.0",
|
|
29
29
|
"@progress/kendo-angular-indicators": "16.2.0",
|
|
30
30
|
"@progress/kendo-angular-buttons": "16.2.0",
|
|
31
31
|
"@progress/kendo-angular-dialog": "16.2.0",
|