@quidgest/chatbot 0.0.3 → 0.0.5
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/dist/components/CBMessage.vue.d.ts +34 -0
- package/dist/components/ChatBot.vue.d.ts +4 -0
- package/dist/components/index.d.ts +3 -0
- package/dist/index.js +155 -90
- package/dist/index.mjs +155 -90
- package/dist/style.css +34 -40
- package/dist/types/message.type.d.ts +6 -2
- package/package.json +1 -1
- package/src/assets/styles/styles.scss +40 -46
- package/src/components/CBMessage.vue +81 -0
- package/src/components/ChatBot.vue +115 -91
- package/src/components/index.ts +7 -0
- package/src/types/message.type.ts +7 -2
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface CBMessageProps {
|
|
2
|
+
sender?: 'bot' | 'user';
|
|
3
|
+
message?: string;
|
|
4
|
+
date?: Date;
|
|
5
|
+
loading?: boolean;
|
|
6
|
+
}
|
|
7
|
+
declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<CBMessageProps>, {
|
|
8
|
+
sender: string;
|
|
9
|
+
date: () => Date;
|
|
10
|
+
}>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<CBMessageProps>, {
|
|
11
|
+
sender: string;
|
|
12
|
+
date: () => Date;
|
|
13
|
+
}>>>, {
|
|
14
|
+
sender: "bot" | "user";
|
|
15
|
+
date: Date;
|
|
16
|
+
}, {}>;
|
|
17
|
+
export default _default;
|
|
18
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
19
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
20
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
21
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
22
|
+
} : {
|
|
23
|
+
type: import('vue').PropType<T[K]>;
|
|
24
|
+
required: true;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
type __VLS_WithDefaults<P, D> = {
|
|
28
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
29
|
+
default: D[K];
|
|
30
|
+
}> : P[K];
|
|
31
|
+
};
|
|
32
|
+
type __VLS_Prettify<T> = {
|
|
33
|
+
[K in keyof T]: T[K];
|
|
34
|
+
} & {};
|
|
@@ -12,6 +12,10 @@ export type ChatBotProps = {
|
|
|
12
12
|
* Genio username
|
|
13
13
|
*/
|
|
14
14
|
username: string;
|
|
15
|
+
/**
|
|
16
|
+
* Project aplication path
|
|
17
|
+
*/
|
|
18
|
+
projectPath: string;
|
|
15
19
|
};
|
|
16
20
|
declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<ChatBotProps>, {
|
|
17
21
|
apiEndpoint: string;
|
package/dist/index.js
CHANGED
|
@@ -2025,6 +2025,7 @@
|
|
|
2025
2025
|
axios.getAdapter = adapters.getAdapter;
|
|
2026
2026
|
axios.HttpStatusCode = HttpStatusCode$1;
|
|
2027
2027
|
axios.default = axios;
|
|
2028
|
+
const ChatBotIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFIGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjAtMDUtMjFUMTg6MTk6NDErMDE6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjAtMDUtMjFUMTg6MTk6NDErMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIwLTA1LTIxVDE4OjE5OjQxKzAxOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4NmI5YWQxZC0yOTk4LTQ2ZjYtYjliYS01NTBlNzgwOGQ5MWUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODZiOWFkMWQtMjk5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";
|
|
2028
2029
|
function ye(t) {
|
|
2029
2030
|
return t == null ? true : typeof t == "string" || Array.isArray(t) ? t.length === 0 : typeof t == "object" ? Object.keys(t).length === 0 : false;
|
|
2030
2031
|
}
|
|
@@ -3565,9 +3566,7 @@
|
|
|
3565
3566
|
class: vue.normalizeClass(["q-line-loader", o.class])
|
|
3566
3567
|
}, null, 2));
|
|
3567
3568
|
}
|
|
3568
|
-
})
|
|
3569
|
-
S(fo);
|
|
3570
|
-
const po = {
|
|
3569
|
+
}), Co = S(fo), po = {
|
|
3571
3570
|
key: 0,
|
|
3572
3571
|
class: "q-popover__header"
|
|
3573
3572
|
}, mo = {
|
|
@@ -3948,36 +3947,65 @@
|
|
|
3948
3947
|
}
|
|
3949
3948
|
});
|
|
3950
3949
|
S(Bo);
|
|
3951
|
-
const ChatBotIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFIGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjAtMDUtMjFUMTg6MTk6NDErMDE6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjAtMDUtMjFUMTg6MTk6NDErMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIwLTA1LTIxVDE4OjE5OjQxKzAxOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4NmI5YWQxZC0yOTk4LTQ2ZjYtYjliYS01NTBlNzgwOGQ5MWUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODZiOWFkMWQtMjk5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";
|
|
3952
|
-
const
|
|
3953
|
-
const
|
|
3954
|
-
const
|
|
3955
|
-
const _hoisted_4 = { class: "q-chatbot__message" };
|
|
3956
|
-
const _hoisted_5 = {
|
|
3957
|
-
key: 0,
|
|
3958
|
-
class: "q-chatbot__message-loading"
|
|
3959
|
-
};
|
|
3960
|
-
const _hoisted_6 = /* @__PURE__ */ vue.createElementVNode("div", null, null, -1);
|
|
3961
|
-
const _hoisted_7 = /* @__PURE__ */ vue.createElementVNode("div", null, null, -1);
|
|
3962
|
-
const _hoisted_8 = /* @__PURE__ */ vue.createElementVNode("div", null, null, -1);
|
|
3963
|
-
const _hoisted_9 = [
|
|
3964
|
-
_hoisted_6,
|
|
3965
|
-
_hoisted_7,
|
|
3966
|
-
_hoisted_8
|
|
3967
|
-
];
|
|
3968
|
-
const _hoisted_10 = {
|
|
3950
|
+
const _hoisted_1$1 = { class: "q-chatbot__message-container" };
|
|
3951
|
+
const _hoisted_2$1 = ["src"];
|
|
3952
|
+
const _hoisted_3$1 = { class: "q-chatbot__message-wrapper" };
|
|
3953
|
+
const _hoisted_4 = {
|
|
3969
3954
|
key: 0,
|
|
3970
3955
|
class: "q-chatbot__sender"
|
|
3971
3956
|
};
|
|
3972
|
-
const
|
|
3957
|
+
const _hoisted_5 = { class: "q-chatbot__message" };
|
|
3958
|
+
const _hoisted_6 = ["innerHTML"];
|
|
3959
|
+
const _hoisted_7 = {
|
|
3973
3960
|
key: 1,
|
|
3974
|
-
class: "q-chatbot__timestamp"
|
|
3975
|
-
};
|
|
3976
|
-
const _hoisted_12 = ["innerHTML"];
|
|
3977
|
-
const _hoisted_13 = {
|
|
3978
|
-
key: 3,
|
|
3979
3961
|
class: "q-chatbot__text"
|
|
3980
3962
|
};
|
|
3963
|
+
const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
3964
|
+
__name: "CBMessage",
|
|
3965
|
+
props: {
|
|
3966
|
+
sender: { default: "user" },
|
|
3967
|
+
message: {},
|
|
3968
|
+
date: { default: () => /* @__PURE__ */ new Date() },
|
|
3969
|
+
loading: { type: Boolean }
|
|
3970
|
+
},
|
|
3971
|
+
setup(__props) {
|
|
3972
|
+
const props = __props;
|
|
3973
|
+
const senderName = vue.computed(() => {
|
|
3974
|
+
return props.sender === "bot" ? "GenioBot" : "You";
|
|
3975
|
+
});
|
|
3976
|
+
const getLocaleDate = vue.computed(() => {
|
|
3977
|
+
return props.date.toLocaleString();
|
|
3978
|
+
});
|
|
3979
|
+
const messageHeader = vue.computed(() => {
|
|
3980
|
+
return `${senderName.value} ${getLocaleDate.value}`;
|
|
3981
|
+
});
|
|
3982
|
+
return (_ctx, _cache) => {
|
|
3983
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [
|
|
3984
|
+
props.sender === "bot" ? (vue.openBlock(), vue.createElementBlock("img", {
|
|
3985
|
+
key: 0,
|
|
3986
|
+
src: vue.unref(ChatBotIcon),
|
|
3987
|
+
alt: "Chatbot",
|
|
3988
|
+
class: "q-chatbot__profile"
|
|
3989
|
+
}, null, 8, _hoisted_2$1)) : vue.createCommentVNode("", true),
|
|
3990
|
+
vue.createElementVNode("div", _hoisted_3$1, [
|
|
3991
|
+
!_ctx.loading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, vue.toDisplayString(messageHeader.value), 1)) : vue.createCommentVNode("", true),
|
|
3992
|
+
vue.createElementVNode("div", _hoisted_5, [
|
|
3993
|
+
_ctx.loading ? (vue.openBlock(), vue.createBlock(vue.unref(Co), { key: 0 })) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
|
|
3994
|
+
props.sender == "bot" ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
3995
|
+
key: 0,
|
|
3996
|
+
class: "q-chatbot__text",
|
|
3997
|
+
innerHTML: props.message
|
|
3998
|
+
}, null, 8, _hoisted_6)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_7, vue.toDisplayString(props.message), 1))
|
|
3999
|
+
], 64))
|
|
4000
|
+
])
|
|
4001
|
+
])
|
|
4002
|
+
]);
|
|
4003
|
+
};
|
|
4004
|
+
}
|
|
4005
|
+
});
|
|
4006
|
+
const _hoisted_1 = { class: "q-chatbot" };
|
|
4007
|
+
const _hoisted_2 = { class: "q-chatbot__tools" };
|
|
4008
|
+
const _hoisted_3 = { class: "q-chatbot__messages-container" };
|
|
3981
4009
|
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
3982
4010
|
...{ name: "ChatBot" },
|
|
3983
4011
|
__name: "ChatBot",
|
|
@@ -3991,7 +4019,8 @@
|
|
|
3991
4019
|
loginError: "Uh oh, I could not authenticate with the Quidgest API endpoint 😓",
|
|
3992
4020
|
botIsSick: "*cough cough* GenioBot is not feeling alright 🥴️🤒, looks like something failed!"
|
|
3993
4021
|
}) },
|
|
3994
|
-
username: {}
|
|
4022
|
+
username: {},
|
|
4023
|
+
projectPath: {}
|
|
3995
4024
|
},
|
|
3996
4025
|
setup(__props) {
|
|
3997
4026
|
let messages = vue.ref([]);
|
|
@@ -4007,43 +4036,62 @@
|
|
|
4007
4036
|
initChat();
|
|
4008
4037
|
vue.nextTick(scrollChatToBottom);
|
|
4009
4038
|
});
|
|
4010
|
-
const sortedMessages = vue.computed(() => {
|
|
4011
|
-
return messages.value.toSorted((a, b) => {
|
|
4012
|
-
const diff = new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime();
|
|
4013
|
-
return diff !== 0 ? diff : a.sender === "user" ? -1 : 1;
|
|
4014
|
-
});
|
|
4015
|
-
});
|
|
4016
4039
|
const userMessages = vue.computed(() => {
|
|
4017
4040
|
return messages.value.filter((m) => m.sender === "user");
|
|
4018
4041
|
});
|
|
4042
|
+
function setDisabledState(state) {
|
|
4043
|
+
isChatDisabled = state;
|
|
4044
|
+
}
|
|
4019
4045
|
function initChat() {
|
|
4020
4046
|
axios.post(props.apiEndpoint + "/auth/login", {
|
|
4021
4047
|
username: props.username,
|
|
4022
4048
|
password: "test"
|
|
4023
4049
|
}).then((response) => {
|
|
4024
4050
|
if (response.status != 200 || !response.data.success) {
|
|
4025
|
-
|
|
4051
|
+
setDisabledState(true);
|
|
4026
4052
|
addChatMessage(props.texts.loginError);
|
|
4027
4053
|
return console.log(
|
|
4028
4054
|
`Unsuccessful login, endpoint gave status ${response.status}`
|
|
4029
4055
|
);
|
|
4030
4056
|
}
|
|
4031
|
-
|
|
4057
|
+
loadChatData();
|
|
4032
4058
|
}).catch((error) => {
|
|
4033
|
-
|
|
4034
|
-
|
|
4059
|
+
setDisabledState(true);
|
|
4060
|
+
addChatMessage(props.texts.loginError);
|
|
4061
|
+
console.log(
|
|
4062
|
+
"The following error ocurred while trying to login: \n" + error
|
|
4063
|
+
);
|
|
4064
|
+
});
|
|
4065
|
+
}
|
|
4066
|
+
function loadChatData() {
|
|
4067
|
+
axios.post(props.apiEndpoint + "/prompt/load", {
|
|
4068
|
+
username: props.username,
|
|
4069
|
+
project: props.projectPath
|
|
4070
|
+
}).then((response) => {
|
|
4071
|
+
if (response.status != 200 || !response.data.success) {
|
|
4072
|
+
setDisabledState(true);
|
|
4035
4073
|
addChatMessage(props.texts.loginError);
|
|
4036
|
-
console.log(
|
|
4037
|
-
|
|
4074
|
+
return console.log(
|
|
4075
|
+
`Unsuccessful load, endpoint gave status ${response.status}`
|
|
4038
4076
|
);
|
|
4039
4077
|
}
|
|
4078
|
+
sendInitialMessage();
|
|
4079
|
+
response.data.history.forEach((message) => {
|
|
4080
|
+
addChatMessage(message.content, message.type === "ai" ? "bot" : "user");
|
|
4081
|
+
});
|
|
4082
|
+
}).catch((error) => {
|
|
4083
|
+
setDisabledState(true);
|
|
4084
|
+
addChatMessage(props.texts.loginError);
|
|
4085
|
+
console.log(
|
|
4086
|
+
"The following error ocurred while trying to login: \n" + error
|
|
4087
|
+
);
|
|
4040
4088
|
});
|
|
4041
4089
|
}
|
|
4042
4090
|
function addChatMessage(message, sender = "bot") {
|
|
4043
4091
|
messages.value.push({
|
|
4044
4092
|
id: nextMessageId++,
|
|
4045
|
-
|
|
4046
|
-
|
|
4093
|
+
message,
|
|
4094
|
+
date: /* @__PURE__ */ new Date(),
|
|
4047
4095
|
sender
|
|
4048
4096
|
});
|
|
4049
4097
|
}
|
|
@@ -4060,8 +4108,7 @@
|
|
|
4060
4108
|
msgHistoryStack = [];
|
|
4061
4109
|
userPrompt.value = "";
|
|
4062
4110
|
isLoading = false;
|
|
4063
|
-
|
|
4064
|
-
sendInitialMessage();
|
|
4111
|
+
setDisabledState(false);
|
|
4065
4112
|
}
|
|
4066
4113
|
function scrollChatToBottom() {
|
|
4067
4114
|
if (messagesContainer.value == null)
|
|
@@ -4082,11 +4129,11 @@
|
|
|
4082
4129
|
if (!lastMsgObj)
|
|
4083
4130
|
return;
|
|
4084
4131
|
msgHistoryStack.push(userPrompt.value);
|
|
4085
|
-
userPrompt.value = lastMsgObj.
|
|
4132
|
+
userPrompt.value = lastMsgObj.message;
|
|
4086
4133
|
vue.nextTick(
|
|
4087
4134
|
() => setCursorPosition(
|
|
4088
4135
|
promptInput.value,
|
|
4089
|
-
lastMsgObj.
|
|
4136
|
+
lastMsgObj.message.length
|
|
4090
4137
|
)
|
|
4091
4138
|
);
|
|
4092
4139
|
} else if (event.key == "ArrowDown") {
|
|
@@ -4111,7 +4158,7 @@
|
|
|
4111
4158
|
let msg = getLastMessage();
|
|
4112
4159
|
let params = {
|
|
4113
4160
|
message: prompt,
|
|
4114
|
-
project:
|
|
4161
|
+
project: props.projectPath,
|
|
4115
4162
|
user: props.username
|
|
4116
4163
|
};
|
|
4117
4164
|
isLoading = true;
|
|
@@ -4126,71 +4173,89 @@
|
|
|
4126
4173
|
if (status != 200)
|
|
4127
4174
|
return;
|
|
4128
4175
|
if (msg)
|
|
4129
|
-
msg.
|
|
4176
|
+
msg.message = chunk;
|
|
4130
4177
|
}
|
|
4131
4178
|
}).then(({ data }) => {
|
|
4132
4179
|
if (msg)
|
|
4133
|
-
msg.
|
|
4180
|
+
msg.message = data;
|
|
4134
4181
|
}).catch((error) => {
|
|
4135
4182
|
addChatMessage(props.texts.botIsSick);
|
|
4136
|
-
|
|
4183
|
+
setDisabledState(true);
|
|
4137
4184
|
console.log(error);
|
|
4138
4185
|
}).finally(() => {
|
|
4139
4186
|
isLoading = false;
|
|
4140
4187
|
});
|
|
4141
4188
|
}
|
|
4142
|
-
function getSenderName(sender) {
|
|
4143
|
-
return sender === "bot" ? "GenioBot" : "You";
|
|
4144
|
-
}
|
|
4145
|
-
function getConvertedTime(date) {
|
|
4146
|
-
return date.toLocaleString();
|
|
4147
|
-
}
|
|
4148
4189
|
function setCursorPosition(elem, pos) {
|
|
4149
4190
|
elem.focus();
|
|
4150
4191
|
elem.setSelectionRange(pos, pos);
|
|
4151
4192
|
}
|
|
4193
|
+
function clearChat() {
|
|
4194
|
+
axios.post(props.apiEndpoint + "/prompt/clear", {
|
|
4195
|
+
username: props.username,
|
|
4196
|
+
project: props.projectPath
|
|
4197
|
+
}).then((response) => {
|
|
4198
|
+
if (response.status != 200 || !response.data.success) {
|
|
4199
|
+
setDisabledState(true);
|
|
4200
|
+
addChatMessage(props.texts.loginError);
|
|
4201
|
+
return console.log(
|
|
4202
|
+
`Unsuccessful login, endpoint gave status ${response.status}`
|
|
4203
|
+
);
|
|
4204
|
+
}
|
|
4205
|
+
resetChat();
|
|
4206
|
+
sendInitialMessage();
|
|
4207
|
+
}).catch((error) => {
|
|
4208
|
+
setDisabledState(true);
|
|
4209
|
+
addChatMessage(props.texts.loginError);
|
|
4210
|
+
console.log(
|
|
4211
|
+
"The following error ocurred while trying to communicate with the endpoint: \n" + error
|
|
4212
|
+
);
|
|
4213
|
+
});
|
|
4214
|
+
}
|
|
4215
|
+
function getMessageClasses(sender) {
|
|
4216
|
+
const classes = ["q-chatbot__messages-wrapper"];
|
|
4217
|
+
if (sender == "user")
|
|
4218
|
+
classes.push("q-chatbot__messages-wrapper_right");
|
|
4219
|
+
return classes;
|
|
4220
|
+
}
|
|
4152
4221
|
vue.watch(() => props.apiEndpoint, () => {
|
|
4153
4222
|
resetChat();
|
|
4223
|
+
initChat();
|
|
4154
4224
|
});
|
|
4155
4225
|
return (_ctx, _cache) => {
|
|
4156
4226
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
4157
|
-
vue.createElementVNode("div", _hoisted_2, [
|
|
4158
|
-
vue.createElementVNode("span", null, vue.toDisplayString(props.texts.chatbotTitle), 1)
|
|
4159
|
-
]),
|
|
4160
4227
|
vue.createElementVNode("div", {
|
|
4161
|
-
class: "q-chatbot__content",
|
|
4162
4228
|
ref_key: "messagesContainer",
|
|
4163
|
-
ref: messagesContainer
|
|
4229
|
+
ref: messagesContainer,
|
|
4230
|
+
class: "q-chatbot__content"
|
|
4164
4231
|
}, [
|
|
4165
|
-
|
|
4166
|
-
|
|
4167
|
-
|
|
4168
|
-
|
|
4169
|
-
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
|
|
4187
|
-
|
|
4188
|
-
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
], 2);
|
|
4193
|
-
}), 128))
|
|
4232
|
+
vue.createElementVNode("div", _hoisted_2, [
|
|
4233
|
+
vue.createVNode(vue.unref(fe), {
|
|
4234
|
+
title: props.texts.qButtonTitle,
|
|
4235
|
+
"b-style": "plain",
|
|
4236
|
+
class: "clear-btn",
|
|
4237
|
+
disabled: vue.unref(isChatDisabled),
|
|
4238
|
+
borderless: "",
|
|
4239
|
+
onClick: clearChat
|
|
4240
|
+
}, {
|
|
4241
|
+
default: vue.withCtx(() => [
|
|
4242
|
+
vue.createVNode(vue.unref(ee), { icon: "bin" })
|
|
4243
|
+
]),
|
|
4244
|
+
_: 1
|
|
4245
|
+
}, 8, ["title", "disabled"])
|
|
4246
|
+
]),
|
|
4247
|
+
vue.createElementVNode("div", _hoisted_3, [
|
|
4248
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(messages), (message) => {
|
|
4249
|
+
return vue.openBlock(), vue.createElementBlock("div", {
|
|
4250
|
+
key: message.id,
|
|
4251
|
+
class: vue.normalizeClass(getMessageClasses(message.sender))
|
|
4252
|
+
}, [
|
|
4253
|
+
vue.createVNode(vue.unref(_sfc_main$1), vue.mergeProps(message, {
|
|
4254
|
+
loading: vue.unref(isLoading) && !message.message
|
|
4255
|
+
}), null, 16, ["loading"])
|
|
4256
|
+
], 2);
|
|
4257
|
+
}), 128))
|
|
4258
|
+
])
|
|
4194
4259
|
], 512),
|
|
4195
4260
|
vue.createVNode(vue.unref(zo), {
|
|
4196
4261
|
size: "block",
|