@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
- constructor() {
149
- this.topLine = "";
150
- this.bottomLine = "";
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
- (_a = this.cd) === null || _a === void 0 ? void 0 : _a.detectChanges(); // Manually trigger change detection
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
- var _a;
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 = (_a = this.theInput) === null || _a === void 0 ? void 0 : _a.nativeElement;
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(() => { var _a; return (_a = this.theInput) === null || _a === void 0 ? void 0 : _a.nativeElement.focus(); }, 0); // use a timeout to ensure that angular has updated the DOM
250
+ setTimeout(() => this.theInput?.nativeElement.focus(), 0); // use a timeout to ensure that angular has updated the DOM
259
251
  }
260
- AppendMessage(message_1) {
261
- return __awaiter(this, arguments, void 0, function* (message, fireEvent = true) {
262
- const messageWrapElement = document.createElement('div');
263
- messageWrapElement.className = "chat-message-wrap";
264
- const imageElement = document.createElement('span');
265
- if (message.senderType === 'ai') {
266
- if (this.AIImageURL) {
267
- const img = document.createElement('img');
268
- img.src = this.AIImageURL;
269
- img.style.maxWidth = '24px';
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
- this.messagesContainer.nativeElement.appendChild(messageWrapElement);
293
- if (fireEvent)
294
- this.MessageAdded.emit(message);
295
- this.ScrollMessagesToBottom(false);
296
- this.cd.detectChanges(); // Manually trigger change detection
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":"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"}
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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"}
@@ -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: [{
@@ -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;;oEAAV,UAAU;4DAAV,UAAU;gEAZnB,YAAY;QACZ,WAAW;QACX,yBAAyB;QACzB,gBAAgB;QAChB,aAAa;QACb,YAAY;QACZ,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"}
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.48.0",
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.48.0",
28
- "@memberjunction/ng-container-directives": "2.48.0",
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",