@magmamath/students-features 0.3.0-rc.0 → 0.3.0-rc.1
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/commonjs/features/chatbot/model/ChatBotModel.js +25 -8
- package/dist/commonjs/features/chatbot/model/ChatBotModel.js.map +1 -1
- package/dist/commonjs/lib/effector/createEntityFieldStore.js +15 -4
- package/dist/commonjs/lib/effector/createEntityFieldStore.js.map +1 -1
- package/dist/module/features/chatbot/model/ChatBotModel.js +25 -8
- package/dist/module/features/chatbot/model/ChatBotModel.js.map +1 -1
- package/dist/module/lib/effector/createEntityFieldStore.js +15 -4
- package/dist/module/lib/effector/createEntityFieldStore.js.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts +25 -4
- package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
- package/dist/typescript/commonjs/lib/effector/createEntityFieldStore.d.ts +6 -1
- package/dist/typescript/commonjs/lib/effector/createEntityFieldStore.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts +25 -4
- package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
- package/dist/typescript/module/lib/effector/createEntityFieldStore.d.ts +6 -1
- package/dist/typescript/module/lib/effector/createEntityFieldStore.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/features/chatbot/model/ChatBotModel.ts +29 -8
- package/src/lib/effector/createEntityFieldStore.ts +10 -3
|
@@ -189,16 +189,33 @@ class ChatbotModel {
|
|
|
189
189
|
...message
|
|
190
190
|
}) {
|
|
191
191
|
const options = this.$alternatives.getState()?.options.hints ?? message.options;
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
192
|
+
this.messages.setField({
|
|
193
|
+
key: `${entityId}-${fieldId}`,
|
|
194
|
+
fn: messages => {
|
|
195
|
+
if (!messages || messages.length > 1) return;
|
|
196
|
+
return [{
|
|
197
|
+
...message,
|
|
198
|
+
options
|
|
199
|
+
}];
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
addOption({
|
|
204
|
+
options,
|
|
205
|
+
key
|
|
206
|
+
}) {
|
|
196
207
|
this.messages.setField({
|
|
197
208
|
key,
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
209
|
+
fn: messages => {
|
|
210
|
+
if (!messages?.length) return;
|
|
211
|
+
const lastMessage = messages[messages.length - 1];
|
|
212
|
+
const copy = [...messages];
|
|
213
|
+
copy.splice(messages.length - 1, 1, {
|
|
214
|
+
...lastMessage,
|
|
215
|
+
options: [...lastMessage.options, ...options]
|
|
216
|
+
});
|
|
217
|
+
return copy;
|
|
218
|
+
}
|
|
202
219
|
});
|
|
203
220
|
}
|
|
204
221
|
bindKey($store) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_effector","require","_index","_helpers","_api","_translation","_t2s","ChatbotModel","$currentKey","createStore","resetAlternatives","createEvent","setAlternatives","setIsOpen","toggleOpen","$isOpen","restore","on","isOpen","removeLastMessage","setLastMessageKey","$lastMessageKey","setScrollActive","$isScrollActive","constructor","credits","api","messages","$key","ChatbotAPI","defaultMessages","sample","source","target","combine","$assignmentId","$exerciseId","$alternatives","getAlternativesFx","doneData","_","payload","reset","translation","ChatbotTranslation","t2s","ChatTextToSpeechModel","sendHelpRequestFx","createSendHelpRequestFx","initChatReplyWatcher","createEntityFieldStore","threadIds","availableChats","attach","$state","$isTranslated","mapParams","params","key","isTranslated","effect","createControllerEffect","message","translationTargetLanguage","translatedMessage","currentMessages","setField","data","id","generateRandomId","isOwnMessage","threadId","options","response","postMessageFx","translateMessageFx","targetLanguage","clock","fn","watch","undefined","fail","error","filter","lastMessageKey","mockData","updatedMessages","length","pop","startConversation","getState","start","setHintMessage","entityId","fieldId","hints","
|
|
1
|
+
{"version":3,"names":["_effector","require","_index","_helpers","_api","_translation","_t2s","ChatbotModel","$currentKey","createStore","resetAlternatives","createEvent","setAlternatives","setIsOpen","toggleOpen","$isOpen","restore","on","isOpen","removeLastMessage","setLastMessageKey","$lastMessageKey","setScrollActive","$isScrollActive","constructor","credits","api","messages","$key","ChatbotAPI","defaultMessages","sample","source","target","combine","$assignmentId","$exerciseId","$alternatives","getAlternativesFx","doneData","_","payload","reset","translation","ChatbotTranslation","t2s","ChatTextToSpeechModel","sendHelpRequestFx","createSendHelpRequestFx","initChatReplyWatcher","createEntityFieldStore","threadIds","availableChats","attach","$state","$isTranslated","mapParams","params","key","isTranslated","effect","createControllerEffect","message","translationTargetLanguage","translatedMessage","currentMessages","setField","data","id","generateRandomId","isOwnMessage","threadId","options","response","postMessageFx","translateMessageFx","targetLanguage","clock","fn","watch","undefined","fail","error","filter","lastMessageKey","mockData","updatedMessages","length","pop","startConversation","getState","start","setHintMessage","entityId","fieldId","hints","addOption","lastMessage","copy","splice","bindKey","$store","exports"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/ChatBotModel.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,10 +11,21 @@ function createEntityFieldStore() {
|
|
|
11
11
|
const $state = (0, _effector.createStore)({}).on(setField, (state, {
|
|
12
12
|
key,
|
|
13
13
|
data
|
|
14
|
-
}) =>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
}) => {
|
|
15
|
+
if (typeof data === 'function') {
|
|
16
|
+
const currentData = state[key];
|
|
17
|
+
const newData = data(currentData);
|
|
18
|
+
if (newData === undefined) return state;
|
|
19
|
+
return {
|
|
20
|
+
...state,
|
|
21
|
+
[key]: newData
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
...state,
|
|
26
|
+
[key]: data
|
|
27
|
+
};
|
|
28
|
+
}).reset(reset);
|
|
18
29
|
return {
|
|
19
30
|
$state,
|
|
20
31
|
setField,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_effector","require","createEntityFieldStore","setField","createEvent","reset","$state","createStore","on","state","key","data"],"sourceRoot":"../../../../src","sources":["lib/effector/createEntityFieldStore.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_effector","require","createEntityFieldStore","setField","createEvent","reset","$state","createStore","on","state","key","data","currentData","newData","undefined"],"sourceRoot":"../../../../src","sources":["lib/effector/createEntityFieldStore.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAMO,SAASC,sBAAsBA,CAAA,EAAM;EAC1C,MAAMC,QAAQ,GAAG,IAAAC,qBAAW,EAAiB,CAAC;EAC9C,MAAMC,KAAK,GAAG,IAAAD,qBAAW,EAAC,CAAC;EAE3B,MAAME,MAAM,GAAG,IAAAC,qBAAW,EAAoB,CAAC,CAAC,CAAC,CAC9CC,EAAE,CAACL,QAAQ,EAAE,CAACM,KAAK,EAAE;IAAEC,GAAG;IAAEC;EAAK,CAAC,KAAK;IACtC,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;MAC9B,MAAMC,WAAW,GAAGH,KAAK,CAACC,GAAG,CAAC;MAC9B,MAAMG,OAAO,GAAGF,IAAI,CAACC,WAAW,CAAC;MACjC,IAAIC,OAAO,KAAKC,SAAS,EAAE,OAAOL,KAAK;MACvC,OAAO;QAAE,GAAGA,KAAK;QAAE,CAACC,GAAG,GAAGG;MAAQ,CAAC;IACrC;IACA,OAAO;MAAE,GAAGJ,KAAK;MAAE,CAACC,GAAG,GAAGC;IAAK,CAAC;EAClC,CAAC,CAAC,CACDN,KAAK,CAACA,KAAK,CAAC;EAEf,OAAO;IAAEC,MAAM;IAAEH,QAAQ;IAAEE;EAAM,CAAC;AACpC","ignoreList":[]}
|
|
@@ -185,16 +185,33 @@ export class ChatbotModel {
|
|
|
185
185
|
...message
|
|
186
186
|
}) {
|
|
187
187
|
const options = this.$alternatives.getState()?.options.hints ?? message.options;
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
188
|
+
this.messages.setField({
|
|
189
|
+
key: `${entityId}-${fieldId}`,
|
|
190
|
+
fn: messages => {
|
|
191
|
+
if (!messages || messages.length > 1) return;
|
|
192
|
+
return [{
|
|
193
|
+
...message,
|
|
194
|
+
options
|
|
195
|
+
}];
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
addOption({
|
|
200
|
+
options,
|
|
201
|
+
key
|
|
202
|
+
}) {
|
|
192
203
|
this.messages.setField({
|
|
193
204
|
key,
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
205
|
+
fn: messages => {
|
|
206
|
+
if (!messages?.length) return;
|
|
207
|
+
const lastMessage = messages[messages.length - 1];
|
|
208
|
+
const copy = [...messages];
|
|
209
|
+
copy.splice(messages.length - 1, 1, {
|
|
210
|
+
...lastMessage,
|
|
211
|
+
options: [...lastMessage.options, ...options]
|
|
212
|
+
});
|
|
213
|
+
return copy;
|
|
214
|
+
}
|
|
198
215
|
});
|
|
199
216
|
}
|
|
200
217
|
bindKey($store) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["attach","createEvent","restore","sample","combine","createStore","createControllerEffect","createEntityFieldStore","generateRandomId","ChatbotAPI","ChatbotTranslation","ChatTextToSpeechModel","ChatbotModel","$currentKey","resetAlternatives","setAlternatives","setIsOpen","toggleOpen","$isOpen","on","isOpen","removeLastMessage","setLastMessageKey","$lastMessageKey","setScrollActive","$isScrollActive","constructor","credits","api","messages","$key","defaultMessages","source","target","$assignmentId","$exerciseId","$alternatives","getAlternativesFx","doneData","_","payload","reset","translation","t2s","sendHelpRequestFx","createSendHelpRequestFx","initChatReplyWatcher","threadIds","availableChats","$state","$isTranslated","mapParams","params","key","isTranslated","effect","message","translationTargetLanguage","translatedMessage","currentMessages","setField","data","id","isOwnMessage","threadId","options","response","postMessageFx","translateMessageFx","targetLanguage","clock","fn","watch","undefined","fail","error","filter","lastMessageKey","mockData","updatedMessages","length","pop","startConversation","getState","start","setHintMessage","entityId","fieldId","hints","
|
|
1
|
+
{"version":3,"names":["attach","createEvent","restore","sample","combine","createStore","createControllerEffect","createEntityFieldStore","generateRandomId","ChatbotAPI","ChatbotTranslation","ChatTextToSpeechModel","ChatbotModel","$currentKey","resetAlternatives","setAlternatives","setIsOpen","toggleOpen","$isOpen","on","isOpen","removeLastMessage","setLastMessageKey","$lastMessageKey","setScrollActive","$isScrollActive","constructor","credits","api","messages","$key","defaultMessages","source","target","$assignmentId","$exerciseId","$alternatives","getAlternativesFx","doneData","_","payload","reset","translation","t2s","sendHelpRequestFx","createSendHelpRequestFx","initChatReplyWatcher","threadIds","availableChats","$state","$isTranslated","mapParams","params","key","isTranslated","effect","message","translationTargetLanguage","translatedMessage","currentMessages","setField","data","id","isOwnMessage","threadId","options","response","postMessageFx","translateMessageFx","targetLanguage","clock","fn","watch","undefined","fail","error","filter","lastMessageKey","mockData","updatedMessages","length","pop","startConversation","getState","start","setHintMessage","entityId","fieldId","hints","addOption","lastMessage","copy","splice","bindKey","$store"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/ChatBotModel.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,10 +7,21 @@ export function createEntityFieldStore() {
|
|
|
7
7
|
const $state = createStore({}).on(setField, (state, {
|
|
8
8
|
key,
|
|
9
9
|
data
|
|
10
|
-
}) =>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
}) => {
|
|
11
|
+
if (typeof data === 'function') {
|
|
12
|
+
const currentData = state[key];
|
|
13
|
+
const newData = data(currentData);
|
|
14
|
+
if (newData === undefined) return state;
|
|
15
|
+
return {
|
|
16
|
+
...state,
|
|
17
|
+
[key]: newData
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
...state,
|
|
22
|
+
[key]: data
|
|
23
|
+
};
|
|
24
|
+
}).reset(reset);
|
|
14
25
|
return {
|
|
15
26
|
$state,
|
|
16
27
|
setField,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createEvent","createStore","createEntityFieldStore","setField","reset","$state","on","state","key","data"],"sourceRoot":"../../../../src","sources":["lib/effector/createEntityFieldStore.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,WAAW,QAAQ,UAAU;
|
|
1
|
+
{"version":3,"names":["createEvent","createStore","createEntityFieldStore","setField","reset","$state","on","state","key","data","currentData","newData","undefined"],"sourceRoot":"../../../../src","sources":["lib/effector/createEntityFieldStore.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,WAAW,QAAQ,UAAU;AAMnD,OAAO,SAASC,sBAAsBA,CAAA,EAAM;EAC1C,MAAMC,QAAQ,GAAGH,WAAW,CAAiB,CAAC;EAC9C,MAAMI,KAAK,GAAGJ,WAAW,CAAC,CAAC;EAE3B,MAAMK,MAAM,GAAGJ,WAAW,CAAoB,CAAC,CAAC,CAAC,CAC9CK,EAAE,CAACH,QAAQ,EAAE,CAACI,KAAK,EAAE;IAAEC,GAAG;IAAEC;EAAK,CAAC,KAAK;IACtC,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;MAC9B,MAAMC,WAAW,GAAGH,KAAK,CAACC,GAAG,CAAC;MAC9B,MAAMG,OAAO,GAAGF,IAAI,CAACC,WAAW,CAAC;MACjC,IAAIC,OAAO,KAAKC,SAAS,EAAE,OAAOL,KAAK;MACvC,OAAO;QAAE,GAAGA,KAAK;QAAE,CAACC,GAAG,GAAGG;MAAQ,CAAC;IACrC;IACA,OAAO;MAAE,GAAGJ,KAAK;MAAE,CAACC,GAAG,GAAGC;IAAK,CAAC;EAClC,CAAC,CAAC,CACDL,KAAK,CAACA,KAAK,CAAC;EAEf,OAAO;IAAEC,MAAM;IAAEF,QAAQ;IAAEC;EAAM,CAAC;AACpC","ignoreList":[]}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { type Store, type Effect } from 'effector';
|
|
2
2
|
import { ChatbotModelProps, ConversationMessage, SendHelpParams, SetHintMessageProps } from '../types/model.types';
|
|
3
|
-
import { GetAlternativesResponse, PostMessageResponse } from '../types/api.types';
|
|
3
|
+
import { ChatAnswer, GetAlternativesResponse, PostMessageResponse } from '../types/api.types';
|
|
4
4
|
import { ChatbotAPI } from './api';
|
|
5
5
|
import { ChatbotTranslation } from './translation';
|
|
6
6
|
import { ChatTextToSpeechModel } from './t2s';
|
|
7
|
+
type AddOptionProps = {
|
|
8
|
+
key: string;
|
|
9
|
+
options: ChatAnswer[];
|
|
10
|
+
};
|
|
7
11
|
export declare class ChatbotModel {
|
|
8
12
|
readonly api: ChatbotAPI;
|
|
9
13
|
readonly translation: ChatbotTranslation;
|
|
@@ -28,30 +32,47 @@ export declare class ChatbotModel {
|
|
|
28
32
|
$state: import("effector").StoreWritable<Record<string, ConversationMessage[]>>;
|
|
29
33
|
setField: import("effector").EventCallable<{
|
|
30
34
|
key: string;
|
|
35
|
+
} & ({
|
|
31
36
|
data: ConversationMessage[];
|
|
32
|
-
|
|
37
|
+
fn?: never;
|
|
38
|
+
} | {
|
|
39
|
+
data?: never;
|
|
40
|
+
fn: (props: void | ConversationMessage[]) => void | ConversationMessage[];
|
|
41
|
+
})>;
|
|
33
42
|
reset: import("effector").EventCallable<void>;
|
|
34
43
|
};
|
|
35
44
|
readonly threadIds: {
|
|
36
45
|
$state: import("effector").StoreWritable<Record<string, string>>;
|
|
37
46
|
setField: import("effector").EventCallable<{
|
|
38
47
|
key: string;
|
|
48
|
+
} & ({
|
|
39
49
|
data: string;
|
|
40
|
-
|
|
50
|
+
fn?: never;
|
|
51
|
+
} | {
|
|
52
|
+
data?: never;
|
|
53
|
+
fn: (props: string | void) => string | void;
|
|
54
|
+
})>;
|
|
41
55
|
reset: import("effector").EventCallable<void>;
|
|
42
56
|
};
|
|
43
57
|
readonly availableChats: {
|
|
44
58
|
$state: import("effector").StoreWritable<Record<string, boolean>>;
|
|
45
59
|
setField: import("effector").EventCallable<{
|
|
46
60
|
key: string;
|
|
61
|
+
} & ({
|
|
47
62
|
data: boolean;
|
|
48
|
-
|
|
63
|
+
fn?: never;
|
|
64
|
+
} | {
|
|
65
|
+
data?: never;
|
|
66
|
+
fn: (props: boolean | void) => boolean | void;
|
|
67
|
+
})>;
|
|
49
68
|
reset: import("effector").EventCallable<void>;
|
|
50
69
|
};
|
|
51
70
|
private createSendHelpRequestFx;
|
|
52
71
|
private initChatReplyWatcher;
|
|
53
72
|
startConversation(): void;
|
|
54
73
|
setHintMessage({ entityId, fieldId, ...message }: SetHintMessageProps): void;
|
|
74
|
+
addOption({ options, key }: AddOptionProps): void;
|
|
55
75
|
bindKey($store: Store<string>): this;
|
|
56
76
|
}
|
|
77
|
+
export {};
|
|
57
78
|
//# sourceMappingURL=ChatBotModel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatBotModel.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/ChatBotModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,KAAK,EACV,KAAK,MAAM,EAGZ,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"ChatBotModel.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/ChatBotModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,KAAK,EACV,KAAK,MAAM,EAGZ,MAAM,UAAU,CAAA;AAEjB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EAEd,mBAAmB,EACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE7F,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAA;AAE7C,KAAK,cAAc,GAAG;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,UAAU,EAAE,CAAA;CACtB,CAAA;AAED,qBAAa,YAAY;IACvB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAA;IACxC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAA;IAEnC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAC9C,SAAgB,WAAW,2CAAkB;IAE7C,QAAQ,CAAC,iBAAiB,yCAAgB;IAC1C,QAAQ,CAAC,eAAe,mEAAgD;IACxE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAA;IAE7D,QAAQ,CAAC,SAAS,4CAAyB;IAC3C,QAAQ,CAAC,UAAU,yCAAgB;IACnC,QAAQ,CAAC,OAAO,4CAAwE;IAGxF,SAAgB,iBAAiB,yCAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwC;IAExE,QAAQ,CAAC,eAAe,4CAAyB;IACjD,QAAQ,CAAC,eAAe,4CAAuC;IAE/D,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,cAAc,EAAE,mBAAmB,GAAG,mBAAmB,CAAC,CAAA;IAE7F,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAA;gBAE3C,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,iBAAiB;IAgC/D,QAAQ,CAAC,QAAQ;;;;;;;;;;;;MAAkD;IACnE,QAAQ,CAAC,SAAS;;;;;;;;;;;;MAAmC;IACrD,QAAQ,CAAC,cAAc;;;;;;;;;;;;MAAoC;IAE3D,OAAO,CAAC,uBAAuB;IAwD/B,OAAO,CAAC,oBAAoB;IAiDrB,iBAAiB;IAUjB,cAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,mBAAmB;IAWrE,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,cAAc;IAgB1C,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;CAOrC"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
type UpdateField<T> = {
|
|
2
2
|
key: string;
|
|
3
|
+
} & ({
|
|
3
4
|
data: T;
|
|
4
|
-
|
|
5
|
+
fn?: never;
|
|
6
|
+
} | {
|
|
7
|
+
data?: never;
|
|
8
|
+
fn: (props: T | void) => T | void;
|
|
9
|
+
});
|
|
5
10
|
export declare function createEntityFieldStore<T>(): {
|
|
6
11
|
$state: import("effector").StoreWritable<Record<string, T>>;
|
|
7
12
|
setField: import("effector").EventCallable<UpdateField<T>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createEntityFieldStore.d.ts","sourceRoot":"","sources":["../../../../../src/lib/effector/createEntityFieldStore.ts"],"names":[],"mappings":"AAEA,KAAK,WAAW,CAAC,CAAC,IAAI;IACpB,GAAG,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"createEntityFieldStore.d.ts","sourceRoot":"","sources":["../../../../../src/lib/effector/createEntityFieldStore.ts"],"names":[],"mappings":"AAEA,KAAK,WAAW,CAAC,CAAC,IAAI;IACpB,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,EAAE,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,IAAI,CAAC,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,CAAA;CAAE,CAAC,CAAA;AAEnF,wBAAgB,sBAAsB,CAAC,CAAC;;;;EAiBvC"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { type Store, type Effect } from 'effector';
|
|
2
2
|
import { ChatbotModelProps, ConversationMessage, SendHelpParams, SetHintMessageProps } from '../types/model.types';
|
|
3
|
-
import { GetAlternativesResponse, PostMessageResponse } from '../types/api.types';
|
|
3
|
+
import { ChatAnswer, GetAlternativesResponse, PostMessageResponse } from '../types/api.types';
|
|
4
4
|
import { ChatbotAPI } from './api';
|
|
5
5
|
import { ChatbotTranslation } from './translation';
|
|
6
6
|
import { ChatTextToSpeechModel } from './t2s';
|
|
7
|
+
type AddOptionProps = {
|
|
8
|
+
key: string;
|
|
9
|
+
options: ChatAnswer[];
|
|
10
|
+
};
|
|
7
11
|
export declare class ChatbotModel {
|
|
8
12
|
readonly api: ChatbotAPI;
|
|
9
13
|
readonly translation: ChatbotTranslation;
|
|
@@ -28,30 +32,47 @@ export declare class ChatbotModel {
|
|
|
28
32
|
$state: import("effector").StoreWritable<Record<string, ConversationMessage[]>>;
|
|
29
33
|
setField: import("effector").EventCallable<{
|
|
30
34
|
key: string;
|
|
35
|
+
} & ({
|
|
31
36
|
data: ConversationMessage[];
|
|
32
|
-
|
|
37
|
+
fn?: never;
|
|
38
|
+
} | {
|
|
39
|
+
data?: never;
|
|
40
|
+
fn: (props: void | ConversationMessage[]) => void | ConversationMessage[];
|
|
41
|
+
})>;
|
|
33
42
|
reset: import("effector").EventCallable<void>;
|
|
34
43
|
};
|
|
35
44
|
readonly threadIds: {
|
|
36
45
|
$state: import("effector").StoreWritable<Record<string, string>>;
|
|
37
46
|
setField: import("effector").EventCallable<{
|
|
38
47
|
key: string;
|
|
48
|
+
} & ({
|
|
39
49
|
data: string;
|
|
40
|
-
|
|
50
|
+
fn?: never;
|
|
51
|
+
} | {
|
|
52
|
+
data?: never;
|
|
53
|
+
fn: (props: string | void) => string | void;
|
|
54
|
+
})>;
|
|
41
55
|
reset: import("effector").EventCallable<void>;
|
|
42
56
|
};
|
|
43
57
|
readonly availableChats: {
|
|
44
58
|
$state: import("effector").StoreWritable<Record<string, boolean>>;
|
|
45
59
|
setField: import("effector").EventCallable<{
|
|
46
60
|
key: string;
|
|
61
|
+
} & ({
|
|
47
62
|
data: boolean;
|
|
48
|
-
|
|
63
|
+
fn?: never;
|
|
64
|
+
} | {
|
|
65
|
+
data?: never;
|
|
66
|
+
fn: (props: boolean | void) => boolean | void;
|
|
67
|
+
})>;
|
|
49
68
|
reset: import("effector").EventCallable<void>;
|
|
50
69
|
};
|
|
51
70
|
private createSendHelpRequestFx;
|
|
52
71
|
private initChatReplyWatcher;
|
|
53
72
|
startConversation(): void;
|
|
54
73
|
setHintMessage({ entityId, fieldId, ...message }: SetHintMessageProps): void;
|
|
74
|
+
addOption({ options, key }: AddOptionProps): void;
|
|
55
75
|
bindKey($store: Store<string>): this;
|
|
56
76
|
}
|
|
77
|
+
export {};
|
|
57
78
|
//# sourceMappingURL=ChatBotModel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatBotModel.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/ChatBotModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,KAAK,EACV,KAAK,MAAM,EAGZ,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"ChatBotModel.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/ChatBotModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,KAAK,EACV,KAAK,MAAM,EAGZ,MAAM,UAAU,CAAA;AAEjB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EAEd,mBAAmB,EACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE7F,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAA;AAE7C,KAAK,cAAc,GAAG;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,UAAU,EAAE,CAAA;CACtB,CAAA;AAED,qBAAa,YAAY;IACvB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAA;IACxC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAA;IAEnC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAC9C,SAAgB,WAAW,2CAAkB;IAE7C,QAAQ,CAAC,iBAAiB,yCAAgB;IAC1C,QAAQ,CAAC,eAAe,mEAAgD;IACxE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAA;IAE7D,QAAQ,CAAC,SAAS,4CAAyB;IAC3C,QAAQ,CAAC,UAAU,yCAAgB;IACnC,QAAQ,CAAC,OAAO,4CAAwE;IAGxF,SAAgB,iBAAiB,yCAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwC;IAExE,QAAQ,CAAC,eAAe,4CAAyB;IACjD,QAAQ,CAAC,eAAe,4CAAuC;IAE/D,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,cAAc,EAAE,mBAAmB,GAAG,mBAAmB,CAAC,CAAA;IAE7F,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAA;gBAE3C,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,iBAAiB;IAgC/D,QAAQ,CAAC,QAAQ;;;;;;;;;;;;MAAkD;IACnE,QAAQ,CAAC,SAAS;;;;;;;;;;;;MAAmC;IACrD,QAAQ,CAAC,cAAc;;;;;;;;;;;;MAAoC;IAE3D,OAAO,CAAC,uBAAuB;IAwD/B,OAAO,CAAC,oBAAoB;IAiDrB,iBAAiB;IAUjB,cAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,mBAAmB;IAWrE,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,cAAc;IAgB1C,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;CAOrC"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
type UpdateField<T> = {
|
|
2
2
|
key: string;
|
|
3
|
+
} & ({
|
|
3
4
|
data: T;
|
|
4
|
-
|
|
5
|
+
fn?: never;
|
|
6
|
+
} | {
|
|
7
|
+
data?: never;
|
|
8
|
+
fn: (props: T | void) => T | void;
|
|
9
|
+
});
|
|
5
10
|
export declare function createEntityFieldStore<T>(): {
|
|
6
11
|
$state: import("effector").StoreWritable<Record<string, T>>;
|
|
7
12
|
setField: import("effector").EventCallable<UpdateField<T>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createEntityFieldStore.d.ts","sourceRoot":"","sources":["../../../../../src/lib/effector/createEntityFieldStore.ts"],"names":[],"mappings":"AAEA,KAAK,WAAW,CAAC,CAAC,IAAI;IACpB,GAAG,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"createEntityFieldStore.d.ts","sourceRoot":"","sources":["../../../../../src/lib/effector/createEntityFieldStore.ts"],"names":[],"mappings":"AAEA,KAAK,WAAW,CAAC,CAAC,IAAI;IACpB,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,EAAE,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,IAAI,CAAC,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,CAAA;CAAE,CAAC,CAAA;AAEnF,wBAAgB,sBAAsB,CAAC,CAAC;;;;EAiBvC"}
|
package/package.json
CHANGED
|
@@ -9,7 +9,6 @@ import {
|
|
|
9
9
|
createStore,
|
|
10
10
|
} from 'effector'
|
|
11
11
|
import { createControllerEffect, createEntityFieldStore } from '../../../lib/effector'
|
|
12
|
-
|
|
13
12
|
import {
|
|
14
13
|
ChatbotModelProps,
|
|
15
14
|
ConversationMessage,
|
|
@@ -17,13 +16,17 @@ import {
|
|
|
17
16
|
SendHelpProps,
|
|
18
17
|
SetHintMessageProps,
|
|
19
18
|
} from '../types/model.types'
|
|
20
|
-
import { GetAlternativesResponse, PostMessageResponse } from '../types/api.types'
|
|
21
|
-
|
|
19
|
+
import { ChatAnswer, GetAlternativesResponse, PostMessageResponse } from '../types/api.types'
|
|
22
20
|
import { generateRandomId } from '../../../lib/helpers/helpers'
|
|
23
21
|
import { ChatbotAPI } from './api'
|
|
24
22
|
import { ChatbotTranslation } from './translation'
|
|
25
23
|
import { ChatTextToSpeechModel } from './t2s'
|
|
26
24
|
|
|
25
|
+
type AddOptionProps = {
|
|
26
|
+
key: string
|
|
27
|
+
options: ChatAnswer[]
|
|
28
|
+
}
|
|
29
|
+
|
|
27
30
|
export class ChatbotModel {
|
|
28
31
|
readonly api: ChatbotAPI
|
|
29
32
|
readonly translation: ChatbotTranslation
|
|
@@ -205,11 +208,29 @@ export class ChatbotModel {
|
|
|
205
208
|
|
|
206
209
|
public setHintMessage({ entityId, fieldId, ...message }: SetHintMessageProps) {
|
|
207
210
|
const options = this.$alternatives.getState()?.options.hints ?? message.options
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
211
|
+
this.messages.setField({
|
|
212
|
+
key: `${entityId}-${fieldId}`,
|
|
213
|
+
fn: messages => {
|
|
214
|
+
if (!messages || messages.length > 1) return
|
|
215
|
+
return [{ ...message, options }]
|
|
216
|
+
},
|
|
217
|
+
})
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
public addOption({ options, key }: AddOptionProps) {
|
|
221
|
+
this.messages.setField({
|
|
222
|
+
key,
|
|
223
|
+
fn: messages => {
|
|
224
|
+
if (!messages?.length) return
|
|
225
|
+
const lastMessage = messages[messages.length - 1]
|
|
226
|
+
const copy = [...messages]
|
|
227
|
+
copy.splice(messages.length - 1, 1, {
|
|
228
|
+
...lastMessage,
|
|
229
|
+
options: [...lastMessage.options, ...options],
|
|
230
|
+
})
|
|
231
|
+
return copy
|
|
232
|
+
},
|
|
233
|
+
})
|
|
213
234
|
}
|
|
214
235
|
|
|
215
236
|
public bindKey($store: Store<string>) {
|
|
@@ -2,15 +2,22 @@ import { createEvent, createStore } from 'effector'
|
|
|
2
2
|
|
|
3
3
|
type UpdateField<T> = {
|
|
4
4
|
key: string
|
|
5
|
-
|
|
6
|
-
}
|
|
5
|
+
} & ({ data: T; fn?: never } | { data?: never; fn: (props: T | void) => T | void })
|
|
7
6
|
|
|
8
7
|
export function createEntityFieldStore<T>() {
|
|
9
8
|
const setField = createEvent<UpdateField<T>>()
|
|
10
9
|
const reset = createEvent()
|
|
11
10
|
|
|
12
11
|
const $state = createStore<Record<string, T>>({})
|
|
13
|
-
.on(setField, (state, { key, data }) =>
|
|
12
|
+
.on(setField, (state, { key, data }) => {
|
|
13
|
+
if (typeof data === 'function') {
|
|
14
|
+
const currentData = state[key]
|
|
15
|
+
const newData = data(currentData)
|
|
16
|
+
if (newData === undefined) return state
|
|
17
|
+
return { ...state, [key]: newData }
|
|
18
|
+
}
|
|
19
|
+
return { ...state, [key]: data }
|
|
20
|
+
})
|
|
14
21
|
.reset(reset)
|
|
15
22
|
|
|
16
23
|
return { $state, setField, reset }
|