@memori.ai/memori-react 7.28.1 → 7.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/components/AccountForm/AccountForm.d.ts +1 -0
  3. package/dist/components/AgeVerificationModal/AgeVerificationModal.d.ts +1 -0
  4. package/dist/components/AttachmentLinkModal/AttachmentLinkModal.d.ts +1 -0
  5. package/dist/components/Auth/Auth.d.ts +1 -0
  6. package/dist/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.d.ts +1 -0
  7. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.d.ts +1 -0
  8. package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/AnimationController.d.ts +38 -0
  9. package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/AnimationController.js +181 -0
  10. package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/AnimationController.js.map +1 -0
  11. package/dist/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.d.ts +1 -0
  12. package/dist/components/Avatar/AvatarView/AvatarComponent/components/loader.d.ts +1 -0
  13. package/dist/components/Blob/Blob.d.ts +1 -0
  14. package/dist/components/BlockedMemoriBadge/BlockedMemoriBadge.d.ts +1 -0
  15. package/dist/components/Chat/Chat.d.ts +1 -0
  16. package/dist/components/Chat/Chat.js +5 -3
  17. package/dist/components/Chat/Chat.js.map +1 -1
  18. package/dist/components/ChatBubble/VirtualizedContent/VirtualizedContent.d.ts +7 -0
  19. package/dist/components/ChatBubble/VirtualizedContent/VirtualizedContent.js +69 -0
  20. package/dist/components/ChatBubble/VirtualizedContent/VirtualizedContent.js.map +1 -0
  21. package/dist/components/ChatHistoryDrawer/ChatHistory.css +321 -0
  22. package/dist/components/ChatHistoryDrawer/ChatHistory.d.ts +15 -0
  23. package/dist/components/ChatHistoryDrawer/ChatHistory.js +109 -0
  24. package/dist/components/ChatHistoryDrawer/ChatHistory.js.map +1 -0
  25. package/dist/components/CompletionProviderStatus/CompletionProviderStatus.d.ts +1 -0
  26. package/dist/components/CustomGLBModelViewer/ModelViewer.d.ts +1 -0
  27. package/dist/components/ExpertsDrawer/ExpertsDrawer.d.ts +1 -0
  28. package/dist/components/FeedbackButtons/FeedbackButtons.d.ts +1 -0
  29. package/dist/components/FilePreview/FilePreview.d.ts +1 -0
  30. package/dist/components/Header/Header.d.ts +2 -0
  31. package/dist/components/Header/Header.js +3 -2
  32. package/dist/components/Header/Header.js.map +1 -1
  33. package/dist/components/KnownFacts/KnownFacts.d.ts +1 -0
  34. package/dist/components/LoginDrawer/LoginDrawer.d.ts +1 -0
  35. package/dist/components/MemoriWidget/MemoriWidget.d.ts +2 -1
  36. package/dist/components/MemoriWidget/MemoriWidget.js +173 -21
  37. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  38. package/dist/components/MicrophoneButton/MicrophoneButton.d.ts +1 -0
  39. package/dist/components/PositionDrawer/PositionDrawer.d.ts +1 -0
  40. package/dist/components/PoweredBy/PoweredBy.d.ts +1 -0
  41. package/dist/components/SettingsDrawer/SettingsDrawer.d.ts +1 -0
  42. package/dist/components/SignupForm/SignupForm.d.ts +1 -0
  43. package/dist/components/Snippet/Snippet.d.ts +1 -0
  44. package/dist/components/StartPanel/StartPanel.css +20 -21
  45. package/dist/components/StartPanel/StartPanel.js.map +1 -1
  46. package/dist/components/Typing/Typing.d.ts +1 -0
  47. package/dist/components/VenueWidget/VenueWidget.css +7 -0
  48. package/dist/components/VenueWidget/VenueWidget.d.ts +1 -0
  49. package/dist/components/VenueWidget/VenueWidget.js +1 -1
  50. package/dist/components/VenueWidget/VenueWidget.js.map +1 -1
  51. package/dist/components/WhyThisAnswer/WhyThisAnswer.d.ts +1 -0
  52. package/dist/components/icons/AI.d.ts +1 -0
  53. package/dist/components/icons/Alert.d.ts +1 -0
  54. package/dist/components/icons/Bug.d.ts +1 -0
  55. package/dist/components/icons/Chat.d.ts +6 -0
  56. package/dist/components/icons/Chat.js +6 -0
  57. package/dist/components/icons/Chat.js.map +1 -0
  58. package/dist/components/icons/ChevronLeft.d.ts +1 -0
  59. package/dist/components/icons/ChevronRight.d.ts +1 -0
  60. package/dist/components/icons/Clear.d.ts +1 -0
  61. package/dist/components/icons/Close.d.ts +1 -0
  62. package/dist/components/icons/Code.d.ts +1 -0
  63. package/dist/components/icons/Copy.d.ts +1 -0
  64. package/dist/components/icons/DeepThought.d.ts +1 -0
  65. package/dist/components/icons/Delete.d.ts +1 -0
  66. package/dist/components/icons/Download.d.ts +1 -0
  67. package/dist/components/icons/Edit.d.ts +1 -0
  68. package/dist/components/icons/Expand.d.ts +1 -0
  69. package/dist/components/icons/Eye.d.ts +1 -0
  70. package/dist/components/icons/EyeInvisible.d.ts +1 -0
  71. package/dist/components/icons/Facebook.d.ts +1 -0
  72. package/dist/components/icons/Feedback.d.ts +1 -0
  73. package/dist/components/icons/File.d.ts +1 -0
  74. package/dist/components/icons/FileExcel.d.ts +1 -0
  75. package/dist/components/icons/FilePdf.d.ts +1 -0
  76. package/dist/components/icons/FileWord.d.ts +1 -0
  77. package/dist/components/icons/Fullscreen.d.ts +1 -0
  78. package/dist/components/icons/FullscreenExit.d.ts +1 -0
  79. package/dist/components/icons/Group.d.ts +1 -0
  80. package/dist/components/icons/History.d.ts +7 -0
  81. package/dist/components/icons/History.js +6 -0
  82. package/dist/components/icons/History.js.map +1 -0
  83. package/dist/components/icons/Info.d.ts +1 -0
  84. package/dist/components/icons/Link.d.ts +1 -0
  85. package/dist/components/icons/Linkedin.d.ts +1 -0
  86. package/dist/components/icons/Loading.d.ts +1 -0
  87. package/dist/components/icons/Mail.d.ts +1 -0
  88. package/dist/components/icons/MapMarker.d.ts +1 -0
  89. package/dist/components/icons/Message.d.ts +1 -0
  90. package/dist/components/icons/Microphone.d.ts +1 -0
  91. package/dist/components/icons/Minus.d.ts +1 -0
  92. package/dist/components/icons/MinusCircle.d.ts +1 -0
  93. package/dist/components/icons/PaperClip.d.ts +1 -0
  94. package/dist/components/icons/Picture.d.ts +1 -0
  95. package/dist/components/icons/Plus.d.ts +1 -0
  96. package/dist/components/icons/QuestionHelp.d.ts +1 -0
  97. package/dist/components/icons/Refresh.d.ts +1 -0
  98. package/dist/components/icons/SelectIcon.d.ts +1 -0
  99. package/dist/components/icons/Send.d.ts +1 -0
  100. package/dist/components/icons/Setting.d.ts +1 -0
  101. package/dist/components/icons/Share.d.ts +1 -0
  102. package/dist/components/icons/Sound.d.ts +1 -0
  103. package/dist/components/icons/SoundDeactivated.d.ts +1 -0
  104. package/dist/components/icons/Telegram.d.ts +1 -0
  105. package/dist/components/icons/ThumbDown.d.ts +1 -0
  106. package/dist/components/icons/ThumbUp.d.ts +1 -0
  107. package/dist/components/icons/Translation.d.ts +1 -0
  108. package/dist/components/icons/Twitter.d.ts +1 -0
  109. package/dist/components/icons/User.d.ts +1 -0
  110. package/dist/components/icons/Warning.d.ts +1 -0
  111. package/dist/components/icons/WhatsApp.d.ts +1 -0
  112. package/dist/components/ui/Card.css +4 -0
  113. package/dist/components/ui/Card.js +3 -2
  114. package/dist/components/ui/Card.js.map +1 -1
  115. package/dist/components/ui/Select.d.ts +1 -0
  116. package/dist/helpers/message.js +1 -4
  117. package/dist/helpers/message.js.map +1 -1
  118. package/dist/helpers/utils.d.ts +1 -0
  119. package/dist/helpers/utils.js +18 -1
  120. package/dist/helpers/utils.js.map +1 -1
  121. package/dist/index.d.ts +1 -0
  122. package/dist/index.js +2 -2
  123. package/dist/index.js.map +1 -1
  124. package/dist/locales/de.json +11 -1
  125. package/dist/locales/en.json +11 -1
  126. package/dist/locales/es.json +11 -1
  127. package/dist/locales/fr.json +14 -2
  128. package/dist/locales/it.json +11 -1
  129. package/dist/styles.css +1 -0
  130. package/esm/components/AccountForm/AccountForm.d.ts +1 -0
  131. package/esm/components/AgeVerificationModal/AgeVerificationModal.d.ts +1 -0
  132. package/esm/components/AttachmentLinkModal/AttachmentLinkModal.d.ts +1 -0
  133. package/esm/components/Auth/Auth.d.ts +1 -0
  134. package/esm/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.d.ts +1 -0
  135. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.d.ts +1 -0
  136. package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/AnimationController.d.ts +38 -0
  137. package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/AnimationController.js +177 -0
  138. package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/AnimationController.js.map +1 -0
  139. package/esm/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.d.ts +1 -0
  140. package/esm/components/Avatar/AvatarView/AvatarComponent/components/loader.d.ts +1 -0
  141. package/esm/components/Blob/Blob.d.ts +1 -0
  142. package/esm/components/BlockedMemoriBadge/BlockedMemoriBadge.d.ts +1 -0
  143. package/esm/components/Chat/Chat.d.ts +1 -0
  144. package/esm/components/Chat/Chat.js +5 -3
  145. package/esm/components/Chat/Chat.js.map +1 -1
  146. package/esm/components/ChatBubble/VirtualizedContent/VirtualizedContent.d.ts +7 -0
  147. package/esm/components/ChatBubble/VirtualizedContent/VirtualizedContent.js +67 -0
  148. package/esm/components/ChatBubble/VirtualizedContent/VirtualizedContent.js.map +1 -0
  149. package/esm/components/ChatHistoryDrawer/ChatHistory.css +321 -0
  150. package/esm/components/ChatHistoryDrawer/ChatHistory.d.ts +15 -0
  151. package/esm/components/ChatHistoryDrawer/ChatHistory.js +106 -0
  152. package/esm/components/ChatHistoryDrawer/ChatHistory.js.map +1 -0
  153. package/esm/components/CompletionProviderStatus/CompletionProviderStatus.d.ts +1 -0
  154. package/esm/components/CustomGLBModelViewer/ModelViewer.d.ts +1 -0
  155. package/esm/components/ExpertsDrawer/ExpertsDrawer.d.ts +1 -0
  156. package/esm/components/FeedbackButtons/FeedbackButtons.d.ts +1 -0
  157. package/esm/components/FilePreview/FilePreview.d.ts +1 -0
  158. package/esm/components/Header/Header.d.ts +2 -0
  159. package/esm/components/Header/Header.js +3 -2
  160. package/esm/components/Header/Header.js.map +1 -1
  161. package/esm/components/KnownFacts/KnownFacts.d.ts +1 -0
  162. package/esm/components/LoginDrawer/LoginDrawer.d.ts +1 -0
  163. package/esm/components/MemoriWidget/MemoriWidget.d.ts +2 -1
  164. package/esm/components/MemoriWidget/MemoriWidget.js +173 -21
  165. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  166. package/esm/components/MicrophoneButton/MicrophoneButton.d.ts +1 -0
  167. package/esm/components/PositionDrawer/PositionDrawer.d.ts +1 -0
  168. package/esm/components/PoweredBy/PoweredBy.d.ts +1 -0
  169. package/esm/components/SettingsDrawer/SettingsDrawer.d.ts +1 -0
  170. package/esm/components/SignupForm/SignupForm.d.ts +1 -0
  171. package/esm/components/Snippet/Snippet.d.ts +1 -0
  172. package/esm/components/StartPanel/StartPanel.css +20 -21
  173. package/esm/components/StartPanel/StartPanel.js.map +1 -1
  174. package/esm/components/Typing/Typing.d.ts +1 -0
  175. package/esm/components/VenueWidget/VenueWidget.css +7 -0
  176. package/esm/components/VenueWidget/VenueWidget.d.ts +1 -0
  177. package/esm/components/VenueWidget/VenueWidget.js +1 -1
  178. package/esm/components/VenueWidget/VenueWidget.js.map +1 -1
  179. package/esm/components/WhyThisAnswer/WhyThisAnswer.d.ts +1 -0
  180. package/esm/components/icons/AI.d.ts +1 -0
  181. package/esm/components/icons/Alert.d.ts +1 -0
  182. package/esm/components/icons/Bug.d.ts +1 -0
  183. package/esm/components/icons/Chat.d.ts +6 -0
  184. package/esm/components/icons/Chat.js +4 -0
  185. package/esm/components/icons/Chat.js.map +1 -0
  186. package/esm/components/icons/ChevronLeft.d.ts +1 -0
  187. package/esm/components/icons/ChevronRight.d.ts +1 -0
  188. package/esm/components/icons/Clear.d.ts +1 -0
  189. package/esm/components/icons/Close.d.ts +1 -0
  190. package/esm/components/icons/Code.d.ts +1 -0
  191. package/esm/components/icons/Copy.d.ts +1 -0
  192. package/esm/components/icons/DeepThought.d.ts +1 -0
  193. package/esm/components/icons/Delete.d.ts +1 -0
  194. package/esm/components/icons/Download.d.ts +1 -0
  195. package/esm/components/icons/Edit.d.ts +1 -0
  196. package/esm/components/icons/Expand.d.ts +1 -0
  197. package/esm/components/icons/Eye.d.ts +1 -0
  198. package/esm/components/icons/EyeInvisible.d.ts +1 -0
  199. package/esm/components/icons/Facebook.d.ts +1 -0
  200. package/esm/components/icons/Feedback.d.ts +1 -0
  201. package/esm/components/icons/File.d.ts +1 -0
  202. package/esm/components/icons/FileExcel.d.ts +1 -0
  203. package/esm/components/icons/FilePdf.d.ts +1 -0
  204. package/esm/components/icons/FileWord.d.ts +1 -0
  205. package/esm/components/icons/Fullscreen.d.ts +1 -0
  206. package/esm/components/icons/FullscreenExit.d.ts +1 -0
  207. package/esm/components/icons/Group.d.ts +1 -0
  208. package/esm/components/icons/History.d.ts +7 -0
  209. package/esm/components/icons/History.js +4 -0
  210. package/esm/components/icons/History.js.map +1 -0
  211. package/esm/components/icons/Info.d.ts +1 -0
  212. package/esm/components/icons/Link.d.ts +1 -0
  213. package/esm/components/icons/Linkedin.d.ts +1 -0
  214. package/esm/components/icons/Loading.d.ts +1 -0
  215. package/esm/components/icons/Mail.d.ts +1 -0
  216. package/esm/components/icons/MapMarker.d.ts +1 -0
  217. package/esm/components/icons/Message.d.ts +1 -0
  218. package/esm/components/icons/Microphone.d.ts +1 -0
  219. package/esm/components/icons/Minus.d.ts +1 -0
  220. package/esm/components/icons/MinusCircle.d.ts +1 -0
  221. package/esm/components/icons/PaperClip.d.ts +1 -0
  222. package/esm/components/icons/Picture.d.ts +1 -0
  223. package/esm/components/icons/Plus.d.ts +1 -0
  224. package/esm/components/icons/QuestionHelp.d.ts +1 -0
  225. package/esm/components/icons/Refresh.d.ts +1 -0
  226. package/esm/components/icons/SelectIcon.d.ts +1 -0
  227. package/esm/components/icons/Send.d.ts +1 -0
  228. package/esm/components/icons/Setting.d.ts +1 -0
  229. package/esm/components/icons/Share.d.ts +1 -0
  230. package/esm/components/icons/Sound.d.ts +1 -0
  231. package/esm/components/icons/SoundDeactivated.d.ts +1 -0
  232. package/esm/components/icons/Telegram.d.ts +1 -0
  233. package/esm/components/icons/ThumbDown.d.ts +1 -0
  234. package/esm/components/icons/ThumbUp.d.ts +1 -0
  235. package/esm/components/icons/Translation.d.ts +1 -0
  236. package/esm/components/icons/Twitter.d.ts +1 -0
  237. package/esm/components/icons/User.d.ts +1 -0
  238. package/esm/components/icons/Warning.d.ts +1 -0
  239. package/esm/components/icons/WhatsApp.d.ts +1 -0
  240. package/esm/components/ui/Card.css +4 -0
  241. package/esm/components/ui/Card.js +3 -2
  242. package/esm/components/ui/Card.js.map +1 -1
  243. package/esm/components/ui/Select.d.ts +1 -0
  244. package/esm/helpers/message.js +1 -4
  245. package/esm/helpers/message.js.map +1 -1
  246. package/esm/helpers/utils.d.ts +1 -0
  247. package/esm/helpers/utils.js +16 -0
  248. package/esm/helpers/utils.js.map +1 -1
  249. package/esm/index.d.ts +1 -0
  250. package/esm/index.js +2 -2
  251. package/esm/index.js.map +1 -1
  252. package/esm/locales/de.json +11 -1
  253. package/esm/locales/en.json +11 -1
  254. package/esm/locales/es.json +11 -1
  255. package/esm/locales/fr.json +14 -2
  256. package/esm/locales/it.json +11 -1
  257. package/esm/styles.css +1 -0
  258. package/package.json +1 -1
  259. package/src/components/Chat/Chat.tsx +5 -2
  260. package/src/components/ChatHistoryDrawer/ChatHistory.css +321 -0
  261. package/src/components/ChatHistoryDrawer/ChatHistory.stories.tsx +290 -0
  262. package/src/components/ChatHistoryDrawer/ChatHistory.test.tsx +91 -0
  263. package/src/components/ChatHistoryDrawer/ChatHistory.tsx +369 -0
  264. package/src/components/ChatHistoryDrawer/__snapshots__/ChatHistory.test.tsx.snap +27 -0
  265. package/src/components/Header/Header.test.tsx +16 -1
  266. package/src/components/Header/Header.tsx +18 -0
  267. package/src/components/Header/__snapshots__/Header.test.tsx.snap +140 -0
  268. package/src/components/MemoriWidget/MemoriWidget.tsx +249 -16
  269. package/src/components/StartPanel/StartPanel.css +20 -21
  270. package/src/components/StartPanel/StartPanel.tsx +1 -0
  271. package/src/components/VenueWidget/VenueWidget.css +7 -0
  272. package/src/components/VenueWidget/VenueWidget.tsx +4 -4
  273. package/src/components/icons/Chat.tsx +30 -0
  274. package/src/components/icons/History.tsx +33 -0
  275. package/src/components/ui/Card.css +4 -0
  276. package/src/components/ui/Card.tsx +2 -1
  277. package/src/helpers/message.ts +0 -2
  278. package/src/helpers/utils.ts +23 -0
  279. package/src/index.stories.tsx +36 -9
  280. package/src/index.tsx +3 -0
  281. package/src/locales/de.json +11 -1
  282. package/src/locales/en.json +11 -1
  283. package/src/locales/es.json +11 -1
  284. package/src/locales/fr.json +14 -2
  285. package/src/locales/it.json +11 -1
  286. package/src/styles.css +1 -0
@@ -37,6 +37,7 @@ const constants_1 = require("../../helpers/constants");
37
37
  const error_1 = require("../../helpers/error");
38
38
  const credits_1 = require("../../helpers/credits");
39
39
  const visemeContext_1 = require("../../context/visemeContext");
40
+ const ChatHistory_1 = tslib_1.__importDefault(require("../ChatHistoryDrawer/ChatHistory"));
40
41
  const getMemoriState = (integrationId) => {
41
42
  var _a, _b, _c, _d, _f;
42
43
  let widget = integrationId
@@ -160,8 +161,8 @@ let memoriPassword;
160
161
  let speakerMuted = false;
161
162
  let memoriSpeaking = false;
162
163
  let userToken;
163
- const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenantID, memoriLang, multilingual, integration, layout, customLayout, showShare, preview = false, embed = false, showCopyButton = true, showTranslationOriginal = false, showInputs = true, showDates = false, showContextPerLine = false, showSettings, showTypingText = false, showClear = false, showLogin = false, showUpload, showOnlyLastMessages, height = '100vh', secret, baseUrl = 'https://aisuru.com', apiURL = 'https://backend.memori.ai', engineURL = 'https://engine.memori.ai', initialContextVars, initialQuestion, ogImage, sessionID: initialSessionID, tenant, personification, authToken, AZURE_COGNITIVE_SERVICES_TTS_KEY, enableAudio, defaultSpeakerActive = true, disableTextEnteredEvents = false, onStateChange, additionalInfo, additionalSettings, customMediaRenderer, userAvatar, useMathFormatting = false, autoStart = false, applyVarsToRoot = false, showFunctionCache = false, }) => {
164
- var _a, _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3;
164
+ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenantID, memoriLang, multilingual, integration, layout, customLayout, showShare, preview = false, embed = false, showCopyButton = true, showTranslationOriginal = false, showInputs = true, showDates = false, showContextPerLine = false, showSettings, showTypingText = false, showClear = false, showLogin = false, showUpload, showOnlyLastMessages, showChatHistory, height = '100vh', secret, baseUrl = 'https://aisuru.com', apiURL = 'https://backend-staging.memori.ai', engineURL = 'https://engine-staging.memori.ai', initialContextVars, initialQuestion, ogImage, sessionID: initialSessionID, tenant, personification, authToken, AZURE_COGNITIVE_SERVICES_TTS_KEY, enableAudio, defaultSpeakerActive = true, disableTextEnteredEvents = false, onStateChange, additionalInfo, additionalSettings, customMediaRenderer, userAvatar, useMathFormatting = false, autoStart = false, applyVarsToRoot = false, showFunctionCache = false, }) => {
165
+ var _a, _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4;
165
166
  const { t, i18n } = (0, react_i18next_1.useTranslation)();
166
167
  const [isClient, setIsClient] = (0, react_1.useState)(false);
167
168
  (0, react_1.useEffect)(() => {
@@ -230,6 +231,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
230
231
  const [hasUserActivatedListening, setHasUserActivatedListening] = (0, react_1.useState)(false);
231
232
  const [showPositionDrawer, setShowPositionDrawer] = (0, react_1.useState)(false);
232
233
  const [showSettingsDrawer, setShowSettingsDrawer] = (0, react_1.useState)(false);
234
+ const [showChatHistoryDrawer, setShowChatHistoryDrawer] = (0, react_1.useState)(false);
233
235
  const [showKnownFactsDrawer, setShowKnownFactsDrawer] = (0, react_1.useState)(false);
234
236
  const [showExpertsDrawer, setShowExpertsDrawer] = (0, react_1.useState)(false);
235
237
  const [muteSpeaker, setMuteSpeaker] = (0, react_1.useState)(!defaultEnableAudio || !defaultSpeakerActive || autoStart);
@@ -340,6 +342,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
340
342
  ];
341
343
  });
342
344
  };
345
+ const [chatLogID, setChatLogID] = (0, react_1.useState)(undefined);
343
346
  const sendMessage = async (text, media, newSessionId, translate = true, translatedText, hidden = false, typingText, useLoaderTextAsMsg = false, hasBatchQueued = false) => {
344
347
  var _a, _b, _c, _d, _f;
345
348
  const sessionID = newSessionId ||
@@ -373,11 +376,22 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
373
376
  if (findMediaDocument) {
374
377
  msg = msg + ' ' + findMediaDocument.content;
375
378
  }
379
+ if (chatLogID) {
380
+ msg =
381
+ msg +
382
+ ' \n\n' +
383
+ '<chat-reference session-id="' +
384
+ sessionID +
385
+ '" event-log-id="' +
386
+ chatLogID +
387
+ '"></chat-reference>';
388
+ }
376
389
  const { currentState, ...response } = await postTextEnteredEvent({
377
390
  sessionId: sessionID,
378
391
  text: msg,
379
392
  });
380
393
  if (response.resultCode === 0 && currentState) {
394
+ setChatLogID(undefined);
381
395
  const emission = useLoaderTextAsMsg && typingText
382
396
  ? typingText
383
397
  : (_b = currentState.emission) !== null && _b !== void 0 ? _b : currentDialogState === null || currentDialogState === void 0 ? void 0 : currentDialogState.emission;
@@ -788,6 +802,97 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
788
802
  setLoading(false);
789
803
  return null;
790
804
  };
805
+ const [chatLogs, setChatLogs] = (0, react_1.useState)([]);
806
+ const resumeSession = async (chatLog, questionsAndAnswers, initialContextVars, initialQuestion, birthDate) => {
807
+ var _a, _b, _c, _d, _f;
808
+ setLoading(true);
809
+ let storageBirthDate = (0, configuration_1.getLocalConfig)('birthDate', undefined);
810
+ let userBirthDate = birthDate !== null && birthDate !== void 0 ? birthDate : storageBirthDate;
811
+ try {
812
+ if (!userBirthDate && !!minAge) {
813
+ setShowAgeVerification(true);
814
+ return;
815
+ }
816
+ if (memori.privacyType !== 'PUBLIC' &&
817
+ !memoriPassword &&
818
+ !memori.secretToken &&
819
+ !memoriPwd &&
820
+ !memoriTokens) {
821
+ setAuthModalState('password');
822
+ return;
823
+ }
824
+ let referral;
825
+ try {
826
+ referral = (() => {
827
+ return window.location.href;
828
+ })();
829
+ console.log('[REOPEN_SESSION] Got referral:', referral);
830
+ }
831
+ catch (err) {
832
+ console.debug('[REOPEN_SESSION] Error getting referral:', err);
833
+ }
834
+ const { sessionID, currentState, ...response } = await initSession({
835
+ memoriID: (_a = memori.engineMemoriID) !== null && _a !== void 0 ? _a : '',
836
+ password: memoriPassword || memoriPwd || memori.secretToken,
837
+ recoveryTokens: memoriTokens,
838
+ tag: personification === null || personification === void 0 ? void 0 : personification.tag,
839
+ pin: personification === null || personification === void 0 ? void 0 : personification.pin,
840
+ continueFromChatLogID: chatLog.chatLogID,
841
+ initialContextVars: {
842
+ PATHNAME: window.location.pathname,
843
+ ROUTE: ((_c = (_b = window.location.pathname) === null || _b === void 0 ? void 0 : _b.split('/')) === null || _c === void 0 ? void 0 : _c.pop()) || '',
844
+ ...(initialContextVars || {}),
845
+ },
846
+ initialQuestion,
847
+ birthDate: userBirthDate,
848
+ additionalInfo: {
849
+ ...(additionalInfo || {}),
850
+ loginToken: (_f = (_d = userToken !== null && userToken !== void 0 ? userToken : loginToken) !== null && _d !== void 0 ? _d : additionalInfo === null || additionalInfo === void 0 ? void 0 : additionalInfo.loginToken) !== null && _f !== void 0 ? _f : authToken,
851
+ language: getCultureCodeByLanguage(userLang),
852
+ referral: referral,
853
+ timeZoneOffset: new Date().getTimezoneOffset().toString(),
854
+ },
855
+ });
856
+ if (sessionID) {
857
+ setSessionId(sessionID);
858
+ setHistory(chatLog.lines.map(log => {
859
+ var _a;
860
+ return ({
861
+ text: log.text,
862
+ emitter: log.emitter,
863
+ media: (_a = log.media) === null || _a === void 0 ? void 0 : _a.map(m => ({
864
+ ...m,
865
+ mediumID: 'mediumID' in m ? String(m.mediumID) : crypto.randomUUID(),
866
+ })),
867
+ fromUser: log.inbound,
868
+ initial: false,
869
+ contextVars: log.contextVars,
870
+ date: log.timestamp,
871
+ });
872
+ }));
873
+ setChatLogs(questionsAndAnswers);
874
+ }
875
+ else if (response === null || response === void 0 ? void 0 : response.resultMessage.startsWith('This Memori is aged restricted')) {
876
+ console.error('[REOPEN_SESSION] Age restriction error:', response);
877
+ react_hot_toast_1.default.error(t('underageTwinSession', { age: minAge }));
878
+ setGotErrorInOpening(true);
879
+ }
880
+ else if ((response === null || response === void 0 ? void 0 : response.resultCode) === 403) {
881
+ console.error('[REOPEN_SESSION] Authentication error');
882
+ setMemoriPwd(undefined);
883
+ setAuthModalState('password');
884
+ }
885
+ else {
886
+ console.error('[REOPEN_SESSION] Other error:', response);
887
+ react_hot_toast_1.default.error(t((0, error_1.getErrori18nKey)(response.resultCode)));
888
+ setGotErrorInOpening(true);
889
+ }
890
+ }
891
+ catch (err) {
892
+ console.error('[RESUME_SESSION] Caught error:', err);
893
+ }
894
+ setLoading(false);
895
+ };
791
896
  const changeTag = async (memoriId, sessionId, tag, pin) => {
792
897
  var _a, _b, _c, _d, _f;
793
898
  if (!memoriId || !sessionId) {
@@ -1806,10 +1911,12 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1806
1911
  document.removeEventListener('MemoriTextEntered', memoriTextEnteredHandler);
1807
1912
  };
1808
1913
  }, [sessionId, userLang, disableTextEnteredEvents]);
1809
- const onClickStart = (0, react_1.useCallback)(async (session, initialSessionExpired = false) => {
1914
+ const onClickStart = (0, react_1.useCallback)(async (session, initialSessionExpired = false, chatLog) => {
1810
1915
  var _a, _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
1811
- const sessionID = (session === null || session === void 0 ? void 0 : session.sessionID) || sessionId;
1812
- const dialogState = (session === null || session === void 0 ? void 0 : session.dialogState) || currentDialogState;
1916
+ const sessionID = chatLog ? undefined : (session === null || session === void 0 ? void 0 : session.sessionID) || sessionId;
1917
+ const dialogState = chatLog
1918
+ ? undefined
1919
+ : (session === null || session === void 0 ? void 0 : session.dialogState) || currentDialogState;
1813
1920
  setClickedStart(true);
1814
1921
  let translatedMessages = [];
1815
1922
  let memoriAudioElement = document.getElementById('memori-audio');
@@ -1853,12 +1960,15 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1853
1960
  password: secret || memoriPwd || memori.secretToken,
1854
1961
  tag: personification === null || personification === void 0 ? void 0 : personification.tag,
1855
1962
  pin: personification === null || personification === void 0 ? void 0 : personification.pin,
1963
+ continueFromChatLogID: chatLog === null || chatLog === void 0 ? void 0 : chatLog.chatLogID,
1856
1964
  initialContextVars: {
1857
1965
  PATHNAME: (_a = window.location.pathname) === null || _a === void 0 ? void 0 : _a.toUpperCase(),
1858
1966
  ROUTE: ((_d = (_c = (_b = window.location.pathname) === null || _b === void 0 ? void 0 : _b.split('/')) === null || _c === void 0 ? void 0 : _c.pop()) === null || _d === void 0 ? void 0 : _d.toUpperCase()) || '',
1859
- ...(initialContextVars || {}),
1967
+ ...((!chatLog
1968
+ ? initialContextVars
1969
+ : chatLog.lines[chatLog.lines.length - 1].contextVars) || {}),
1860
1970
  },
1861
- initialQuestion,
1971
+ initialQuestion: chatLog ? undefined : initialQuestion,
1862
1972
  birthDate: birth,
1863
1973
  additionalInfo: {
1864
1974
  ...(additionalInfo || {}),
@@ -1868,17 +1978,53 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1868
1978
  },
1869
1979
  });
1870
1980
  if (session === null || session === void 0 ? void 0 : session.dialogState) {
1871
- setHistory([]);
1872
- translateDialogState(session.dialogState, userLang)
1873
- .then(ts => {
1874
- let text = ts.translatedEmission || ts.emission;
1875
- if (text) {
1876
- speak(text);
1981
+ if (!chatLog) {
1982
+ setHistory([]);
1983
+ translateDialogState(session.dialogState, userLang)
1984
+ .then(ts => {
1985
+ let text = ts.translatedEmission || ts.emission;
1986
+ if (text) {
1987
+ speak(text);
1988
+ }
1989
+ })
1990
+ .finally(() => {
1991
+ setHasUserActivatedSpeak(true);
1992
+ });
1993
+ }
1994
+ else {
1995
+ const messages = chatLog.lines.map((l, i) => {
1996
+ var _a, _b;
1997
+ return ({
1998
+ text: l.text,
1999
+ media: (_b = (_a = l.media) === null || _a === void 0 ? void 0 : _a.filter(m => constants_1.allowedMediaTypes.includes(m.mimeType))) === null || _b === void 0 ? void 0 : _b.map(m => ({
2000
+ mediumID: `${i}-${m.mimeType}`,
2001
+ ...m,
2002
+ })),
2003
+ fromUser: l.inbound,
2004
+ timestamp: l.timestamp,
2005
+ emitter: l.emitter,
2006
+ initial: i === 0,
2007
+ });
2008
+ });
2009
+ translatedMessages = messages !== null && messages !== void 0 ? messages : [];
2010
+ if (language.toUpperCase() !== userLang.toUpperCase() &&
2011
+ isMultilanguageEnabled) {
2012
+ try {
2013
+ console.debug('[CLICK_START] Translating messages');
2014
+ translatedMessages = await Promise.all(messages.map(async (m) => ({
2015
+ ...m,
2016
+ originalText: m.text,
2017
+ text: (await (0, translations_1.getTranslation)(m.text, userLang, language, baseUrl)).text,
2018
+ })));
2019
+ }
2020
+ catch (e) {
2021
+ }
1877
2022
  }
1878
- })
1879
- .finally(() => {
1880
- setHasUserActivatedSpeak(true);
1881
- });
2023
+ setHistory(translatedMessages);
2024
+ translateDialogState(session.dialogState, userLang, undefined, true).finally(() => {
2025
+ setHasUserActivatedSpeak(true);
2026
+ });
2027
+ }
1882
2028
  }
1883
2029
  else if ((session === null || session === void 0 ? void 0 : session.resultCode) === 0) {
1884
2030
  await onClickStart(session || undefined);
@@ -2204,7 +2350,9 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
2204
2350
  source.connect(audioContext.destination);
2205
2351
  }
2206
2352
  },
2353
+ setShowChatHistoryDrawer,
2207
2354
  showSettings: (_v = showSettings !== null && showSettings !== void 0 ? showSettings : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.showSettings) !== null && _v !== void 0 ? _v : true,
2355
+ showChatHistory: (_w = showChatHistory !== null && showChatHistory !== void 0 ? showChatHistory : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.showChatHistory) !== null && _w !== void 0 ? _w : true,
2208
2356
  hasUserActivatedSpeak,
2209
2357
  showReload: selectedLayout === 'TOTEM',
2210
2358
  showClear,
@@ -2262,7 +2410,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
2262
2410
  tenant,
2263
2411
  translateTo: isMultilanguageEnabled &&
2264
2412
  userLang.toUpperCase() !==
2265
- ((_0 = ((_z = (_y = (_x = (_w = memori.culture) === null || _w === void 0 ? void 0 : _w.split('-')) === null || _x === void 0 ? void 0 : _x[0]) !== null && _y !== void 0 ? _y : i18n.language) !== null && _z !== void 0 ? _z : 'IT')) === null || _0 === void 0 ? void 0 : _0.toUpperCase())
2413
+ ((_1 = ((_0 = (_z = (_y = (_x = memori.culture) === null || _x === void 0 ? void 0 : _x.split('-')) === null || _y === void 0 ? void 0 : _y[0]) !== null && _z !== void 0 ? _z : i18n.language) !== null && _0 !== void 0 ? _0 : 'IT')) === null || _1 === void 0 ? void 0 : _1.toUpperCase())
2266
2414
  ? userLang
2267
2415
  : undefined,
2268
2416
  baseUrl,
@@ -2272,7 +2420,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
2272
2420
  typingText,
2273
2421
  showTypingText,
2274
2422
  history: showFullHistory ? history : history.slice(-2),
2275
- authToken: (_2 = (_1 = loginToken !== null && loginToken !== void 0 ? loginToken : userToken) !== null && _1 !== void 0 ? _1 : additionalInfo === null || additionalInfo === void 0 ? void 0 : additionalInfo.loginToken) !== null && _2 !== void 0 ? _2 : authToken,
2423
+ authToken: (_3 = (_2 = loginToken !== null && loginToken !== void 0 ? loginToken : userToken) !== null && _2 !== void 0 ? _2 : additionalInfo === null || additionalInfo === void 0 ? void 0 : additionalInfo.loginToken) !== null && _3 !== void 0 ? _3 : authToken,
2276
2424
  dialogState: currentDialogState,
2277
2425
  setDialogState: setCurrentDialogState,
2278
2426
  pushMessage,
@@ -2369,7 +2517,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
2369
2517
  setAuthModalState(null);
2370
2518
  setGotErrorInOpening(true);
2371
2519
  });
2372
- }, minimumNumberOfRecoveryTokens: (_3 = memori === null || memori === void 0 ? void 0 : memori.minimumNumberOfRecoveryTokens) !== null && _3 !== void 0 ? _3 : 1 })), isClient && ((0, jsx_runtime_1.jsx)(AgeVerificationModal_1.default, { visible: showAgeVerification, minAge: minAge, onClose: birthDate => {
2520
+ }, minimumNumberOfRecoveryTokens: (_4 = memori === null || memori === void 0 ? void 0 : memori.minimumNumberOfRecoveryTokens) !== null && _4 !== void 0 ? _4 : 1 })), isClient && ((0, jsx_runtime_1.jsx)(AgeVerificationModal_1.default, { visible: showAgeVerification, minAge: minAge, onClose: birthDate => {
2373
2521
  var _a, _b, _c, _d;
2374
2522
  if (birthDate) {
2375
2523
  setBirthDate(birthDate);
@@ -2393,7 +2541,11 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
2393
2541
  setShowAgeVerification(false);
2394
2542
  setClickedStart(false);
2395
2543
  }
2396
- } })), showSettingsDrawer && ((0, jsx_runtime_1.jsx)(SettingsDrawer_1.default, { layout: selectedLayout, open: !!showSettingsDrawer, onClose: () => setShowSettingsDrawer(false), microphoneMode: continuousSpeech ? 'CONTINUOUS' : 'HOLD_TO_TALK', continuousSpeechTimeout: continuousSpeechTimeout, setMicrophoneMode: mode => setContinuousSpeech(mode === 'CONTINUOUS'), setContinuousSpeechTimeout: setContinuousSpeechTimeout, controlsPosition: controlsPosition, setControlsPosition: setControlsPosition, hideEmissions: hideEmissions, setHideEmissions: setHideEmissions, avatarType: avatarType, setAvatarType: setAvatarType, enablePositionControls: enablePositionControls, setEnablePositionControls: setEnablePositionControls, isAvatar3d: !!(integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.avatarURL), additionalSettings: additionalSettings, speakerMuted: speakerMuted })), showPositionDrawer && ((0, jsx_runtime_1.jsx)(PositionDrawer_1.default, { memori: memori, open: !!showPositionDrawer, venue: position, setVenue: setPosition, onClose: position => {
2544
+ } })), showSettingsDrawer && ((0, jsx_runtime_1.jsx)(SettingsDrawer_1.default, { layout: selectedLayout, open: !!showSettingsDrawer, onClose: () => setShowSettingsDrawer(false), microphoneMode: continuousSpeech ? 'CONTINUOUS' : 'HOLD_TO_TALK', continuousSpeechTimeout: continuousSpeechTimeout, setMicrophoneMode: mode => setContinuousSpeech(mode === 'CONTINUOUS'), setContinuousSpeechTimeout: setContinuousSpeechTimeout, controlsPosition: controlsPosition, setControlsPosition: setControlsPosition, hideEmissions: hideEmissions, setHideEmissions: setHideEmissions, avatarType: avatarType, setAvatarType: setAvatarType, enablePositionControls: enablePositionControls, setEnablePositionControls: setEnablePositionControls, isAvatar3d: !!(integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.avatarURL), additionalSettings: additionalSettings, speakerMuted: speakerMuted })), showChatHistoryDrawer && ((0, jsx_runtime_1.jsx)(ChatHistory_1.default, { open: !!showChatHistoryDrawer, onClose: () => setShowChatHistoryDrawer(false), resumeSession: chatLog => {
2545
+ setChatLogID(chatLog.chatLogID);
2546
+ onClickStart(undefined, false, chatLog);
2547
+ setShowChatHistoryDrawer(false);
2548
+ }, apiClient: client, sessionId: sessionId || '', memori: memori, baseUrl: baseUrl, apiUrl: client.constants.BACKEND_URL })), showPositionDrawer && ((0, jsx_runtime_1.jsx)(PositionDrawer_1.default, { memori: memori, open: !!showPositionDrawer, venue: position, setVenue: setPosition, onClose: position => {
2397
2549
  if (position)
2398
2550
  applyPosition(position);
2399
2551
  setShowPositionDrawer(false);