@a.izzuddin/ai-chat 0.2.9 → 0.2.11
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/custom-elements.json +58 -29
- package/dist/index.d.mts +11 -2
- package/dist/index.d.ts +11 -2
- package/dist/index.js +83 -22
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +83 -22
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/custom-elements.json
CHANGED
|
@@ -69,7 +69,18 @@
|
|
|
69
69
|
{
|
|
70
70
|
"kind": "javascript-module",
|
|
71
71
|
"path": "dist/index.js",
|
|
72
|
-
"declarations": [
|
|
72
|
+
"declarations": [
|
|
73
|
+
{
|
|
74
|
+
"kind": "variable",
|
|
75
|
+
"name": "suggestedQuestions",
|
|
76
|
+
"default": "void 0"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"kind": "variable",
|
|
80
|
+
"name": "faqs",
|
|
81
|
+
"default": "void 0"
|
|
82
|
+
}
|
|
83
|
+
],
|
|
73
84
|
"exports": []
|
|
74
85
|
},
|
|
75
86
|
{
|
|
@@ -515,34 +526,6 @@
|
|
|
515
526
|
}
|
|
516
527
|
]
|
|
517
528
|
},
|
|
518
|
-
{
|
|
519
|
-
"kind": "javascript-module",
|
|
520
|
-
"path": "src/components/AIChat.tsx",
|
|
521
|
-
"declarations": [
|
|
522
|
-
{
|
|
523
|
-
"kind": "function",
|
|
524
|
-
"name": "AIChat",
|
|
525
|
-
"parameters": [
|
|
526
|
-
{
|
|
527
|
-
"name": "{\n apiUrl,\n sessionId = \"default-session\",\n title = \"My AI Agent\",\n initialMessages = [],\n className,\n onMessageSent,\n onResponseReceived,\n onError,\n}",
|
|
528
|
-
"type": {
|
|
529
|
-
"text": "AIChatProps"
|
|
530
|
-
}
|
|
531
|
-
}
|
|
532
|
-
]
|
|
533
|
-
}
|
|
534
|
-
],
|
|
535
|
-
"exports": [
|
|
536
|
-
{
|
|
537
|
-
"kind": "js",
|
|
538
|
-
"name": "AIChat",
|
|
539
|
-
"declaration": {
|
|
540
|
-
"name": "AIChat",
|
|
541
|
-
"module": "src/components/AIChat.tsx"
|
|
542
|
-
}
|
|
543
|
-
}
|
|
544
|
-
]
|
|
545
|
-
},
|
|
546
529
|
{
|
|
547
530
|
"kind": "javascript-module",
|
|
548
531
|
"path": "src/components/ai-chat.ts",
|
|
@@ -723,6 +706,16 @@
|
|
|
723
706
|
"default": "''",
|
|
724
707
|
"attribute": "welcome-subtitle"
|
|
725
708
|
},
|
|
709
|
+
{
|
|
710
|
+
"kind": "field",
|
|
711
|
+
"name": "initialQuestionsUrl",
|
|
712
|
+
"privacy": "public",
|
|
713
|
+
"type": {
|
|
714
|
+
"text": "string"
|
|
715
|
+
},
|
|
716
|
+
"default": "''",
|
|
717
|
+
"attribute": "initial-questions-url"
|
|
718
|
+
},
|
|
726
719
|
{
|
|
727
720
|
"kind": "field",
|
|
728
721
|
"name": "messages",
|
|
@@ -1067,6 +1060,14 @@
|
|
|
1067
1060
|
},
|
|
1068
1061
|
"default": "''",
|
|
1069
1062
|
"fieldName": "welcomeSubtitle"
|
|
1063
|
+
},
|
|
1064
|
+
{
|
|
1065
|
+
"name": "initial-questions-url",
|
|
1066
|
+
"type": {
|
|
1067
|
+
"text": "string"
|
|
1068
|
+
},
|
|
1069
|
+
"default": "''",
|
|
1070
|
+
"fieldName": "initialQuestionsUrl"
|
|
1070
1071
|
}
|
|
1071
1072
|
],
|
|
1072
1073
|
"superclass": {
|
|
@@ -1095,6 +1096,34 @@
|
|
|
1095
1096
|
}
|
|
1096
1097
|
}
|
|
1097
1098
|
]
|
|
1099
|
+
},
|
|
1100
|
+
{
|
|
1101
|
+
"kind": "javascript-module",
|
|
1102
|
+
"path": "src/components/AIChat.tsx",
|
|
1103
|
+
"declarations": [
|
|
1104
|
+
{
|
|
1105
|
+
"kind": "function",
|
|
1106
|
+
"name": "AIChat",
|
|
1107
|
+
"parameters": [
|
|
1108
|
+
{
|
|
1109
|
+
"name": "{\r\n apiUrl,\r\n sessionId = \"default-session\",\r\n title = \"My AI Agent\",\r\n initialMessages = [],\r\n className,\r\n onMessageSent,\r\n onResponseReceived,\r\n onError,\r\n}",
|
|
1110
|
+
"type": {
|
|
1111
|
+
"text": "AIChatProps"
|
|
1112
|
+
}
|
|
1113
|
+
}
|
|
1114
|
+
]
|
|
1115
|
+
}
|
|
1116
|
+
],
|
|
1117
|
+
"exports": [
|
|
1118
|
+
{
|
|
1119
|
+
"kind": "js",
|
|
1120
|
+
"name": "AIChat",
|
|
1121
|
+
"declaration": {
|
|
1122
|
+
"name": "AIChat",
|
|
1123
|
+
"module": "src/components/AIChat.tsx"
|
|
1124
|
+
}
|
|
1125
|
+
}
|
|
1126
|
+
]
|
|
1098
1127
|
}
|
|
1099
1128
|
]
|
|
1100
1129
|
}
|
package/dist/index.d.mts
CHANGED
|
@@ -2,11 +2,15 @@ import * as lit_html from 'lit-html';
|
|
|
2
2
|
import * as lit from 'lit';
|
|
3
3
|
import { LitElement, PropertyValues } from 'lit';
|
|
4
4
|
|
|
5
|
+
interface FAQ {
|
|
6
|
+
No: string;
|
|
7
|
+
Question: string;
|
|
8
|
+
}
|
|
5
9
|
interface Message {
|
|
6
10
|
id: string;
|
|
7
11
|
role: 'user' | 'assistant';
|
|
8
12
|
content: string;
|
|
9
|
-
faqs?:
|
|
13
|
+
faqs?: FAQ[];
|
|
10
14
|
suggestedQuestions?: string[];
|
|
11
15
|
}
|
|
12
16
|
/**
|
|
@@ -66,6 +70,7 @@ declare class AIChat extends LitElement {
|
|
|
66
70
|
botMessageBg: string;
|
|
67
71
|
welcomeMessage: string;
|
|
68
72
|
welcomeSubtitle: string;
|
|
73
|
+
initialQuestionsUrl: string;
|
|
69
74
|
private messages;
|
|
70
75
|
private input;
|
|
71
76
|
private isLoading;
|
|
@@ -137,6 +142,10 @@ declare class AIChat extends LitElement {
|
|
|
137
142
|
type: StringConstructor;
|
|
138
143
|
attribute: string;
|
|
139
144
|
};
|
|
145
|
+
initialQuestionsUrl: {
|
|
146
|
+
type: StringConstructor;
|
|
147
|
+
attribute: string;
|
|
148
|
+
};
|
|
140
149
|
};
|
|
141
150
|
constructor();
|
|
142
151
|
private toggleWidget;
|
|
@@ -151,7 +160,7 @@ declare class AIChat extends LitElement {
|
|
|
151
160
|
private loadMessagesFromStorage;
|
|
152
161
|
private clearMessagesFromStorage;
|
|
153
162
|
private formatMessageContent;
|
|
154
|
-
connectedCallback(): void
|
|
163
|
+
connectedCallback(): Promise<void>;
|
|
155
164
|
updated(changedProperties: PropertyValues): void;
|
|
156
165
|
private scrollToBottom;
|
|
157
166
|
private handleInput;
|
package/dist/index.d.ts
CHANGED
|
@@ -2,11 +2,15 @@ import * as lit_html from 'lit-html';
|
|
|
2
2
|
import * as lit from 'lit';
|
|
3
3
|
import { LitElement, PropertyValues } from 'lit';
|
|
4
4
|
|
|
5
|
+
interface FAQ {
|
|
6
|
+
No: string;
|
|
7
|
+
Question: string;
|
|
8
|
+
}
|
|
5
9
|
interface Message {
|
|
6
10
|
id: string;
|
|
7
11
|
role: 'user' | 'assistant';
|
|
8
12
|
content: string;
|
|
9
|
-
faqs?:
|
|
13
|
+
faqs?: FAQ[];
|
|
10
14
|
suggestedQuestions?: string[];
|
|
11
15
|
}
|
|
12
16
|
/**
|
|
@@ -66,6 +70,7 @@ declare class AIChat extends LitElement {
|
|
|
66
70
|
botMessageBg: string;
|
|
67
71
|
welcomeMessage: string;
|
|
68
72
|
welcomeSubtitle: string;
|
|
73
|
+
initialQuestionsUrl: string;
|
|
69
74
|
private messages;
|
|
70
75
|
private input;
|
|
71
76
|
private isLoading;
|
|
@@ -137,6 +142,10 @@ declare class AIChat extends LitElement {
|
|
|
137
142
|
type: StringConstructor;
|
|
138
143
|
attribute: string;
|
|
139
144
|
};
|
|
145
|
+
initialQuestionsUrl: {
|
|
146
|
+
type: StringConstructor;
|
|
147
|
+
attribute: string;
|
|
148
|
+
};
|
|
140
149
|
};
|
|
141
150
|
constructor();
|
|
142
151
|
private toggleWidget;
|
|
@@ -151,7 +160,7 @@ declare class AIChat extends LitElement {
|
|
|
151
160
|
private loadMessagesFromStorage;
|
|
152
161
|
private clearMessagesFromStorage;
|
|
153
162
|
private formatMessageContent;
|
|
154
|
-
connectedCallback(): void
|
|
163
|
+
connectedCallback(): Promise<void>;
|
|
155
164
|
updated(changedProperties: PropertyValues): void;
|
|
156
165
|
private scrollToBottom;
|
|
157
166
|
private handleInput;
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
16
16
|
if (kind && result) __defProp(target, key, result);
|
|
17
17
|
return result;
|
|
18
18
|
};
|
|
19
|
-
var VERSION = "0.2.
|
|
19
|
+
var VERSION = "0.2.11";
|
|
20
20
|
exports.AIChat = class AIChat extends lit.LitElement {
|
|
21
21
|
constructor() {
|
|
22
22
|
super();
|
|
@@ -37,6 +37,7 @@ exports.AIChat = class AIChat extends lit.LitElement {
|
|
|
37
37
|
this.botMessageBg = "#F5F5F5";
|
|
38
38
|
this.welcomeMessage = "How can I help you today?";
|
|
39
39
|
this.welcomeSubtitle = "";
|
|
40
|
+
this.initialQuestionsUrl = "";
|
|
40
41
|
this.messages = [];
|
|
41
42
|
this.input = "";
|
|
42
43
|
this.isLoading = false;
|
|
@@ -80,29 +81,38 @@ ${this.welcomeSubtitle}` : this.welcomeMessage;
|
|
|
80
81
|
saveMessagesToStorage() {
|
|
81
82
|
try {
|
|
82
83
|
const storageKey = this.getStorageKey();
|
|
83
|
-
|
|
84
|
+
sessionStorage.setItem(storageKey, JSON.stringify(this.messages));
|
|
85
|
+
sessionStorage.setItem("ai-chat-last-session-id", this.sessionId);
|
|
84
86
|
} catch (error) {
|
|
85
|
-
console.warn("Failed to save messages to
|
|
87
|
+
console.warn("Failed to save messages to sessionStorage:", error);
|
|
86
88
|
}
|
|
87
89
|
}
|
|
88
90
|
loadMessagesFromStorage() {
|
|
89
91
|
try {
|
|
92
|
+
const lastSessionId = sessionStorage.getItem("ai-chat-last-session-id");
|
|
93
|
+
if (lastSessionId && lastSessionId !== this.sessionId) {
|
|
94
|
+
console.log(`\u{1F504} Session changed from "${lastSessionId}" to "${this.sessionId}", clearing old messages`);
|
|
95
|
+
const oldStorageKey = `ai-chat-messages-${lastSessionId}`;
|
|
96
|
+
sessionStorage.removeItem(oldStorageKey);
|
|
97
|
+
sessionStorage.setItem("ai-chat-last-session-id", this.sessionId);
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
90
100
|
const storageKey = this.getStorageKey();
|
|
91
|
-
const saved =
|
|
101
|
+
const saved = sessionStorage.getItem(storageKey);
|
|
92
102
|
if (saved) {
|
|
93
103
|
return JSON.parse(saved);
|
|
94
104
|
}
|
|
95
105
|
} catch (error) {
|
|
96
|
-
console.warn("Failed to load messages from
|
|
106
|
+
console.warn("Failed to load messages from sessionStorage:", error);
|
|
97
107
|
}
|
|
98
108
|
return null;
|
|
99
109
|
}
|
|
100
110
|
clearMessagesFromStorage() {
|
|
101
111
|
try {
|
|
102
112
|
const storageKey = this.getStorageKey();
|
|
103
|
-
|
|
113
|
+
sessionStorage.removeItem(storageKey);
|
|
104
114
|
} catch (error) {
|
|
105
|
-
console.warn("Failed to clear messages from
|
|
115
|
+
console.warn("Failed to clear messages from sessionStorage:", error);
|
|
106
116
|
}
|
|
107
117
|
}
|
|
108
118
|
formatMessageContent(content) {
|
|
@@ -111,7 +121,7 @@ ${this.welcomeSubtitle}` : this.welcomeMessage;
|
|
|
111
121
|
div.textContent = text;
|
|
112
122
|
return div.innerHTML;
|
|
113
123
|
};
|
|
114
|
-
let processedContent = content.replace(/([
|
|
124
|
+
let processedContent = content.replace(/([^\n])\s*(\d+\.\s+)/g, "$1\n$2");
|
|
115
125
|
processedContent = processedContent.replace(/(\d+\.\s+[^0-9]+?)(?=\s+\d+\.\s+|\s*$)/g, "$1\n");
|
|
116
126
|
processedContent = processedContent.replace(/(-\s+[^-]+?)(?=\s+-\s+|\s*$)/g, "$1\n");
|
|
117
127
|
const lines = processedContent.split("\n");
|
|
@@ -186,22 +196,46 @@ ${this.welcomeSubtitle}` : this.welcomeMessage;
|
|
|
186
196
|
}
|
|
187
197
|
return formattedContent;
|
|
188
198
|
}
|
|
189
|
-
connectedCallback() {
|
|
199
|
+
async connectedCallback() {
|
|
190
200
|
super.connectedCallback();
|
|
191
201
|
const savedMessages = this.loadMessagesFromStorage();
|
|
192
202
|
if (this.initialMessages && this.initialMessages.length > 0) {
|
|
193
203
|
this.messages = [...this.initialMessages];
|
|
194
204
|
} else if (savedMessages && savedMessages.length > 0) {
|
|
195
205
|
this.messages = savedMessages;
|
|
196
|
-
} else
|
|
197
|
-
|
|
206
|
+
} else {
|
|
207
|
+
let suggestedQuestions = void 0;
|
|
208
|
+
if (this.initialQuestionsUrl) {
|
|
209
|
+
try {
|
|
210
|
+
const response = await fetch(this.initialQuestionsUrl);
|
|
211
|
+
if (response.ok) {
|
|
212
|
+
const data = await response.json();
|
|
213
|
+
console.log("\u{1F4E5} Fetched initial questions:", data);
|
|
214
|
+
let questionsArray = data.questions || data.suggested_questions || data;
|
|
215
|
+
if (Array.isArray(questionsArray) && questionsArray.length > 0) {
|
|
216
|
+
if (typeof questionsArray[0] === "object" && questionsArray[0].question_text) {
|
|
217
|
+
suggestedQuestions = questionsArray.map((q) => q.question_text);
|
|
218
|
+
} else if (typeof questionsArray[0] === "string") {
|
|
219
|
+
suggestedQuestions = questionsArray;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
console.log("\u2705 Processed suggested questions:", suggestedQuestions);
|
|
223
|
+
}
|
|
224
|
+
} catch (error) {
|
|
225
|
+
console.warn("Failed to fetch initial questions:", error);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
if (this.welcomeMessage) {
|
|
229
|
+
const welcomeText = this.welcomeSubtitle ? `${this.welcomeMessage}
|
|
198
230
|
|
|
199
231
|
${this.welcomeSubtitle}` : this.welcomeMessage;
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
232
|
+
this.messages = [{
|
|
233
|
+
id: "welcome-" + Date.now(),
|
|
234
|
+
role: "assistant",
|
|
235
|
+
content: welcomeText,
|
|
236
|
+
suggestedQuestions
|
|
237
|
+
}];
|
|
238
|
+
}
|
|
205
239
|
}
|
|
206
240
|
}
|
|
207
241
|
updated(changedProperties) {
|
|
@@ -262,6 +296,7 @@ ${this.welcomeSubtitle}` : this.welcomeMessage;
|
|
|
262
296
|
const data = await response.json();
|
|
263
297
|
console.log("\u{1F50D} Raw API response:", data);
|
|
264
298
|
let responseText = "No response from agent";
|
|
299
|
+
let faqs = void 0;
|
|
265
300
|
let suggestedQuestions = void 0;
|
|
266
301
|
if (data && typeof data === "object" && data.response && typeof data.response === "string") {
|
|
267
302
|
console.log("\u{1F4DD} data.response type:", typeof data.response);
|
|
@@ -274,11 +309,14 @@ ${this.welcomeSubtitle}` : this.welcomeMessage;
|
|
|
274
309
|
console.log("\u2705 Parsed inner data with JSON.parse");
|
|
275
310
|
if (innerData && innerData.response && typeof innerData.response === "string") {
|
|
276
311
|
responseText = innerData.response;
|
|
312
|
+
faqs = innerData.faq_used || innerData.faqs_used || void 0;
|
|
277
313
|
suggestedQuestions = innerData.suggested_follow_ups || innerData.suggested_questions || void 0;
|
|
278
314
|
console.log("\u2705 Extracted text length:", responseText.length);
|
|
315
|
+
console.log("\u2705 Extracted FAQs count:", faqs?.length || 0);
|
|
279
316
|
console.log("\u2705 Extracted suggested questions count:", suggestedQuestions?.length || 0);
|
|
280
317
|
} else {
|
|
281
318
|
responseText = data.response;
|
|
319
|
+
faqs = data.faq_used || data.faqs_used || void 0;
|
|
282
320
|
suggestedQuestions = data.suggested_follow_ups || data.suggested_questions || void 0;
|
|
283
321
|
}
|
|
284
322
|
} catch (parseError) {
|
|
@@ -292,6 +330,26 @@ ${this.welcomeSubtitle}` : this.welcomeMessage;
|
|
|
292
330
|
console.error("\u274C Could not extract response");
|
|
293
331
|
responseText = "Error: Could not parse response";
|
|
294
332
|
}
|
|
333
|
+
const faqsPattern = /"(?:faq_used|faqs_used)"\s*:\s*(\[[^\]]*\])/s;
|
|
334
|
+
const faqsMatch = data.response.match(faqsPattern);
|
|
335
|
+
if (faqsMatch) {
|
|
336
|
+
try {
|
|
337
|
+
faqs = JSON.parse(faqsMatch[1]);
|
|
338
|
+
console.log("\u2705 Extracted FAQs, count:", faqs?.length || 0);
|
|
339
|
+
} catch {
|
|
340
|
+
console.log("\u26A0\uFE0F Could not parse FAQs, trying multiline...");
|
|
341
|
+
const faqsMultiPattern = /"(?:faq_used|faqs_used)"\s*:\s*(\[[\s\S]*?\n\s*\])/;
|
|
342
|
+
const faqsMultiMatch = data.response.match(faqsMultiPattern);
|
|
343
|
+
if (faqsMultiMatch) {
|
|
344
|
+
try {
|
|
345
|
+
faqs = JSON.parse(faqsMultiMatch[1]);
|
|
346
|
+
console.log("\u2705 Extracted multi-line FAQs, count:", faqs?.length || 0);
|
|
347
|
+
} catch {
|
|
348
|
+
faqs = void 0;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
}
|
|
295
353
|
const suggestedPattern = /"(?:suggested_follow_ups|suggested_questions)"\s*:\s*(\[[^\]]*\])/s;
|
|
296
354
|
const suggestedMatch = data.response.match(suggestedPattern);
|
|
297
355
|
if (suggestedMatch) {
|
|
@@ -316,6 +374,7 @@ ${this.welcomeSubtitle}` : this.welcomeMessage;
|
|
|
316
374
|
} else {
|
|
317
375
|
console.log("\u{1F4C4} Direct text response (not JSON)");
|
|
318
376
|
responseText = data.response;
|
|
377
|
+
faqs = data.faq_used || data.faqs_used || void 0;
|
|
319
378
|
suggestedQuestions = data.suggested_follow_ups || data.suggested_questions || void 0;
|
|
320
379
|
}
|
|
321
380
|
} else if (typeof data === "string") {
|
|
@@ -324,16 +383,18 @@ ${this.welcomeSubtitle}` : this.welcomeMessage;
|
|
|
324
383
|
} else if (data && typeof data === "object") {
|
|
325
384
|
console.warn("\u26A0\uFE0F Unexpected format, using fallback");
|
|
326
385
|
responseText = data.message || data.answer || "Error: Unexpected response format";
|
|
386
|
+
faqs = data.faq_used || data.faqs_used || void 0;
|
|
327
387
|
suggestedQuestions = data.suggested_follow_ups || data.suggested_questions || void 0;
|
|
328
388
|
}
|
|
329
389
|
console.log("\u{1F3AF} Final responseText length:", responseText.length);
|
|
330
390
|
console.log("\u{1F3AF} Final responseText preview:", responseText.substring(0, 100));
|
|
391
|
+
console.log("\u{1F3AF} Final FAQs:", faqs);
|
|
331
392
|
console.log("\u{1F3AF} Final suggested questions:", suggestedQuestions);
|
|
332
393
|
const assistantMessage = {
|
|
333
394
|
id: (Date.now() + 1).toString(),
|
|
334
395
|
role: "assistant",
|
|
335
396
|
content: responseText,
|
|
336
|
-
|
|
397
|
+
faqs,
|
|
337
398
|
suggestedQuestions
|
|
338
399
|
};
|
|
339
400
|
this.messages = [...this.messages, assistantMessage];
|
|
@@ -392,19 +453,18 @@ Please check your API endpoint configuration.`
|
|
|
392
453
|
</div>
|
|
393
454
|
<div class="message-content">
|
|
394
455
|
<div class="message-text">${unsafeHtml_js.unsafeHTML(this.formatMessageContent(msg.content))}</div>
|
|
395
|
-
|
|
396
|
-
<!-- ${msg.role === "assistant" && msg.faqs && msg.faqs.length > 0 ? lit.html`
|
|
456
|
+
${msg.role === "assistant" && msg.faqs && msg.faqs.length > 0 ? lit.html`
|
|
397
457
|
<div class="faq-section">
|
|
398
458
|
<p class="faq-title">Related FAQs:</p>
|
|
399
459
|
<ul class="faq-list">
|
|
400
460
|
${msg.faqs.map((faq) => lit.html`
|
|
401
461
|
<li class="faq-item-static">
|
|
402
|
-
${faq.
|
|
462
|
+
${faq.Question}
|
|
403
463
|
</li>
|
|
404
464
|
`)}
|
|
405
465
|
</ul>
|
|
406
466
|
</div>
|
|
407
|
-
` : ""}
|
|
467
|
+
` : ""}
|
|
408
468
|
${msg.role === "assistant" && msg.suggestedQuestions && msg.suggestedQuestions.length > 0 ? lit.html`
|
|
409
469
|
<div class="faq-section">
|
|
410
470
|
<p class="faq-title">Suggested Questions:</p>
|
|
@@ -1272,7 +1332,8 @@ exports.AIChat.properties = {
|
|
|
1272
1332
|
userMessageBg: { type: String, attribute: "user-message-bg" },
|
|
1273
1333
|
botMessageBg: { type: String, attribute: "bot-message-bg" },
|
|
1274
1334
|
welcomeMessage: { type: String, attribute: "welcome-message" },
|
|
1275
|
-
welcomeSubtitle: { type: String, attribute: "welcome-subtitle" }
|
|
1335
|
+
welcomeSubtitle: { type: String, attribute: "welcome-subtitle" },
|
|
1336
|
+
initialQuestionsUrl: { type: String, attribute: "initial-questions-url" }
|
|
1276
1337
|
};
|
|
1277
1338
|
__decorateClass([
|
|
1278
1339
|
decorators_js.state()
|