@davi-ai/retorik-framework 3.2.0 → 3.2.2

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 (51) hide show
  1. package/dist/AttachmentDetail.1e06c2a5.js +1757 -0
  2. package/dist/AttachmentDetail.1e06c2a5.js.map +1 -0
  3. package/dist/AttachmentDetail.c6c297df.js +1732 -0
  4. package/dist/AttachmentDetail.c6c297df.js.map +1 -0
  5. package/dist/CustomView.080c8028.js +143 -0
  6. package/dist/CustomView.080c8028.js.map +1 -0
  7. package/dist/CustomView.90d2a13d.js +134 -0
  8. package/dist/CustomView.90d2a13d.js.map +1 -0
  9. package/dist/Emergency.423214ad.js +301 -0
  10. package/dist/Emergency.423214ad.js.map +1 -0
  11. package/dist/Emergency.a21f837c.js +292 -0
  12. package/dist/Emergency.a21f837c.js.map +1 -0
  13. package/dist/FullScreenImage.1fe27198.js +70 -0
  14. package/dist/FullScreenImage.1fe27198.js.map +1 -0
  15. package/dist/FullScreenImage.9a9b978e.js +83 -0
  16. package/dist/FullScreenImage.9a9b978e.js.map +1 -0
  17. package/dist/HistoryList.50ff0fd9.js +242 -0
  18. package/dist/HistoryList.50ff0fd9.js.map +1 -0
  19. package/dist/HistoryList.5fd6aa12.js +228 -0
  20. package/dist/HistoryList.5fd6aa12.js.map +1 -0
  21. package/dist/LanguageChoice.1579b654.js +125 -0
  22. package/dist/LanguageChoice.1579b654.js.map +1 -0
  23. package/dist/LanguageChoice.61e36c1d.js +116 -0
  24. package/dist/LanguageChoice.61e36c1d.js.map +1 -0
  25. package/dist/LittleWeatherContainer.07937cf3.js +57 -0
  26. package/dist/LittleWeatherContainer.07937cf3.js.map +1 -0
  27. package/dist/LittleWeatherContainer.d27a6b8a.js +44 -0
  28. package/dist/LittleWeatherContainer.d27a6b8a.js.map +1 -0
  29. package/dist/NewsContainer.67f04b19.js +730 -0
  30. package/dist/NewsContainer.67f04b19.js.map +1 -0
  31. package/dist/NewsContainer.932174e9.js +755 -0
  32. package/dist/NewsContainer.932174e9.js.map +1 -0
  33. package/dist/SpiritEngineWrapper.1d8db53d.js +82 -0
  34. package/dist/SpiritEngineWrapper.1d8db53d.js.map +1 -0
  35. package/dist/SpiritEngineWrapper.27e9c120.js +96 -0
  36. package/dist/SpiritEngineWrapper.27e9c120.js.map +1 -0
  37. package/dist/ThreeJsWrapper.09c689b8.js +141 -0
  38. package/dist/ThreeJsWrapper.09c689b8.js.map +1 -0
  39. package/dist/ThreeJsWrapper.7918143f.js +128 -0
  40. package/dist/ThreeJsWrapper.7918143f.js.map +1 -0
  41. package/dist/Weather.661c2cac.js +282 -0
  42. package/dist/Weather.661c2cac.js.map +1 -0
  43. package/dist/Weather.fb22fba3.js +268 -0
  44. package/dist/Weather.fb22fba3.js.map +1 -0
  45. package/dist/index.d.ts +69 -50
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +23055 -23224
  48. package/dist/index.js.map +1 -1
  49. package/dist/index.modern.js +22278 -22376
  50. package/dist/index.modern.js.map +1 -1
  51. package/package.json +4 -36
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["src/components/Emergency/Emergency.tsx","src/components/Emergency/EmergencyContent.tsx"],"sourcesContent":["import React from 'react'\r\nimport { useUtilsStore } from '../Contexts/UtilsContext'\r\nimport { useViewStore } from '../Contexts/ViewContext'\r\nimport { useDirectlineStore } from '../Contexts/DirectlineContext'\r\nimport { CurrentSubView, Depth } from '../../models/enums'\r\nimport { FullScreen, SubMenuClosing } from '../Templates'\r\nimport AbsoluteLargeClosingButton from '../Utils/SubView/AbsoluteLargeClosingButton'\r\nimport { EmergencyContent } from './EmergencyContent'\r\n\r\ninterface EmergencyProps {\r\n handleClose?: () => void\r\n}\r\n\r\nconst Emergency = ({ handleClose }: EmergencyProps): JSX.Element => {\r\n const isMobile = useViewStore((state) => state.isMobile)\r\n const setCurrentSubView = useUtilsStore((state) => state.actions.setCurrentSubView)\r\n const sendEvent = useDirectlineStore((state) => state.actions.sendEvent)\r\n\r\n const handleBack = (): void => {\r\n handleClose ? handleClose() : setCurrentSubView(CurrentSubView.none)\r\n sendEvent('Davi.CloseWindow', null)\r\n sendEvent('Davi.CloseWindowEmergency', null)\r\n }\r\n\r\n return isMobile ? (\r\n <SubMenuClosing handleClose={handleBack} backIsConversation={false} className='rf-height-fill-available -rf-mb-4'>\r\n {/* Emergency data */}\r\n <EmergencyContent />\r\n </SubMenuClosing>\r\n ) : (\r\n <FullScreen depth={Depth.dropdown} background='linear-gradient(to right bottom, #F2F8F8FC , #F2E1E2E8)' onClick={handleBack}>\r\n <div className='rf-h-full rf-w-full rf-flex rf-flex-col rf-items-center rf-justify-center rf-gap-12'>\r\n {/* Emergency data */}\r\n <EmergencyContent />\r\n </div>\r\n\r\n {/* Closing button */}\r\n <AbsoluteLargeClosingButton dashboardVisible={true} onClick={handleBack} />\r\n </FullScreen>\r\n )\r\n}\r\n\r\nexport default Emergency\r\n","import React, { useEffect, useRef, useState } from 'react'\r\nimport { useRetorikStore } from '../Contexts/RetorikContext'\r\nimport { useViewStore } from '../Contexts/ViewContext'\r\nimport { useLocaleStore } from '../Contexts/LocaleContext'\r\nimport { fetchEmergencyData } from '../../utils/fetchEmergencyData'\r\nimport { EmergencyTypes } from '../../models/emergencyTypes'\r\nimport * as Icons from '../Icons/ViewIcons'\r\nimport { AvailableViews } from '../../models/enums'\r\nimport Animation2 from '../Loader/Animation2'\r\nimport preventEvents from '../../utils/preventEvents'\r\n\r\nconst subView = AvailableViews.emergency\r\n\r\nconst EmergencyContent = (): JSX.Element => {\r\n const baseAddress = useRetorikStore((state) => state.baseAddress)\r\n const translation = useLocaleStore((state) => state.currentTranslations)\r\n const isMobile = useViewStore((state) => state.isMobile)\r\n const isWidget = useViewStore((state) => state.isWidget)\r\n\r\n const [municipalPoliceNumber, setMunicipalPoliceNumber] = useState<string>('')\r\n const [localHospitalName, setLocalHospitalName] = useState<string>('')\r\n const [localHospitalNumber, setLocalHospitalNumber] = useState<string>('')\r\n const [poisonControlNumber, setPoisonControlNumber] = useState<string>('')\r\n const [loading, setLoading] = useState<boolean>(true)\r\n const divRef = useRef<HTMLDivElement>(null)\r\n\r\n useEffect(() => {\r\n if (divRef?.current) {\r\n isWidget && preventEvents(null, divRef)\r\n }\r\n }, [divRef?.current])\r\n\r\n useEffect(() => {\r\n const getData = async (): Promise<void> => {\r\n const data: EmergencyTypes = await fetchEmergencyData(baseAddress)\r\n if (data) {\r\n setMunicipalPoliceNumber(data.municipalPoliceNumber)\r\n setLocalHospitalName(data.localHospitalName)\r\n setLocalHospitalNumber(data.localHospitalNumber)\r\n setPoisonControlNumber(data.poisonControlNumber)\r\n }\r\n setLoading(false)\r\n }\r\n getData()\r\n }, [baseAddress])\r\n\r\n return (\r\n <>\r\n <div\r\n className={`rf-flex rf-flex-col rf-items-center ${\r\n isMobile\r\n ? 'rf-justify-center rf-gap-2'\r\n : 'rf-justify-end rf-flex-[2_1_0%] rf-gap-9'\r\n }`}\r\n >\r\n <Icons.EmergencyIcon className='rf-h-9 rf-w-9 large:rf-h-16 large:rf-w-16' />\r\n <h3 className='rf-text-verylarge-size-auto rf-font-bold rf-capitalize-first rf-text-center'>\r\n {translation.emergency[subView]}\r\n </h3>\r\n </div>\r\n <div\r\n ref={divRef}\r\n className='rf-w-full rf-flex rf-flex-col rf-items-center rf-flex-[4_1_0%] rf-justify-evenly rf-h-full rf-pt-2 rf-overflow-y-scroll rf-scrollbar-hidden'\r\n style={{\r\n background: isMobile\r\n ? 'transparent'\r\n : 'transparent linear-gradient(291deg, #F2F3F6 0%, #E5E6EC 100%) 0% 0% no-repeat padding-box',\r\n boxShadow: isMobile\r\n ? ''\r\n : '#ffff -3px -3px 16px, rgb(0 0 0 / 25%) 0px 2px 10px 0px'\r\n }}\r\n >\r\n {loading ? (\r\n <>\r\n <div className='rf-w-6 rf-h-6 rf-mb-16'>\r\n <Animation2\r\n color='gray'\r\n loaderColor='#1999b1'\r\n backgroundColor='transparent'\r\n />\r\n </div>\r\n </>\r\n ) : (\r\n <>\r\n <div\r\n className={`rf-w-full rf-grid ${\r\n isMobile\r\n ? 'rf-grid-cols-2 rf-gap-8 rf-mt-10 rf-mb-8'\r\n : 'rf-grid-cols-4 rf-divide-x'\r\n } `}\r\n style={{ padding: isMobile ? '' : '0 10%' }}\r\n >\r\n <div className='rf-flex rf-flex-col rf-items-center rf-gap-2'>\r\n <p className='rf-text-xl rf-font-bold rf-uppercase'>\r\n {translation.emergency.samu}\r\n </p>\r\n <p className='rf-text-5xl large:rf-text-6xl rf-font-bold'>15</p>\r\n </div>\r\n <div\r\n className={`rf-flex rf-flex-col rf-items-center ${\r\n isMobile ? '' : 'rf-border-l rf-border-[#C7C6C6]'\r\n } rf-gap-2`}\r\n >\r\n <p className='rf-text-xl rf-font-bold rf-uppercase'>\r\n {translation.emergency.police}\r\n </p>\r\n <p className='rf-text-5xl large:rf-text-6xl rf-font-bold'>17</p>\r\n </div>\r\n <div\r\n className={`rf-flex rf-flex-col rf-items-center ${\r\n isMobile ? '' : 'rf-border-l rf-border-[#C7C6C6]'\r\n } rf-gap-2`}\r\n >\r\n <p className='rf-text-xl rf-font-bold rf-uppercase'>\r\n {translation.emergency.firefighter}\r\n </p>\r\n <p className='rf-text-5xl large:rf-text-6xl rf-font-bold'>18</p>\r\n </div>\r\n <div\r\n className={`rf-flex rf-flex-col rf-items-center ${\r\n isMobile ? '' : 'rf-border-l rf-border-[#C7C6C6]'\r\n } rf-gap-2`}\r\n >\r\n <p className='rf-text-xl rf-font-bold rf-uppercase'>\r\n {translation.emergency.general}\r\n </p>\r\n <p className='rf-text-5xl large:rf-text-6xl rf-font-bold'>\r\n 112\r\n </p>\r\n </div>\r\n </div>\r\n <div\r\n className={`rf-flex rf-items-start ${\r\n isMobile ? 'rf-flex-col' : 'rf-gap-12'\r\n } `}\r\n >\r\n <div>\r\n {municipalPoliceNumber?.length && (\r\n <p className='rf-text-xl rf-py-2'>\r\n {`${translation.emergency.citypolice} : `}\r\n <span className='rf-font-bold'>\r\n {municipalPoliceNumber}\r\n </span>\r\n </p>\r\n )}\r\n <p className='rf-text-xl rf-py-2'>\r\n {`${translation.emergency.homeless} : `}\r\n <span className='rf-font-bold'>115</span>\r\n </p>\r\n <p className='rf-text-xl rf-py-2'>\r\n {`${translation.emergency.emergency} : `}\r\n <span className='rf-font-bold'>118</span>\r\n </p>\r\n </div>\r\n <div>\r\n {localHospitalName?.length && (\r\n <p className='rf-text-xl rf-py-2'>\r\n {`${translation.emergency.hospital} ${localHospitalName} : `}\r\n <span className='rf-font-bold'>{localHospitalNumber}</span>\r\n </p>\r\n )}\r\n {poisonControlNumber?.length && (\r\n <p className='rf-text-xl rf-py-2'>\r\n {`${translation.emergency.poison} : `}\r\n <span className='rf-font-bold'>{poisonControlNumber}</span>\r\n </p>\r\n )}\r\n </div>\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n {!isMobile && <div className='rf-flex-1' />}\r\n </>\r\n )\r\n}\r\n\r\nexport { EmergencyContent }\r\n"],"names":[],"version":3,"file":"Emergency.a21f837c.js.map"}
@@ -0,0 +1,70 @@
1
+ import {jsx as $a58FO$jsx} from "react/jsx-runtime";
2
+ import $a58FO$react, {useState as $a58FO$useState, useEffect as $a58FO$useEffect} from "react";
3
+
4
+
5
+ function $parcel$defineInteropFlag(a) {
6
+ Object.defineProperty(a, '__esModule', {value: true, configurable: true});
7
+ }
8
+
9
+ function $parcel$export(e, n, v, s) {
10
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
11
+ }
12
+
13
+ var $parcel$global = globalThis;
14
+ var parcelRequire = $parcel$global["parcelRequirea39d"];
15
+ var parcelRegister = parcelRequire.register;
16
+ parcelRegister("3WWDZ", function(module, exports) {
17
+
18
+ $parcel$defineInteropFlag(module.exports);
19
+
20
+ $parcel$export(module.exports, "default", () => $0c86a937529a81b6$export$2e2bcd8739ae039);
21
+
22
+
23
+
24
+ var $2fuDN = parcelRequire("2fuDN");
25
+
26
+ var $i1rfm = parcelRequire("i1rfm");
27
+
28
+ var $1Qww3 = parcelRequire("1Qww3");
29
+
30
+ var $j67YK = parcelRequire("j67YK");
31
+
32
+ var $4ucVo = parcelRequire("4ucVo");
33
+
34
+ var $284yi = parcelRequire("284yi");
35
+
36
+ var $lj7lQ = parcelRequire("lj7lQ");
37
+ const $0c86a937529a81b6$var$FullScreenImage = ()=>{
38
+ const translation = (0, $2fuDN.useLocaleStore)((state)=>state.currentTranslations);
39
+ const fullScreenImage = (0, $284yi.default)();
40
+ const setFullScreenImage = (0, $j67YK.useUtilsStore)((state)=>state.actions.setFullScreenImage);
41
+ const mode = (0, $i1rfm.useSpeechStore)((state)=>state.mode);
42
+ const isMobile = (0, $1Qww3.useViewStore)((state)=>state.isMobile);
43
+ const [content, setContent] = (0, $a58FO$useState)();
44
+ (0, $a58FO$useEffect)(()=>{
45
+ setContent(fullScreenImage);
46
+ }, [
47
+ fullScreenImage
48
+ ]);
49
+ const handleClose = ()=>{
50
+ setFullScreenImage(undefined);
51
+ };
52
+ return content ? /*#__PURE__*/ (0, $a58FO$jsx)((0, $lj7lQ.default), {
53
+ handleClose: handleClose,
54
+ remoteCloseButtonZIndex: "rf-z-list",
55
+ mobileReturnTitle: translation.menu.backconversation,
56
+ children: /*#__PURE__*/ (0, $a58FO$jsx)("div", {
57
+ className: `rf-h-full rf-w-full ${isMobile ? mode === (0, $4ucVo.Mode).text ? 'rf-mb-28' : 'rf-mb-16' : 'rf-pt-12'} rf-px-8 rf-pb-12 rf-flex rf-justify-center rf-items-center`,
58
+ children: /*#__PURE__*/ (0, $a58FO$jsx)("img", {
59
+ className: "rf-max-h-full rf-max-w-full",
60
+ src: content
61
+ })
62
+ })
63
+ }) : /*#__PURE__*/ (0, $a58FO$jsx)((0, $a58FO$react).Fragment, {});
64
+ };
65
+ var $0c86a937529a81b6$export$2e2bcd8739ae039 = $0c86a937529a81b6$var$FullScreenImage;
66
+
67
+ });
68
+
69
+
70
+ //# sourceMappingURL=FullScreenImage.1fe27198.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,wCAAkB;IACtB,MAAM,cAAc,CAAA,GAAA,qBAAa,EAAE,CAAC,QAAU,MAAM,mBAAmB;IACvE,MAAM,kBAAkB,CAAA,GAAA,cAAiB;IACzC,MAAM,qBAAqB,CAAA,GAAA,oBAAY,EACrC,CAAC,QAAU,MAAM,OAAO,CAAC,kBAAkB;IAE7C,MAAM,OAAO,CAAA,GAAA,qBAAa,EAAE,CAAC,QAAU,MAAM,IAAI;IACjD,MAAM,WAAW,CAAA,GAAA,mBAAW,EAAE,CAAC,QAAU,MAAM,QAAQ;IACvD,MAAM,CAAC,SAAS,WAAW,GAAG,CAAA,GAAA,eAAO;IAErC,CAAA,GAAA,gBAAQ,EAAE;QACR,WAAW;IACb,GAAG;QAAC;KAAgB;IAEpB,MAAM,cAAc;QAClB,mBAAmB;IACrB;IAEA,OAAO,wBACL,gBAAC,CAAA,GAAA,cAAO;QACN,aAAa;QACb,yBAAwB;QACxB,mBAAmB,YAAY,IAAI,CAAC,gBAAgB;kBAEpD,cAAA,gBAAC;YACC,WAAW,CAAC,oBAAoB,EAC9B,WAAY,SAAS,CAAA,GAAA,WAAG,EAAE,IAAI,GAAG,aAAa,aAAc,WAC7D,2DAA2D,CAAC;sBAE7D,cAAA,gBAAC;gBAAI,WAAU;gBAA8B,KAAK;;;uBAItD,gBAAC,CAAA,GAAA,YAAI,EAAE,QAAQ;AAEnB;IAEA,2CAAe","sources":["src/components/Attachments/Utils/FullScreenImage.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\r\nimport { useLocaleStore } from '../../Contexts/LocaleContext'\r\nimport { useSpeechStore } from '../../Contexts/SpeechContext'\r\nimport { useViewStore } from '../../Contexts/ViewContext'\r\nimport { useUtilsStore } from '../../Contexts/UtilsContext'\r\nimport { Mode } from '../../../models/enums'\r\nimport useFullscreenImage from '../../../hooks/useFullscreenImage'\r\nimport Template from '../../Templates/FullScreenRemoteClosing'\r\n\r\nconst FullScreenImage = (): JSX.Element => {\r\n const translation = useLocaleStore((state) => state.currentTranslations)\r\n const fullScreenImage = useFullscreenImage()\r\n const setFullScreenImage = useUtilsStore(\r\n (state) => state.actions.setFullScreenImage\r\n )\r\n const mode = useSpeechStore((state) => state.mode)\r\n const isMobile = useViewStore((state) => state.isMobile)\r\n const [content, setContent] = useState<string | undefined>()\r\n\r\n useEffect(() => {\r\n setContent(fullScreenImage)\r\n }, [fullScreenImage])\r\n\r\n const handleClose = (): void => {\r\n setFullScreenImage(undefined)\r\n }\r\n\r\n return content ? (\r\n <Template\r\n handleClose={handleClose}\r\n remoteCloseButtonZIndex='rf-z-list'\r\n mobileReturnTitle={translation.menu.backconversation}\r\n >\r\n <div\r\n className={`rf-h-full rf-w-full ${\r\n isMobile ? (mode === Mode.text ? 'rf-mb-28' : 'rf-mb-16') : 'rf-pt-12'\r\n } rf-px-8 rf-pb-12 rf-flex rf-justify-center rf-items-center`}\r\n >\r\n <img className='rf-max-h-full rf-max-w-full' src={content} />\r\n </div>\r\n </Template>\r\n ) : (\r\n <React.Fragment />\r\n )\r\n}\r\n\r\nexport default FullScreenImage\r\n"],"names":[],"version":3,"file":"FullScreenImage.1fe27198.js.map"}
@@ -0,0 +1,83 @@
1
+ var $igvUb$reactjsxruntime = require("react/jsx-runtime");
2
+ var $igvUb$react = require("react");
3
+
4
+
5
+ function $parcel$interopDefault(a) {
6
+ return a && a.__esModule ? a.default : a;
7
+ }
8
+
9
+ function $parcel$defineInteropFlag(a) {
10
+ Object.defineProperty(a, '__esModule', {value: true, configurable: true});
11
+ }
12
+
13
+ function $parcel$export(e, n, v, s) {
14
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
15
+ }
16
+
17
+ var $parcel$global =
18
+ typeof globalThis !== 'undefined'
19
+ ? globalThis
20
+ : typeof self !== 'undefined'
21
+ ? self
22
+ : typeof window !== 'undefined'
23
+ ? window
24
+ : typeof global !== 'undefined'
25
+ ? global
26
+ : {};
27
+ var parcelRequire = $parcel$global["parcelRequirea39d"];
28
+ var parcelRegister = parcelRequire.register;
29
+ parcelRegister("dBnN6", function(module, exports) {
30
+
31
+ $parcel$defineInteropFlag(module.exports);
32
+
33
+ $parcel$export(module.exports, "default", () => $29a469608f79fe1f$export$2e2bcd8739ae039);
34
+
35
+
36
+
37
+ var $6Q0mk = parcelRequire("6Q0mk");
38
+
39
+ var $jgaO0 = parcelRequire("jgaO0");
40
+
41
+ var $kUiCn = parcelRequire("kUiCn");
42
+
43
+ var $7eio0 = parcelRequire("7eio0");
44
+
45
+ var $7WHA7 = parcelRequire("7WHA7");
46
+
47
+ var $8iLoV = parcelRequire("8iLoV");
48
+
49
+ var $j2phc = parcelRequire("j2phc");
50
+ const $29a469608f79fe1f$var$FullScreenImage = ()=>{
51
+ const translation = (0, $6Q0mk.useLocaleStore)((state)=>state.currentTranslations);
52
+ const fullScreenImage = (0, $8iLoV.default)();
53
+ const setFullScreenImage = (0, $7eio0.useUtilsStore)((state)=>state.actions.setFullScreenImage);
54
+ const mode = (0, $jgaO0.useSpeechStore)((state)=>state.mode);
55
+ const isMobile = (0, $kUiCn.useViewStore)((state)=>state.isMobile);
56
+ const [content, setContent] = (0, $igvUb$react.useState)();
57
+ (0, $igvUb$react.useEffect)(()=>{
58
+ setContent(fullScreenImage);
59
+ }, [
60
+ fullScreenImage
61
+ ]);
62
+ const handleClose = ()=>{
63
+ setFullScreenImage(undefined);
64
+ };
65
+ return content ? /*#__PURE__*/ (0, $igvUb$reactjsxruntime.jsx)((0, $j2phc.default), {
66
+ handleClose: handleClose,
67
+ remoteCloseButtonZIndex: "rf-z-list",
68
+ mobileReturnTitle: translation.menu.backconversation,
69
+ children: /*#__PURE__*/ (0, $igvUb$reactjsxruntime.jsx)("div", {
70
+ className: `rf-h-full rf-w-full ${isMobile ? mode === (0, $7WHA7.Mode).text ? 'rf-mb-28' : 'rf-mb-16' : 'rf-pt-12'} rf-px-8 rf-pb-12 rf-flex rf-justify-center rf-items-center`,
71
+ children: /*#__PURE__*/ (0, $igvUb$reactjsxruntime.jsx)("img", {
72
+ className: "rf-max-h-full rf-max-w-full",
73
+ src: content
74
+ })
75
+ })
76
+ }) : /*#__PURE__*/ (0, $igvUb$reactjsxruntime.jsx)((0, ($parcel$interopDefault($igvUb$react))).Fragment, {});
77
+ };
78
+ var $29a469608f79fe1f$export$2e2bcd8739ae039 = $29a469608f79fe1f$var$FullScreenImage;
79
+
80
+ });
81
+
82
+
83
+ //# sourceMappingURL=FullScreenImage.9a9b978e.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,wCAAkB;IACtB,MAAM,cAAc,CAAA,GAAA,qBAAa,EAAE,CAAC,QAAU,MAAM,mBAAmB;IACvE,MAAM,kBAAkB,CAAA,GAAA,cAAiB;IACzC,MAAM,qBAAqB,CAAA,GAAA,oBAAY,EACrC,CAAC,QAAU,MAAM,OAAO,CAAC,kBAAkB;IAE7C,MAAM,OAAO,CAAA,GAAA,qBAAa,EAAE,CAAC,QAAU,MAAM,IAAI;IACjD,MAAM,WAAW,CAAA,GAAA,mBAAW,EAAE,CAAC,QAAU,MAAM,QAAQ;IACvD,MAAM,CAAC,SAAS,WAAW,GAAG,CAAA,GAAA,qBAAO;IAErC,CAAA,GAAA,sBAAQ,EAAE;QACR,WAAW;IACb,GAAG;QAAC;KAAgB;IAEpB,MAAM,cAAc;QAClB,mBAAmB;IACrB;IAEA,OAAO,wBACL,gCAAC,CAAA,GAAA,cAAO;QACN,aAAa;QACb,yBAAwB;QACxB,mBAAmB,YAAY,IAAI,CAAC,gBAAgB;kBAEpD,cAAA,gCAAC;YACC,WAAW,CAAC,oBAAoB,EAC9B,WAAY,SAAS,CAAA,GAAA,WAAG,EAAE,IAAI,GAAG,aAAa,aAAc,WAC7D,2DAA2D,CAAC;sBAE7D,cAAA,gCAAC;gBAAI,WAAU;gBAA8B,KAAK;;;uBAItD,gCAAC,CAAA,GAAA,sCAAI,EAAE,QAAQ;AAEnB;IAEA,2CAAe","sources":["src/components/Attachments/Utils/FullScreenImage.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react'\r\nimport { useLocaleStore } from '../../Contexts/LocaleContext'\r\nimport { useSpeechStore } from '../../Contexts/SpeechContext'\r\nimport { useViewStore } from '../../Contexts/ViewContext'\r\nimport { useUtilsStore } from '../../Contexts/UtilsContext'\r\nimport { Mode } from '../../../models/enums'\r\nimport useFullscreenImage from '../../../hooks/useFullscreenImage'\r\nimport Template from '../../Templates/FullScreenRemoteClosing'\r\n\r\nconst FullScreenImage = (): JSX.Element => {\r\n const translation = useLocaleStore((state) => state.currentTranslations)\r\n const fullScreenImage = useFullscreenImage()\r\n const setFullScreenImage = useUtilsStore(\r\n (state) => state.actions.setFullScreenImage\r\n )\r\n const mode = useSpeechStore((state) => state.mode)\r\n const isMobile = useViewStore((state) => state.isMobile)\r\n const [content, setContent] = useState<string | undefined>()\r\n\r\n useEffect(() => {\r\n setContent(fullScreenImage)\r\n }, [fullScreenImage])\r\n\r\n const handleClose = (): void => {\r\n setFullScreenImage(undefined)\r\n }\r\n\r\n return content ? (\r\n <Template\r\n handleClose={handleClose}\r\n remoteCloseButtonZIndex='rf-z-list'\r\n mobileReturnTitle={translation.menu.backconversation}\r\n >\r\n <div\r\n className={`rf-h-full rf-w-full ${\r\n isMobile ? (mode === Mode.text ? 'rf-mb-28' : 'rf-mb-16') : 'rf-pt-12'\r\n } rf-px-8 rf-pb-12 rf-flex rf-justify-center rf-items-center`}\r\n >\r\n <img className='rf-max-h-full rf-max-w-full' src={content} />\r\n </div>\r\n </Template>\r\n ) : (\r\n <React.Fragment />\r\n )\r\n}\r\n\r\nexport default FullScreenImage\r\n"],"names":[],"version":3,"file":"FullScreenImage.9a9b978e.js.map","sourceRoot":"../"}
@@ -0,0 +1,242 @@
1
+ var $3sjcq$reactjsxruntime = require("react/jsx-runtime");
2
+ var $3sjcq$react = require("react");
3
+
4
+
5
+ function $parcel$defineInteropFlag(a) {
6
+ Object.defineProperty(a, '__esModule', {value: true, configurable: true});
7
+ }
8
+
9
+ function $parcel$export(e, n, v, s) {
10
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
11
+ }
12
+
13
+ function $parcel$interopDefault(a) {
14
+ return a && a.__esModule ? a.default : a;
15
+ }
16
+
17
+ var $parcel$global =
18
+ typeof globalThis !== 'undefined'
19
+ ? globalThis
20
+ : typeof self !== 'undefined'
21
+ ? self
22
+ : typeof window !== 'undefined'
23
+ ? window
24
+ : typeof global !== 'undefined'
25
+ ? global
26
+ : {};
27
+ var parcelRequire = $parcel$global["parcelRequirea39d"];
28
+ var parcelRegister = parcelRequire.register;
29
+ parcelRegister("1TROp", function(module, exports) {
30
+
31
+ $parcel$defineInteropFlag(module.exports);
32
+
33
+ $parcel$export(module.exports, "default", () => $4c0e94df62fa6718$export$2e2bcd8739ae039);
34
+
35
+
36
+
37
+ var $kUiCn = parcelRequire("kUiCn");
38
+
39
+ var $6Q0mk = parcelRequire("6Q0mk");
40
+
41
+ var $7eio0 = parcelRequire("7eio0");
42
+
43
+ var $6QoTL = parcelRequire("6QoTL");
44
+
45
+ var $aF2dz = parcelRequire("aF2dz");
46
+
47
+ var $a3uH3 = parcelRequire("a3uH3");
48
+
49
+ var $bco44 = parcelRequire("bco44");
50
+
51
+ var $7WHA7 = parcelRequire("7WHA7");
52
+
53
+ var $1XMvi = parcelRequire("1XMvi");
54
+ const $4c0e94df62fa6718$var$HistoryList = ()=>{
55
+ const translation = (0, $6Q0mk.useLocaleStore)((state)=>state.currentTranslations);
56
+ const isWidget = (0, $kUiCn.useViewStore)((state)=>state.isWidget);
57
+ const isBorne = (0, $kUiCn.useViewStore)((state)=>state.isBorne);
58
+ const setCurrentSubView = (0, $7eio0.useUtilsStore)((state)=>state.actions.setCurrentSubView);
59
+ const sendEvent = (0, $6QoTL.useDirectlineStore)((state)=>state.actions.sendEvent);
60
+ const activities = (0, $aF2dz.default)();
61
+ const scrollRef = (0, $3sjcq$react.useRef)(null);
62
+ const divRef = (0, $3sjcq$react.useRef)(null);
63
+ /**
64
+ * On call :
65
+ * - scroll to the scrollRef HTML element at the bottom of the view
66
+ */ const scrollToRef = ()=>{
67
+ if (scrollRef && scrollRef.current !== null) scrollRef.current.scrollIntoView({
68
+ behavior: 'smooth',
69
+ block: 'nearest'
70
+ });
71
+ };
72
+ /**
73
+ * On component mount :
74
+ * - call scrollToRef method
75
+ */ (0, $3sjcq$react.useEffect)(()=>{
76
+ setTimeout(()=>{
77
+ scrollToRef();
78
+ }, 200);
79
+ }, []);
80
+ (0, $3sjcq$react.useEffect)(()=>{
81
+ (divRef === null || divRef === void 0 ? void 0 : divRef.current) && isWidget && (0, $1XMvi.default)(null, divRef);
82
+ }, [
83
+ divRef === null || divRef === void 0 ? void 0 : divRef.current
84
+ ]);
85
+ const handleClose = ()=>{
86
+ setCurrentSubView((0, $7WHA7.CurrentSubView).none);
87
+ sendEvent('Davi.CloseWindow', null);
88
+ sendEvent('Davi.CloseWindowHistory', null);
89
+ };
90
+ return /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsx)((0, $a3uH3.SubMenuClosing), {
91
+ handleClose: handleClose,
92
+ backIsConversation: true,
93
+ title: translation.history.title,
94
+ children: /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsxs)("div", {
95
+ ref: divRef,
96
+ className: `rf-pb-4 rf-overflow-y-scroll ${isBorne ? 'rf-scrollbar-thin' : 'rf-scrollbar-hidden'}`,
97
+ children: [
98
+ activities.map((activity, key)=>{
99
+ return /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsx)((0, $bco44.default), {
100
+ activity: activity
101
+ }, key);
102
+ }),
103
+ /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsx)("div", {
104
+ ref: scrollRef
105
+ })
106
+ ]
107
+ })
108
+ });
109
+ };
110
+ var $4c0e94df62fa6718$export$2e2bcd8739ae039 = $4c0e94df62fa6718$var$HistoryList;
111
+
112
+ });
113
+ parcelRegister("aF2dz", function(module, exports) {
114
+
115
+ $parcel$export(module.exports, "default", () => $0a0255973b22d31f$export$2e2bcd8739ae039);
116
+
117
+ var $3Loqo = parcelRequire("3Loqo");
118
+
119
+ var $e53vj = parcelRequire("e53vj");
120
+ function $0a0255973b22d31f$export$2e2bcd8739ae039() {
121
+ const activities = (0, $e53vj.useActivityStore)((state)=>state.messageActivities);
122
+ // processedId contains the ids of the activities already processed (because useActivities gives duplicate activities with different state depending on if it's been spoken or not )
123
+ const processedId = [];
124
+ const history = [];
125
+ activities.forEach((activity)=>{
126
+ if (activity.id && !processedId.includes(activity.id)) {
127
+ processedId.push(activity.id);
128
+ // Check if this is a question or an answer (questions from the user don't have a replyToId field)
129
+ if (activity.replyToId) {
130
+ const question = history.find((historyItem)=>historyItem.question.id === activity.replyToId);
131
+ if (question) question.answers.push(activity);
132
+ else {
133
+ const newQuestion = (0, $3Loqo.createNewQuestionForTimestamp)(activity);
134
+ history.push({
135
+ question: newQuestion,
136
+ answers: [
137
+ activity
138
+ ]
139
+ });
140
+ }
141
+ } else if (activity.label === 'Davi.BringupMessage' && activity.text) {
142
+ const newQuestion = (0, $3Loqo.createNewQuestionForTimestamp)(activity);
143
+ history.push({
144
+ question: newQuestion,
145
+ answers: [
146
+ activity
147
+ ]
148
+ });
149
+ } else history.push({
150
+ question: activity,
151
+ answers: []
152
+ });
153
+ }
154
+ });
155
+ return history;
156
+ }
157
+
158
+ });
159
+
160
+ parcelRegister("bco44", function(module, exports) {
161
+
162
+ $parcel$export(module.exports, "default", () => $9e5ad86f0a7e1d05$export$2e2bcd8739ae039);
163
+
164
+
165
+
166
+ var $erbwO = parcelRequire("erbwO");
167
+ const $9e5ad86f0a7e1d05$var$HistoryItem = ({ activity: activity })=>{
168
+ return /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsxs)("div", {
169
+ className: "rf-mb-4 rf-flex rf-flex-col rf-justify-start rf-items-start rf-gap-4 rf-text-size-auto",
170
+ children: [
171
+ (activity === null || activity === void 0 ? void 0 : activity.question) && activity.question.type === 'message' && /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsx)((0, $erbwO.default), {
172
+ activity: activity.question,
173
+ isQuestion: true
174
+ }),
175
+ activity.answers.map((answer, j)=>{
176
+ return answer.type === 'message' ? /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsx)((0, $erbwO.default), {
177
+ activity: answer,
178
+ isQuestion: false
179
+ }, j) : /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsx)((0, ($parcel$interopDefault($3sjcq$react))).Fragment, {});
180
+ })
181
+ ]
182
+ });
183
+ };
184
+ var $9e5ad86f0a7e1d05$export$2e2bcd8739ae039 = $9e5ad86f0a7e1d05$var$HistoryItem;
185
+
186
+ });
187
+ parcelRegister("erbwO", function(module, exports) {
188
+
189
+ $parcel$export(module.exports, "default", () => $db601f65e25709db$export$2e2bcd8739ae039);
190
+
191
+
192
+
193
+ var $6Q0mk = parcelRequire("6Q0mk");
194
+
195
+ var $kUiCn = parcelRequire("kUiCn");
196
+
197
+ var $lr5yz = parcelRequire("lr5yz");
198
+
199
+ var $eXl5q = parcelRequire("eXl5q");
200
+ const $db601f65e25709db$var$HistoryQA = ({ activity: activity, isQuestion: isQuestion })=>{
201
+ var _activity_attachments, _activity_attachments1;
202
+ const locale = (0, $6Q0mk.useLocaleStore)((state)=>state.locale);
203
+ const isMobile = (0, $kUiCn.useViewStore)((state)=>state.isMobile);
204
+ const time = activity.localTimestamp ? new Date(activity.localTimestamp) : activity.timestamp ? new Date(activity.timestamp) : new Date();
205
+ return activity.text || !!((_activity_attachments = activity.attachments) === null || _activity_attachments === void 0 ? void 0 : _activity_attachments.length) ? /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsxs)("div", {
206
+ className: `${isMobile ? 'rf-w-full' : 'rf-max-w-full'} rf-flex rf-flex-col rf-gap-1`,
207
+ children: [
208
+ /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsx)("div", {
209
+ className: "rf-text-[#9A9A9A]",
210
+ children: time.toLocaleString(locale, {
211
+ hour: 'numeric',
212
+ minute: 'numeric'
213
+ })
214
+ }),
215
+ /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsxs)("div", {
216
+ className: `${isQuestion ? 'rf-text-secondary' : 'rf-text-textModePanelConversationBot'}`,
217
+ children: [
218
+ activity.htmlText ? /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsx)("div", {
219
+ dangerouslySetInnerHTML: {
220
+ __html: activity.htmlText
221
+ }
222
+ }) : activity.text ? (0, $lr5yz.getTextWithoutSpeechMarkdown)(activity.text) : '',
223
+ !!((_activity_attachments1 = activity.attachments) === null || _activity_attachments1 === void 0 ? void 0 : _activity_attachments1.length) && !(activity.attachmentLayout && activity.attachmentLayout.toLowerCase() === 'davilist') && /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsx)("div", {
224
+ className: `rf-w-full rf-min-h-16 rf-overflow-x-hidden rf-overflow-y-auto ${activity.text && 'rf-pt-4'}`,
225
+ children: /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsx)((0, $eXl5q.default), {
226
+ activity: activity,
227
+ history: true
228
+ })
229
+ })
230
+ ]
231
+ })
232
+ ]
233
+ }) : /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsx)((0, ($parcel$interopDefault($3sjcq$react))).Fragment, {});
234
+ };
235
+ var $db601f65e25709db$export$2e2bcd8739ae039 = $db601f65e25709db$var$HistoryQA;
236
+
237
+ });
238
+
239
+
240
+
241
+
242
+ //# sourceMappingURL=HistoryList.50ff0fd9.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["src/components/History/HistoryList.tsx","src/hooks/useMessageActivities.ts","src/components/History/HistoryItem.tsx","src/components/History/HistoryQA.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react'\r\nimport { useViewStore } from '../Contexts/ViewContext'\r\nimport { useLocaleStore } from '../Contexts/LocaleContext'\r\nimport { useUtilsStore } from '../Contexts/UtilsContext'\r\nimport { useDirectlineStore } from '../Contexts/DirectlineContext'\r\nimport useMessageActivities from '../../hooks/useMessageActivities'\r\nimport { SubMenuClosing as Template } from '../Templates'\r\nimport HistoryItem from './HistoryItem'\r\nimport { CurrentSubView } from '../../models/enums'\r\nimport preventEvents from '../../utils/preventEvents'\r\n\r\nconst HistoryList = (): JSX.Element => {\r\n const translation = useLocaleStore((state) => state.currentTranslations)\r\n const isWidget = useViewStore((state) => state.isWidget)\r\n const isBorne = useViewStore((state) => state.isBorne)\r\n const setCurrentSubView = useUtilsStore((state) => state.actions.setCurrentSubView)\r\n const sendEvent = useDirectlineStore((state) => state.actions.sendEvent)\r\n\r\n const activities = useMessageActivities()\r\n const scrollRef = useRef<HTMLDivElement>(null)\r\n const divRef = useRef<HTMLDivElement>(null)\r\n\r\n /**\r\n * On call :\r\n * - scroll to the scrollRef HTML element at the bottom of the view\r\n */\r\n const scrollToRef = (): void => {\r\n if (scrollRef && scrollRef.current !== null) {\r\n scrollRef.current.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'nearest'\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * On component mount :\r\n * - call scrollToRef method\r\n */\r\n useEffect(() => {\r\n setTimeout(() => {\r\n scrollToRef()\r\n }, 200)\r\n }, [])\r\n\r\n useEffect(() => {\r\n divRef?.current && isWidget && preventEvents(null, divRef)\r\n }, [divRef?.current])\r\n\r\n const handleClose = (): void => {\r\n setCurrentSubView(CurrentSubView.none)\r\n sendEvent('Davi.CloseWindow', null)\r\n sendEvent('Davi.CloseWindowHistory', null)\r\n }\r\n\r\n return (\r\n <Template handleClose={handleClose} backIsConversation={true} title={translation.history.title}>\r\n <div ref={divRef} className={`rf-pb-4 rf-overflow-y-scroll ${isBorne ? 'rf-scrollbar-thin' : 'rf-scrollbar-hidden'}`}>\r\n {/* History items */}\r\n {activities.map((activity, key) => {\r\n return <HistoryItem key={key} activity={activity} />\r\n })}\r\n <div ref={scrollRef} />\r\n </div>\r\n </Template>\r\n )\r\n}\r\n\r\nexport default HistoryList\r\n","import type { HistoryActivity, RetorikActivity } from '../models/activityTypes'\r\nimport { createNewQuestionForTimestamp } from '../utils/activityUtils'\r\nimport { useActivityStore } from '../components/Contexts/ActivityContext'\r\n\r\nexport default function useMessageActivities(): Array<HistoryActivity> {\r\n const activities = useActivityStore((state) => state.messageActivities)\r\n // processedId contains the ids of the activities already processed (because useActivities gives duplicate activities with different state depending on if it's been spoken or not )\r\n const processedId: Array<string> = []\r\n const history: HistoryActivity[] = []\r\n\r\n activities.forEach((activity) => {\r\n if (activity.id && !processedId.includes(activity.id)) {\r\n processedId.push(activity.id)\r\n // Check if this is a question or an answer (questions from the user don't have a replyToId field)\r\n if (activity.replyToId) {\r\n const question: HistoryActivity | undefined = history.find(\r\n (historyItem) => historyItem.question.id === activity.replyToId\r\n )\r\n if (question) {\r\n question.answers.push(activity)\r\n } else {\r\n const newQuestion: RetorikActivity =\r\n createNewQuestionForTimestamp(activity)\r\n\r\n history.push({\r\n question: newQuestion,\r\n answers: [activity]\r\n })\r\n }\r\n } else {\r\n if (\r\n (activity as RetorikActivity).label === 'Davi.BringupMessage' &&\r\n (activity as RetorikActivity).text\r\n ) {\r\n const newQuestion: RetorikActivity =\r\n createNewQuestionForTimestamp(activity)\r\n history.push({\r\n question: newQuestion,\r\n answers: [activity]\r\n })\r\n } else {\r\n history.push({\r\n question: activity,\r\n answers: []\r\n })\r\n }\r\n }\r\n }\r\n })\r\n\r\n return history\r\n}\r\n","import React from 'react'\r\nimport type { HistoryActivity } from '../../models/activityTypes'\r\nimport HistoryQA from './HistoryQA'\r\n\r\ninterface HistoryItemProps {\r\n activity: HistoryActivity\r\n}\r\n\r\nconst HistoryItem = ({ activity }: HistoryItemProps): JSX.Element => {\r\n return (\r\n <div className='rf-mb-4 rf-flex rf-flex-col rf-justify-start rf-items-start rf-gap-4 rf-text-size-auto'>\r\n {/* Question */}\r\n {activity?.question && activity.question.type === 'message' && (\r\n <HistoryQA activity={activity.question} isQuestion={true} />\r\n )}\r\n\r\n {/* Answers */}\r\n {activity.answers.map((answer, j) => {\r\n return answer.type === 'message' ? (\r\n <HistoryQA key={j} activity={answer} isQuestion={false} />\r\n ) : (\r\n <React.Fragment />\r\n )\r\n })}\r\n </div>\r\n )\r\n}\r\n\r\nexport default HistoryItem\r\n","import React from 'react'\r\nimport { useLocaleStore } from '../Contexts/LocaleContext'\r\nimport { useViewStore } from '../Contexts/ViewContext'\r\nimport type { RetorikActivity } from '../../models/activityTypes'\r\nimport { getTextWithoutSpeechMarkdown } from '../../utils/speechMarkdownUtils'\r\nimport Attachments from '../Attachments/Attachments'\r\n\r\ninterface HistoryQAProps {\r\n activity: RetorikActivity\r\n isQuestion: boolean\r\n}\r\n\r\nconst HistoryQA = ({ activity, isQuestion }: HistoryQAProps): JSX.Element => {\r\n const locale = useLocaleStore((state) => state.locale)\r\n const isMobile = useViewStore((state) => state.isMobile)\r\n const time = activity.localTimestamp\r\n ? new Date(activity.localTimestamp)\r\n : activity.timestamp\r\n ? new Date(activity.timestamp)\r\n : new Date()\r\n\r\n return activity.text || !!activity.attachments?.length ? (\r\n <div\r\n className={`${\r\n isMobile ? 'rf-w-full' : 'rf-max-w-full'\r\n } rf-flex rf-flex-col rf-gap-1`}\r\n >\r\n {/* Time */}\r\n <div className='rf-text-[#9A9A9A]'>\r\n {time.toLocaleString(locale, {\r\n hour: 'numeric',\r\n minute: 'numeric'\r\n })}\r\n </div>\r\n\r\n {/* Question or Answer */}\r\n <div\r\n className={`${\r\n isQuestion\r\n ? 'rf-text-secondary'\r\n : 'rf-text-textModePanelConversationBot'\r\n }`}\r\n >\r\n {activity.htmlText ? (\r\n <div\r\n dangerouslySetInnerHTML={{\r\n __html: activity.htmlText\r\n }}\r\n />\r\n ) : activity.text ? (\r\n getTextWithoutSpeechMarkdown(activity.text)\r\n ) : (\r\n ''\r\n )}\r\n {/* Display attachments if there are some and the display mode wasn't a list */}\r\n {!!activity.attachments?.length &&\r\n !(\r\n activity.attachmentLayout &&\r\n activity.attachmentLayout.toLowerCase() === 'davilist'\r\n ) && (\r\n <div\r\n className={`rf-w-full rf-min-h-16 rf-overflow-x-hidden rf-overflow-y-auto ${\r\n activity.text && 'rf-pt-4'\r\n }`}\r\n >\r\n <Attachments activity={activity} history={true} />\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n ) : (\r\n <React.Fragment />\r\n )\r\n}\r\n\r\nexport default HistoryQA\r\n"],"names":[],"version":3,"file":"HistoryList.50ff0fd9.js.map","sourceRoot":"../"}