@magmamath/students-features 0.3.0-rc.13 → 0.3.0-rc.14

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.
Files changed (95) hide show
  1. package/dist/commonjs/features/chatbot/components/Alternatives/Alternatives.js +1 -1
  2. package/dist/commonjs/features/chatbot/components/Alternatives/Alternatives.js.map +1 -1
  3. package/dist/commonjs/features/chatbot/components/ChatControls/ChatControls.js +1 -1
  4. package/dist/commonjs/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
  5. package/dist/commonjs/features/chatbot/components/Chatbot.js +1 -1
  6. package/dist/commonjs/features/chatbot/components/Chatbot.js.map +1 -1
  7. package/dist/commonjs/features/chatbot/model/ChatBotModel.js +34 -60
  8. package/dist/commonjs/features/chatbot/model/ChatBotModel.js.map +1 -1
  9. package/dist/commonjs/features/chatbot/model/api.js.map +1 -1
  10. package/dist/commonjs/features/chatbot/model/messagesHelper.js +46 -0
  11. package/dist/commonjs/features/chatbot/model/messagesHelper.js.map +1 -0
  12. package/dist/commonjs/features/chatbot/model/translation.helpers.js +62 -0
  13. package/dist/commonjs/features/chatbot/model/translation.helpers.js.map +1 -0
  14. package/dist/commonjs/features/chatbot/model/translation.js +94 -130
  15. package/dist/commonjs/features/chatbot/model/translation.js.map +1 -1
  16. package/dist/commonjs/features/chatbot/types/model.types.js.map +1 -1
  17. package/dist/commonjs/index.js +9 -1
  18. package/dist/commonjs/index.js.map +1 -1
  19. package/dist/commonjs/lib/helpers/types.js +2 -0
  20. package/dist/commonjs/lib/helpers/types.js.map +1 -0
  21. package/dist/module/features/chatbot/components/Alternatives/Alternatives.js +1 -1
  22. package/dist/module/features/chatbot/components/Alternatives/Alternatives.js.map +1 -1
  23. package/dist/module/features/chatbot/components/ChatControls/ChatControls.js +1 -1
  24. package/dist/module/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
  25. package/dist/module/features/chatbot/components/Chatbot.js +1 -1
  26. package/dist/module/features/chatbot/components/Chatbot.js.map +1 -1
  27. package/dist/module/features/chatbot/index.js.map +1 -1
  28. package/dist/module/features/chatbot/model/ChatBotModel.js +34 -60
  29. package/dist/module/features/chatbot/model/ChatBotModel.js.map +1 -1
  30. package/dist/module/features/chatbot/model/api.js.map +1 -1
  31. package/dist/module/features/chatbot/model/messagesHelper.js +41 -0
  32. package/dist/module/features/chatbot/model/messagesHelper.js.map +1 -0
  33. package/dist/module/features/chatbot/model/translation.helpers.js +57 -0
  34. package/dist/module/features/chatbot/model/translation.helpers.js.map +1 -0
  35. package/dist/module/features/chatbot/model/translation.js +95 -131
  36. package/dist/module/features/chatbot/model/translation.js.map +1 -1
  37. package/dist/module/features/chatbot/types/model.types.js.map +1 -1
  38. package/dist/module/index.js +1 -0
  39. package/dist/module/index.js.map +1 -1
  40. package/dist/module/lib/helpers/types.js +2 -0
  41. package/dist/module/lib/helpers/types.js.map +1 -0
  42. package/dist/typescript/commonjs/features/chatbot/index.d.ts +1 -1
  43. package/dist/typescript/commonjs/features/chatbot/index.d.ts.map +1 -1
  44. package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts +6 -6
  45. package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
  46. package/dist/typescript/commonjs/features/chatbot/model/api.d.ts +5 -7
  47. package/dist/typescript/commonjs/features/chatbot/model/api.d.ts.map +1 -1
  48. package/dist/typescript/commonjs/features/chatbot/model/messagesHelper.d.ts +21 -0
  49. package/dist/typescript/commonjs/features/chatbot/model/messagesHelper.d.ts.map +1 -0
  50. package/dist/typescript/commonjs/features/chatbot/model/translation.d.ts +9 -9
  51. package/dist/typescript/commonjs/features/chatbot/model/translation.d.ts.map +1 -1
  52. package/dist/typescript/commonjs/features/chatbot/model/translation.helpers.d.ts +20 -0
  53. package/dist/typescript/commonjs/features/chatbot/model/translation.helpers.d.ts.map +1 -0
  54. package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts +4 -0
  55. package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts.map +1 -1
  56. package/dist/typescript/commonjs/features/chatbot/types/translation.types.d.ts +19 -4
  57. package/dist/typescript/commonjs/features/chatbot/types/translation.types.d.ts.map +1 -1
  58. package/dist/typescript/commonjs/index.d.ts +1 -0
  59. package/dist/typescript/commonjs/index.d.ts.map +1 -1
  60. package/dist/typescript/commonjs/lib/helpers/types.d.ts +2 -0
  61. package/dist/typescript/commonjs/lib/helpers/types.d.ts.map +1 -0
  62. package/dist/typescript/module/features/chatbot/index.d.ts +1 -1
  63. package/dist/typescript/module/features/chatbot/index.d.ts.map +1 -1
  64. package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts +6 -6
  65. package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
  66. package/dist/typescript/module/features/chatbot/model/api.d.ts +5 -7
  67. package/dist/typescript/module/features/chatbot/model/api.d.ts.map +1 -1
  68. package/dist/typescript/module/features/chatbot/model/messagesHelper.d.ts +21 -0
  69. package/dist/typescript/module/features/chatbot/model/messagesHelper.d.ts.map +1 -0
  70. package/dist/typescript/module/features/chatbot/model/translation.d.ts +9 -9
  71. package/dist/typescript/module/features/chatbot/model/translation.d.ts.map +1 -1
  72. package/dist/typescript/module/features/chatbot/model/translation.helpers.d.ts +20 -0
  73. package/dist/typescript/module/features/chatbot/model/translation.helpers.d.ts.map +1 -0
  74. package/dist/typescript/module/features/chatbot/types/model.types.d.ts +4 -0
  75. package/dist/typescript/module/features/chatbot/types/model.types.d.ts.map +1 -1
  76. package/dist/typescript/module/features/chatbot/types/translation.types.d.ts +19 -4
  77. package/dist/typescript/module/features/chatbot/types/translation.types.d.ts.map +1 -1
  78. package/dist/typescript/module/index.d.ts +1 -0
  79. package/dist/typescript/module/index.d.ts.map +1 -1
  80. package/dist/typescript/module/lib/helpers/types.d.ts +2 -0
  81. package/dist/typescript/module/lib/helpers/types.d.ts.map +1 -0
  82. package/package.json +1 -1
  83. package/src/features/chatbot/components/Alternatives/Alternatives.tsx +1 -1
  84. package/src/features/chatbot/components/ChatControls/ChatControls.tsx +1 -1
  85. package/src/features/chatbot/components/Chatbot.tsx +1 -1
  86. package/src/features/chatbot/index.ts +6 -1
  87. package/src/features/chatbot/model/ChatBotModel.ts +36 -67
  88. package/src/features/chatbot/model/api.ts +24 -33
  89. package/src/features/chatbot/model/messagesHelper.ts +48 -0
  90. package/src/features/chatbot/model/translation.helpers.ts +50 -0
  91. package/src/features/chatbot/model/translation.ts +91 -147
  92. package/src/features/chatbot/types/model.types.ts +5 -0
  93. package/src/features/chatbot/types/translation.types.ts +20 -4
  94. package/src/index.ts +1 -0
  95. package/src/lib/helpers/types.ts +1 -0
@@ -2,10 +2,10 @@
2
2
 
3
3
  import { attach, createEvent, restore, sample, createStore, createEffect, combine } from 'effector';
4
4
  import { createControllerEffect, createEntityFieldStore } from "../../../lib/effector/index.js";
5
- import { generateRandomId } from "../../../lib/helpers/helpers.js";
6
5
  import { ChatbotAPI } from "./api.js";
7
6
  import { ChatbotTranslation } from "./translation.js";
8
7
  import { ChatTextToSpeechModel } from "./t2s.js";
8
+ import { messagesHelper } from "./messagesHelper.js";
9
9
  export class ChatbotModel {
10
10
  $currentKey = createStore('');
11
11
  resetAlternatives = createEvent();
@@ -48,12 +48,10 @@ export class ChatbotModel {
48
48
  }) {
49
49
  this.api = new ChatbotAPI(api);
50
50
  this.defaultMessages = messages;
51
- if ($key) {
52
- sample({
53
- source: $key,
54
- target: this.$currentKey
55
- });
56
- }
51
+ if ($key) sample({
52
+ source: $key,
53
+ target: this.$currentKey
54
+ });
57
55
  this.$alternatives = restore(this.api.getAlternativesFx.doneData, null).on(this.setAlternatives, (_, payload) => payload).reset(this.resetAlternatives);
58
56
  this.translation = new ChatbotTranslation({
59
57
  defaultMessages: messages,
@@ -73,7 +71,7 @@ export class ChatbotModel {
73
71
  this.initChatReplyWatcher();
74
72
  }
75
73
  createSendHelpRequestFx() {
76
- return attach({
74
+ const effect = attach({
77
75
  source: [this.$currentKey, this.translation.$isTranslated],
78
76
  mapParams: (params, [key, isTranslated]) => ({
79
77
  ...params,
@@ -82,7 +80,7 @@ export class ChatbotModel {
82
80
  }),
83
81
  effect: createControllerEffect(async ({
84
82
  payload,
85
- message = '',
83
+ message,
86
84
  translationTargetLanguage,
87
85
  translatedMessage,
88
86
  key,
@@ -91,33 +89,24 @@ export class ChatbotModel {
91
89
  this.setLastMessageKey(key);
92
90
  this.messages.setField({
93
91
  key,
94
- fn: (currentMessages = []) => [...(currentMessages || []), {
95
- id: generateRandomId(),
96
- message: message ?? '',
92
+ fn: (currentMessages = []) => [...(currentMessages || []), messagesHelper.createOwn({
93
+ message,
97
94
  translatedMessage,
98
- isOwnMessage: true,
99
- threadId: payload.threadId ?? '',
100
- options: []
101
- }]
95
+ threadId: payload.threadId
96
+ })]
102
97
  });
103
98
  const response = await this.api.postMessageFx(payload);
104
99
  if (isTranslated) {
105
- return await this.translation.translateMessageFx({
100
+ return this.translation.translateMessageFx({
106
101
  targetLanguage: translationTargetLanguage,
107
- message: {
108
- ...response,
109
- id: generateRandomId(),
110
- isOwnMessage: false
111
- }
102
+ message: messagesHelper.createAnswer(response)
112
103
  });
113
104
  }
114
105
  return response;
115
106
  })
116
107
  });
117
- }
118
- initChatReplyWatcher() {
119
108
  sample({
120
- clock: this.sendHelpRequestFx.doneData,
109
+ clock: effect.doneData,
121
110
  source: [this.$currentKey],
122
111
  fn: ([key], response) => ({
123
112
  key,
@@ -127,27 +116,16 @@ export class ChatbotModel {
127
116
  key,
128
117
  response
129
118
  }) => {
130
- const newMessages = [{
131
- id: generateRandomId(),
132
- message: response.message,
133
- isOwnMessage: false,
134
- threadId: response.threadId,
135
- options: response.options,
136
- translatedMessage: 'translatedMessage' in response ? response.translatedMessage : undefined
137
- }];
138
- if (response.endMessage) {
139
- newMessages.push({
140
- id: generateRandomId(),
141
- message: 'Answer again to get another hint!',
142
- isOwnMessage: false,
143
- options: [],
144
- threadId: '',
145
- endMessage: true
146
- });
147
- }
148
119
  this.messages.setField({
149
120
  key,
150
- fn: messages => [...(messages || []), ...newMessages]
121
+ fn: messages => {
122
+ const copy = [...(messages || [])];
123
+ copy.push(messagesHelper.createAnswer(response));
124
+ if (response.endMessage) {
125
+ copy.push(messagesHelper.createLast(this.defaultMessages.endMessage));
126
+ }
127
+ return copy;
128
+ }
151
129
  });
152
130
  this.threadIds.setField({
153
131
  key,
@@ -155,7 +133,7 @@ export class ChatbotModel {
155
133
  });
156
134
  });
157
135
  sample({
158
- clock: this.sendHelpRequestFx.fail,
136
+ clock: effect.fail,
159
137
  source: this.$currentChatData,
160
138
  fn: ({
161
139
  key,
@@ -169,17 +147,18 @@ export class ChatbotModel {
169
147
  }) => error.message !== 'Request aborted manually',
170
148
  target: this.messages.setField
171
149
  });
150
+ return effect;
151
+ }
152
+ initChatReplyWatcher() {
172
153
  sample({
173
154
  clock: this.removeLastMessage,
174
155
  source: [this.$lastMessageKey, this.messages.$state],
175
156
  fn: ([lastMessageKey, messages]) => {
176
- const mockData = {
157
+ if (!lastMessageKey) return {
177
158
  key: '',
178
159
  data: []
179
160
  };
180
- if (!lastMessageKey) return mockData;
181
- const updatedMessages = messages[lastMessageKey];
182
- if (!updatedMessages?.length) return mockData;
161
+ const updatedMessages = [...messages[lastMessageKey]];
183
162
  updatedMessages.pop();
184
163
  return {
185
164
  key: lastMessageKey,
@@ -233,20 +212,15 @@ export class ChatbotModel {
233
212
  key,
234
213
  fn: messages => {
235
214
  if (!messages?.length || messages.length === 1) return;
236
- let messagesToRemove = 1;
237
- let lastMessage = messages[messages.length - 1];
238
- if (lastMessage.endMessage) {
239
- lastMessage = messages[messages.length - 2];
240
- messagesToRemove = 2;
215
+ const copy = [...messages];
216
+ while (copy.at(-1)?.endMessage) {
217
+ copy.pop();
241
218
  }
219
+ const lastMessage = copy.at(-1);
242
220
  if (!lastMessage) return;
243
- const copy = [...messages];
244
- copy.splice(messages.length - messagesToRemove, messagesToRemove, {
221
+ copy.splice(copy.length - 1, 1, {
245
222
  ...lastMessage,
246
- options: [{
247
- text: 'Give me another hint',
248
- promptKey: ''
249
- }]
223
+ options: [this.defaultMessages.anotherHintOption]
250
224
  });
251
225
  return copy;
252
226
  }
@@ -1 +1 @@
1
- {"version":3,"names":["attach","createEvent","restore","sample","createStore","createEffect","combine","createControllerEffect","createEntityFieldStore","generateRandomId","ChatbotAPI","ChatbotTranslation","ChatTextToSpeechModel","ChatbotModel","$currentKey","resetAlternatives","setAlternatives","setIsOpen","toggleOpen","$isOpen","on","isOpen","removeLastMessage","setLastMessageKey","$lastMessageKey","setScrollActive","$isScrollActive","messages","threadIds","availableChats","$currentChatData","$state","key","threadId","isAvailable","constructor","api","$key","defaultMessages","source","target","$alternatives","getAlternativesFx","doneData","_","payload","reset","translation","messagesModel","alternativesModel","$store","set","t2s","sendHelpRequestFx","createSendHelpRequestFx","initChatReplyWatcher","$isTranslated","mapParams","params","isTranslated","effect","message","translationTargetLanguage","translatedMessage","setField","fn","currentMessages","id","isOwnMessage","options","response","postMessageFx","translateMessageFx","targetLanguage","clock","watch","newMessages","undefined","endMessage","push","data","fail","error","filter","lastMessageKey","mockData","updatedMessages","length","pop","startConversation","reinitConversation","start","setHintMessage","getState","hints","messagesToRemove","lastMessage","copy","splice","text","promptKey","bindKey","setT2SAudioProvider","audioProvider","setAudioProvider"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/ChatBotModel.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["attach","createEvent","restore","sample","createStore","createEffect","combine","createControllerEffect","createEntityFieldStore","ChatbotAPI","ChatbotTranslation","ChatTextToSpeechModel","messagesHelper","ChatbotModel","$currentKey","resetAlternatives","setAlternatives","setIsOpen","toggleOpen","$isOpen","on","isOpen","removeLastMessage","setLastMessageKey","$lastMessageKey","setScrollActive","$isScrollActive","messages","threadIds","availableChats","$currentChatData","$state","key","threadId","isAvailable","constructor","api","$key","defaultMessages","source","target","$alternatives","getAlternativesFx","doneData","_","payload","reset","translation","messagesModel","alternativesModel","$store","set","t2s","sendHelpRequestFx","createSendHelpRequestFx","initChatReplyWatcher","effect","$isTranslated","mapParams","params","isTranslated","message","translationTargetLanguage","translatedMessage","setField","fn","currentMessages","createOwn","response","postMessageFx","translateMessageFx","targetLanguage","createAnswer","clock","watch","copy","push","endMessage","createLast","data","fail","error","filter","lastMessageKey","updatedMessages","pop","startConversation","length","reinitConversation","start","setHintMessage","options","getState","hints","at","lastMessage","splice","anotherHintOption","bindKey","setT2SAudioProvider","audioProvider","setAudioProvider"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/ChatBotModel.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["createEffect","createControllerEffect","replaceKatexSyntax","ChatbotAPI","constructor","api","postMessageFx","postMessage","getAlternativesFx","getAlternatives","translateTextFx","payload","response","postTranslateText","text","data","translations","map","translation","translatedText","textToSpeechTextFx","postTextToSpeech"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/api.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAgB,UAAU;AAE/C,SAASC,sBAAsB,QAAQ,gCAAuB;AAa9D,SAASC,kBAAkB,QAAQ,eAAY;AAE/C,OAAO,MAAMC,UAAU,CAAC;EAMtBC,WAAWA,CAACC,GAA6B,EAAE;IACzC,IAAI,CAACC,aAAa,GAAGL,sBAAsB,CAACI,GAAG,CAACE,WAAW,CAAC;IAC5D,IAAI,CAACC,iBAAiB,GAAGR,YAAY,CAACK,GAAG,CAACI,eAAe,CAAC;IAC1D,IAAI,CAACC,eAAe,GAAGV,YAAY,CAAC,MAAOW,OAA+B,IAAK;MAC7E,MAAMC,QAAQ,GAAG,MAAMP,GAAG,CAACQ,iBAAiB,CAAC;QAC3C,GAAGF,OAAO;QACVG,IAAI,EAAEZ,kBAAkB,CAACS,OAAO,CAACG,IAAI;MACvC,CAAC,CAAC;MAEF,OAAO;QACL,GAAGF,QAAQ;QACXG,IAAI,EAAE;UACJ,GAAGH,QAAQ,CAACG,IAAI;UAChBC,YAAY,EAAEJ,QAAQ,CAACG,IAAI,CAACC,YAAY,CAACC,GAAG,CAACC,WAAW,KAAK;YAC3D,GAAGA,WAAW;YACdC,cAAc,EAAEjB,kBAAkB,CAAC,CAACgB,WAAW,CAACC,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;UAC1E,CAAC,CAAC;QACJ;MACF,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAACC,kBAAkB,GAAGpB,YAAY,CAACK,GAAG,CAACgB,gBAAgB,CAAC;EAC9D;AACF","ignoreList":[]}
1
+ {"version":3,"names":["createEffect","createControllerEffect","replaceKatexSyntax","ChatbotAPI","constructor","api","postMessageFx","postMessage","getAlternativesFx","getAlternatives","translateTextFx","payload","response","postTranslateText","text","data","translations","map","translation","translatedText","textToSpeechTextFx","postTextToSpeech"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/api.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,UAAU;AACvC,SAASC,sBAAsB,QAAQ,gCAAuB;AAG9D,SAASC,kBAAkB,QAAQ,eAAY;AAE/C,OAAO,MAAMC,UAAU,CAAC;EAMtBC,WAAWA,CAACC,GAA6B,EAAE;IACzC,IAAI,CAACC,aAAa,GAAGL,sBAAsB,CAACI,GAAG,CAACE,WAAW,CAAC;IAC5D,IAAI,CAACC,iBAAiB,GAAGR,YAAY,CAACK,GAAG,CAACI,eAAe,CAAC;IAC1D,IAAI,CAACC,eAAe,GAAGV,YAAY,CACjC,MAAOW,OAA+B,IAAuC;MAC3E,MAAMC,QAAQ,GAAG,MAAMP,GAAG,CAACQ,iBAAiB,CAAC;QAC3C,GAAGF,OAAO;QACVG,IAAI,EAAEZ,kBAAkB,CAACS,OAAO,CAACG,IAAI;MACvC,CAAC,CAAC;MAEF,OAAO;QACL,GAAGF,QAAQ;QACXG,IAAI,EAAE;UACJ,GAAGH,QAAQ,CAACG,IAAI;UAChBC,YAAY,EAAEJ,QAAQ,CAACG,IAAI,CAACC,YAAY,CAACC,GAAG,CAAEC,WAAW,KAAM;YAC7D,GAAGA,WAAW;YACdC,cAAc,EAAEjB,kBAAkB,CAAC,CAACgB,WAAW,CAACC,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;UAC1E,CAAC,CAAC;QACJ;MACF,CAAC;IACH,CACF,CAAC;IACD,IAAI,CAACC,kBAAkB,GAAGpB,YAAY,CAACK,GAAG,CAACgB,gBAAgB,CAAC;EAC9D;AACF","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ import { generateRandomId } from "../../../lib/helpers/helpers.js";
4
+ export class messagesHelper {
5
+ static createAnswer(data) {
6
+ return {
7
+ id: generateRandomId(),
8
+ isOwnMessage: false,
9
+ message: data.message,
10
+ threadId: data.threadId,
11
+ options: data.options,
12
+ translatedMessage: data.translatedMessage
13
+ };
14
+ }
15
+ static createLast(data) {
16
+ return {
17
+ id: generateRandomId(),
18
+ message: data.message,
19
+ translatedMessage: data.translatedMessage,
20
+ isOwnMessage: false,
21
+ options: [],
22
+ threadId: '',
23
+ endMessage: true
24
+ };
25
+ }
26
+ static createOwn({
27
+ message = '',
28
+ translatedMessage,
29
+ threadId
30
+ }) {
31
+ return {
32
+ id: generateRandomId(),
33
+ message,
34
+ translatedMessage,
35
+ threadId: threadId || '',
36
+ isOwnMessage: true,
37
+ options: []
38
+ };
39
+ }
40
+ }
41
+ //# sourceMappingURL=messagesHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["generateRandomId","messagesHelper","createAnswer","data","id","isOwnMessage","message","threadId","options","translatedMessage","createLast","endMessage","createOwn"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/messagesHelper.ts"],"mappings":";;AAAA,SAASA,gBAAgB,QAAQ,iCAA8B;AAS/D,OAAO,MAAMC,cAAc,CAAC;EAC1B,OAAcC,YAAYA,CAACC,IAA2B,EAAuB;IAC3E,OAAO;MACLC,EAAE,EAAEJ,gBAAgB,CAAC,CAAC;MACtBK,YAAY,EAAE,KAAK;MACnBC,OAAO,EAAEH,IAAI,CAACG,OAAO;MACrBC,QAAQ,EAAEJ,IAAI,CAACI,QAAQ;MACvBC,OAAO,EAAEL,IAAI,CAACK,OAAO;MACrBC,iBAAiB,EAAEN,IAAI,CAACM;IAC1B,CAAC;EACH;EAEA,OAAcC,UAAUA,CAACP,IAA2B,EAAE;IACpD,OAAO;MACLC,EAAE,EAAEJ,gBAAgB,CAAC,CAAC;MACtBM,OAAO,EAAEH,IAAI,CAACG,OAAO;MACrBG,iBAAiB,EAAEN,IAAI,CAACM,iBAAiB;MACzCJ,YAAY,EAAE,KAAK;MACnBG,OAAO,EAAE,EAAE;MACXD,QAAQ,EAAE,EAAE;MACZI,UAAU,EAAE;IACd,CAAC;EACH;EAEA,OAAcC,SAASA,CAAC;IACtBN,OAAO,GAAG,EAAE;IACZG,iBAAiB;IACjBF;EACe,CAAC,EAAuB;IACvC,OAAO;MACLH,EAAE,EAAEJ,gBAAgB,CAAC,CAAC;MACtBM,OAAO;MACPG,iBAAiB;MACjBF,QAAQ,EAAEA,QAAQ,IAAI,EAAE;MACxBF,YAAY,EAAE,IAAI;MAClBG,OAAO,EAAE;IACX,CAAC;EACH;AACF","ignoreList":[]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ export function getOptionsForTranslation({
4
+ lastMessage,
5
+ alternatives
6
+ }) {
7
+ if (!lastMessage) return {
8
+ lastMessage: null,
9
+ alternatives: null
10
+ };
11
+ if (!lastMessage.options.length) {
12
+ if (!alternatives) return {
13
+ lastMessage: null,
14
+ alternatives: null
15
+ };
16
+ const hintAlternatives = alternatives.options.hints ?? [];
17
+ const defaultAlternatives = alternatives.options.default ?? [];
18
+ return {
19
+ lastMessage: null,
20
+ alternatives: {
21
+ hints: hintAlternatives.map(({
22
+ text
23
+ }) => text),
24
+ default: defaultAlternatives.map(({
25
+ text
26
+ }) => text)
27
+ }
28
+ };
29
+ }
30
+ return {
31
+ lastMessage: lastMessage.options.map(({
32
+ text
33
+ }) => text),
34
+ alternatives: null
35
+ };
36
+ }
37
+ export function addTranslationsToAlternative({
38
+ alternatives,
39
+ translatedHints,
40
+ translatedDefaults
41
+ }) {
42
+ return {
43
+ ...alternatives,
44
+ options: {
45
+ ...alternatives.options,
46
+ hints: translatedHints.map((translatedMessage, index) => ({
47
+ ...alternatives.options.hints[index],
48
+ translatedMessage
49
+ })),
50
+ default: translatedDefaults.map((translatedMessage, index) => ({
51
+ ...alternatives.options.default[index],
52
+ translatedMessage
53
+ }))
54
+ }
55
+ };
56
+ }
57
+ //# sourceMappingURL=translation.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getOptionsForTranslation","lastMessage","alternatives","options","length","hintAlternatives","hints","defaultAlternatives","default","map","text","addTranslationsToAlternative","translatedHints","translatedDefaults","translatedMessage","index"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/translation.helpers.ts"],"mappings":";;AAMA,OAAO,SAASA,wBAAwBA,CAAC;EACvCC,WAAW;EACXC;AACe,CAAC,EAAoB;EACpC,IAAI,CAACD,WAAW,EAAE,OAAO;IAAEA,WAAW,EAAE,IAAI;IAAEC,YAAY,EAAE;EAAK,CAAC;EAClE,IAAI,CAACD,WAAW,CAACE,OAAO,CAACC,MAAM,EAAE;IAC/B,IAAI,CAACF,YAAY,EAAE,OAAO;MAAED,WAAW,EAAE,IAAI;MAAEC,YAAY,EAAE;IAAK,CAAC;IACnE,MAAMG,gBAAgB,GAAGH,YAAY,CAACC,OAAO,CAACG,KAAK,IAAI,EAAE;IACzD,MAAMC,mBAAmB,GAAGL,YAAY,CAACC,OAAO,CAACK,OAAO,IAAI,EAAE;IAC9D,OAAO;MACLP,WAAW,EAAE,IAAI;MACjBC,YAAY,EAAE;QACZI,KAAK,EAAED,gBAAgB,CAACI,GAAG,CAAC,CAAC;UAAEC;QAAK,CAAC,KAAKA,IAAI,CAAC;QAC/CF,OAAO,EAAED,mBAAmB,CAACE,GAAG,CAAC,CAAC;UAAEC;QAAK,CAAC,KAAKA,IAAI;MACrD;IACF,CAAC;EACH;EAEA,OAAO;IACLT,WAAW,EAAEA,WAAW,CAACE,OAAO,CAACM,GAAG,CAAC,CAAC;MAAEC;IAAK,CAAC,KAAKA,IAAI,CAAC;IACxDR,YAAY,EAAE;EAChB,CAAC;AACH;AAEA,OAAO,SAASS,4BAA4BA,CAAC;EAC3CT,YAAY;EACZU,eAAe;EACfC;AACiC,CAAC,EAAE;EACpC,OAAO;IACL,GAAGX,YAAY;IACfC,OAAO,EAAE;MACP,GAAGD,YAAY,CAACC,OAAO;MACvBG,KAAK,EAAEM,eAAe,CAACH,GAAG,CAAC,CAACK,iBAAiB,EAAEC,KAAK,MAAM;QACxD,GAAGb,YAAY,CAACC,OAAO,CAACG,KAAK,CAACS,KAAK,CAAC;QACpCD;MACF,CAAC,CAAC,CAAC;MACHN,OAAO,EAAEK,kBAAkB,CAACJ,GAAG,CAAC,CAACK,iBAAiB,EAAEC,KAAK,MAAM;QAC7D,GAAGb,YAAY,CAACC,OAAO,CAACK,OAAO,CAACO,KAAK,CAAC;QACtCD;MACF,CAAC,CAAC;IACJ;EACF,CAAC;AACH","ignoreList":[]}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
 
3
- import { createEvent, restore, attach, createEffect, sample } from 'effector';
3
+ import { attach, createEffect, createEvent, restore, sample } from 'effector';
4
4
  import { decodeHTMLEntities } from "../helpers.js";
5
+ import { addTranslationsToAlternative, getOptionsForTranslation } from "./translation.helpers.js";
5
6
  export class ChatbotTranslation {
6
7
  setIsTranslated = createEvent();
7
8
  $isTranslated = restore(this.setIsTranslated, false);
@@ -17,9 +18,15 @@ export class ChatbotTranslation {
17
18
  this.defaultMessages = defaultMessages;
18
19
  this.messagesModel = messagesModel;
19
20
  this.alternativesModel = alternativesModel;
20
- this.translateAlternativesFx = this.createTranslateAlternativesEffect();
21
- this.translateMessageFx = this.createTranslateMessageEffect();
22
- this.translateBatchFx = this.createTranslateBatchEffect();
21
+ this.translateAllMessagesFx = attach({
22
+ source: [this.$key, this.messagesModel.$state, this.alternativesModel.$store],
23
+ mapParams: (params, [key, messages, alternatives]) => ({
24
+ params,
25
+ messages: messages[key] ?? [],
26
+ alternatives
27
+ }),
28
+ effect: this.translateBatchFx
29
+ });
23
30
  this.initTranslationSamples();
24
31
  }
25
32
  shouldSkipTranslation(messages) {
@@ -36,7 +43,7 @@ export class ChatbotTranslation {
36
43
  }
37
44
  initTranslationSamples() {
38
45
  sample({
39
- clock: this.translateBatchFx.doneData,
46
+ clock: this.translateAllMessagesFx.doneData,
40
47
  source: [this.$key],
41
48
  fn: ([key], translatedMessages) => ({
42
49
  key,
@@ -45,147 +52,104 @@ export class ChatbotTranslation {
45
52
  target: this.messagesModel.setField
46
53
  });
47
54
  }
48
- createTranslateAlternativesEffect() {
49
- return attach({
50
- source: [this.alternativesModel.$store],
51
- mapParams: (params, [alternatives]) => ({
52
- params,
53
- alternatives
54
- }),
55
- effect: createEffect(async ({
56
- alternatives,
57
- params
58
- }) => {
59
- const hintAlternatives = alternatives?.options.hints ?? [];
60
- const defaultAlternatives = alternatives?.options.default ?? [];
61
- const translatedAlternatives = {
62
- ...alternatives
63
- };
64
- if (hintAlternatives.length) {
65
- const hintText = hintAlternatives.map(({
66
- text
67
- }) => text);
68
- const response = await this.api.translateTextFx({
69
- text: hintText,
70
- targetLanguage: params.targetLanguage
71
- });
72
- if (translatedAlternatives.options) {
73
- translatedAlternatives.options.hints = hintAlternatives.map((alternative, index) => ({
74
- ...alternative,
75
- translatedMessage: decodeHTMLEntities(response.data.translations[index].translatedText)
76
- }));
77
- }
78
- }
79
- if (defaultAlternatives.length) {
80
- const defaultText = defaultAlternatives.map(({
81
- text
82
- }) => text);
83
- const response = await this.api.translateTextFx({
84
- text: defaultText,
85
- targetLanguage: params.targetLanguage
86
- });
87
- if (translatedAlternatives.options) {
88
- translatedAlternatives.options.default = defaultAlternatives.map((alternative, index) => ({
89
- ...alternative,
90
- translatedText: decodeHTMLEntities(response.data.translations[index].translatedText)
91
- }));
92
- }
93
- }
94
- return translatedAlternatives;
95
- })
55
+ async translateRequest(props) {
56
+ const text = Object.values(props.text).flat();
57
+ const response = await this.api.translateTextFx({
58
+ text,
59
+ targetLanguage: props.targetLanguage
96
60
  });
97
- }
98
- createTranslateMessageEffect() {
99
- return createEffect(async ({
100
- message,
101
- targetLanguage
102
- }) => {
103
- const optionsText = message.options.map(({
104
- text
105
- }) => text);
106
- const response = await this.api.translateTextFx({
107
- text: [message.message, ...optionsText],
108
- targetLanguage
109
- });
110
- const translatedOptions = response.data.translations.slice(1);
111
- const optionsCopy = [...message.options];
112
- const newOptions = optionsCopy.map((option, index) => ({
113
- ...option,
114
- translatedText: decodeHTMLEntities(translatedOptions[index].translatedText)
115
- }));
116
- return {
117
- ...message,
118
- translatedMessage: decodeHTMLEntities(response.data.translations[0].translatedText),
119
- options: newOptions
120
- };
61
+ const translatedText = response.data.translations.map(({
62
+ translatedText
63
+ }) => decodeHTMLEntities(translatedText));
64
+ const result = {};
65
+ Object.keys(props.text).forEach(key => {
66
+ const count = props.text[key].length;
67
+ result[key] = translatedText.splice(0, count);
121
68
  });
69
+ return result;
122
70
  }
123
- createTranslateBatchEffect() {
124
- return attach({
125
- source: [this.$key, this.messagesModel.$state],
126
- mapParams: (params, [key, messages]) => ({
127
- params,
128
- messages: messages[key] ?? []
129
- }),
130
- effect: createEffect(async ({
131
- messages,
132
- params
133
- }) => {
134
- if (this.shouldSkipTranslation(messages)) {
135
- return messages;
136
- }
137
- const messagesText = messages.map(({
71
+ addTranslationToAlternatives(props) {
72
+ this.alternativesModel.set(addTranslationsToAlternative(props));
73
+ }
74
+ translateBatchFx = createEffect(async ({
75
+ messages,
76
+ params,
77
+ alternatives
78
+ }) => {
79
+ if (this.shouldSkipTranslation(messages)) {
80
+ return messages;
81
+ }
82
+ const defaultMessages = [this.defaultMessages.error, this.defaultMessages.endMessage];
83
+ const defaultOptions = [this.defaultMessages.anotherHintOption];
84
+ const options = getOptionsForTranslation({
85
+ lastMessage: messages.at(-1),
86
+ alternatives
87
+ });
88
+ const translatedTextsList = await this.translateRequest({
89
+ text: {
90
+ messages: messages.map(({
138
91
  message
139
- }) => message);
140
- const response = await this.api.translateTextFx({
141
- text: messagesText,
142
- targetLanguage: params.targetLanguage
143
- });
144
- const lastMessage = messages.at(-1);
145
- const lastMessageTranslatedOptions = lastMessage ? await this.translateMessageOptions(lastMessage, params.targetLanguage) : undefined;
146
- const errorMessageTranslationResponse = await this.api.translateTextFx({
147
- text: [this.defaultMessages.error.message],
148
- targetLanguage: params.targetLanguage
149
- });
150
- this.defaultMessages.error.translatedMessage = decodeHTMLEntities(errorMessageTranslationResponse.data.translations[0].translatedText);
151
-
152
- // TODO: move this AFTER state update in sample and remove initTranslationSamples it is not needed
153
- // TODO: maybe just one request to translate everything
154
- this.setIsTranslated(true);
155
- const translatedMessages = response.data.translations.map(({
156
- translatedText
157
- }) => translatedText);
158
- return messages.map((message, index) => {
159
- const isLastMessage = index === messages.length - 1;
160
- return {
161
- ...message,
162
- options: isLastMessage ? lastMessageTranslatedOptions : message.options,
163
- translatedMessage: decodeHTMLEntities(translatedMessages[index])
164
- };
165
- });
166
- })
92
+ }) => message),
93
+ defaultMessages: defaultMessages.map(({
94
+ message
95
+ }) => message),
96
+ defaultOptions: defaultOptions.map(({
97
+ text
98
+ }) => text),
99
+ lastMessage: options.lastMessage || [],
100
+ alternativesHints: options.alternatives?.hints || [],
101
+ alternativesDefaults: options.alternatives?.default || []
102
+ },
103
+ targetLanguage: params.targetLanguage
167
104
  });
168
- }
169
- async translateMessageOptions(message, targetLanguage) {
170
- if (!message?.options?.length) {
171
- const translatedAlternatives = await this.translateAlternativesFx({
172
- targetLanguage
105
+ translatedTextsList.defaultMessages.forEach((message, index) => {
106
+ defaultMessages[index].translatedMessage = message;
107
+ });
108
+ translatedTextsList.defaultOptions.forEach((message, index) => {
109
+ defaultOptions[index].translatedText = message;
110
+ });
111
+ if (options.alternatives && alternatives) {
112
+ this.addTranslationToAlternatives({
113
+ alternatives,
114
+ translatedHints: translatedTextsList.alternativesHints,
115
+ translatedDefaults: translatedTextsList.alternativesDefaults
173
116
  });
174
- this.alternativesModel.set(translatedAlternatives);
175
- return;
176
117
  }
118
+
119
+ // TODO: move this AFTER state update in sample and remove initTranslationSamples it is not needed
120
+ this.setIsTranslated(true);
121
+ return messages.map((message, index) => {
122
+ const isLastMessage = index === messages.length - 1;
123
+ return {
124
+ ...message,
125
+ options: isLastMessage ? translatedTextsList.lastMessage : message.options,
126
+ translatedMessage: translatedTextsList.messages[index]
127
+ };
128
+ });
129
+ });
130
+ translateMessageFx = createEffect(async ({
131
+ message,
132
+ targetLanguage
133
+ }) => {
177
134
  const optionsText = message.options.map(({
178
135
  text
179
136
  }) => text);
180
137
  const response = await this.api.translateTextFx({
181
- text: optionsText,
138
+ text: [message.message, ...optionsText],
182
139
  targetLanguage
183
140
  });
184
- return message.options.map((option, index) => ({
141
+ const translatedOptions = response.data.translations.slice(1);
142
+ const optionsCopy = [...message.options];
143
+ const newOptions = optionsCopy.map((option, index) => ({
185
144
  ...option,
186
- translatedText: decodeHTMLEntities(response.data.translations[index].translatedText)
145
+ translatedText: decodeHTMLEntities(translatedOptions[index].translatedText)
187
146
  }));
188
- }
147
+ return {
148
+ ...message,
149
+ translatedMessage: decodeHTMLEntities(response.data.translations[0].translatedText),
150
+ options: newOptions
151
+ };
152
+ });
189
153
  reset() {
190
154
  this.setIsTranslated(false);
191
155
  }