@davi-ai/retorik-framework 3.2.6 → 4.0.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 (88) hide show
  1. package/dist/{AttachmentDetail.0a576bf3.js → AttachmentDetail.37a709af.js} +160 -174
  2. package/dist/AttachmentDetail.37a709af.js.map +1 -0
  3. package/dist/{AttachmentDetail.c4286a45.js → AttachmentDetail.53ba969a.js} +159 -173
  4. package/dist/AttachmentDetail.53ba969a.js.map +1 -0
  5. package/dist/{CustomView.913a9f32.js → CustomView.9930c671.js} +16 -20
  6. package/dist/CustomView.9930c671.js.map +1 -0
  7. package/dist/{CustomView.edf84de1.js → CustomView.bf84bdf3.js} +16 -20
  8. package/dist/CustomView.bf84bdf3.js.map +1 -0
  9. package/dist/{Emergency.1f855b66.js → Emergency.1e63c85f.js} +22 -30
  10. package/dist/Emergency.1e63c85f.js.map +1 -0
  11. package/dist/{Emergency.cd492aab.js → Emergency.89b4d9ed.js} +21 -29
  12. package/dist/Emergency.89b4d9ed.js.map +1 -0
  13. package/dist/{FullScreenImage.9a9b978e.js → FullScreenImage.17df27bf.js} +11 -18
  14. package/dist/FullScreenImage.17df27bf.js.map +1 -0
  15. package/dist/{FullScreenImage.1fe27198.js → FullScreenImage.99e19e10.js} +11 -18
  16. package/dist/FullScreenImage.99e19e10.js.map +1 -0
  17. package/dist/{HistoryList.4c303dc6.js → HistoryList.3b4b1ffb.js} +35 -36
  18. package/dist/HistoryList.3b4b1ffb.js.map +1 -0
  19. package/dist/{HistoryList.03a56119.js → HistoryList.e5c01f21.js} +35 -36
  20. package/dist/HistoryList.e5c01f21.js.map +1 -0
  21. package/dist/LanguageChoice.1d866cfa.js +119 -0
  22. package/dist/LanguageChoice.1d866cfa.js.map +1 -0
  23. package/dist/LanguageChoice.cce361a3.js +128 -0
  24. package/dist/LanguageChoice.cce361a3.js.map +1 -0
  25. package/dist/{LittleWeatherContainer.07937cf3.js → LittleWeatherContainer.7e41105e.js} +3 -3
  26. package/dist/LittleWeatherContainer.7e41105e.js.map +1 -0
  27. package/dist/{LittleWeatherContainer.d27a6b8a.js → LittleWeatherContainer.ee087e22.js} +3 -3
  28. package/dist/LittleWeatherContainer.ee087e22.js.map +1 -0
  29. package/dist/MapContainer.14c28128.js +117 -0
  30. package/dist/MapContainer.14c28128.js.map +1 -0
  31. package/dist/MapContainer.f22ad81f.js +104 -0
  32. package/dist/MapContainer.f22ad81f.js.map +1 -0
  33. package/dist/{NewsContainer.76f5b60f.js → NewsContainer.c0a24775.js} +84 -88
  34. package/dist/NewsContainer.c0a24775.js.map +1 -0
  35. package/dist/{NewsContainer.24a4ba84.js → NewsContainer.c3331d80.js} +79 -83
  36. package/dist/NewsContainer.c3331d80.js.map +1 -0
  37. package/dist/PrintingPreview.5351c733.js +147 -0
  38. package/dist/PrintingPreview.5351c733.js.map +1 -0
  39. package/dist/PrintingPreview.6d70355b.js +138 -0
  40. package/dist/PrintingPreview.6d70355b.js.map +1 -0
  41. package/dist/{SpiritEngineWrapper.1d8db53d.js → SpiritEngineWrapper.21ea10d4.js} +8 -7
  42. package/dist/SpiritEngineWrapper.21ea10d4.js.map +1 -0
  43. package/dist/{SpiritEngineWrapper.27e9c120.js → SpiritEngineWrapper.39627300.js} +8 -7
  44. package/dist/SpiritEngineWrapper.39627300.js.map +1 -0
  45. package/dist/{ThreeJsWrapper.09c689b8.js → ThreeJsWrapper.8f15a85b.js} +13 -16
  46. package/dist/ThreeJsWrapper.8f15a85b.js.map +1 -0
  47. package/dist/{ThreeJsWrapper.7918143f.js → ThreeJsWrapper.a46ee0e9.js} +13 -16
  48. package/dist/ThreeJsWrapper.a46ee0e9.js.map +1 -0
  49. package/dist/VeilleManager.443b366e.js +569 -0
  50. package/dist/VeilleManager.443b366e.js.map +1 -0
  51. package/dist/VeilleManager.d8bde1ee.js +550 -0
  52. package/dist/VeilleManager.d8bde1ee.js.map +1 -0
  53. package/dist/{Weather.8d8aa06a.js → Weather.bb414852.js} +66 -119
  54. package/dist/Weather.bb414852.js.map +1 -0
  55. package/dist/{Weather.87ab2128.js → Weather.ced9b467.js} +63 -116
  56. package/dist/Weather.ced9b467.js.map +1 -0
  57. package/dist/index.d.ts +397 -367
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +43672 -15268
  60. package/dist/index.js.map +1 -1
  61. package/dist/index.modern.js +47576 -19204
  62. package/dist/index.modern.js.map +1 -1
  63. package/package.json +9 -9
  64. package/README.md +0 -6
  65. package/dist/AttachmentDetail.0a576bf3.js.map +0 -1
  66. package/dist/AttachmentDetail.c4286a45.js.map +0 -1
  67. package/dist/CustomView.913a9f32.js.map +0 -1
  68. package/dist/CustomView.edf84de1.js.map +0 -1
  69. package/dist/Emergency.1f855b66.js.map +0 -1
  70. package/dist/Emergency.cd492aab.js.map +0 -1
  71. package/dist/FullScreenImage.1fe27198.js.map +0 -1
  72. package/dist/FullScreenImage.9a9b978e.js.map +0 -1
  73. package/dist/HistoryList.03a56119.js.map +0 -1
  74. package/dist/HistoryList.4c303dc6.js.map +0 -1
  75. package/dist/LanguageChoice.623ee802.js +0 -113
  76. package/dist/LanguageChoice.623ee802.js.map +0 -1
  77. package/dist/LanguageChoice.ff0cd04c.js +0 -122
  78. package/dist/LanguageChoice.ff0cd04c.js.map +0 -1
  79. package/dist/LittleWeatherContainer.07937cf3.js.map +0 -1
  80. package/dist/LittleWeatherContainer.d27a6b8a.js.map +0 -1
  81. package/dist/NewsContainer.24a4ba84.js.map +0 -1
  82. package/dist/NewsContainer.76f5b60f.js.map +0 -1
  83. package/dist/SpiritEngineWrapper.1d8db53d.js.map +0 -1
  84. package/dist/SpiritEngineWrapper.27e9c120.js.map +0 -1
  85. package/dist/ThreeJsWrapper.09c689b8.js.map +0 -1
  86. package/dist/ThreeJsWrapper.7918143f.js.map +0 -1
  87. package/dist/Weather.87ab2128.js.map +0 -1
  88. package/dist/Weather.8d8aa06a.js.map +0 -1
@@ -1,5 +1,6 @@
1
1
  var $i8q1J$reactjsxruntime = require("react/jsx-runtime");
2
2
  var $i8q1J$react = require("react");
3
+ var $i8q1J$reactredux = require("react-redux");
3
4
 
4
5
 
5
6
  function $parcel$defineInteropFlag(a) {
@@ -30,35 +31,31 @@ $parcel$export(module.exports, "default", () => $e56ded4540f43ec0$export$2e2bcd8
30
31
 
31
32
 
32
33
 
33
- var $7eio0 = parcelRequire("7eio0");
34
34
 
35
- var $kUiCn = parcelRequire("kUiCn");
36
-
37
- var $6QoTL = parcelRequire("6QoTL");
35
+ var $kpW3P = parcelRequire("kpW3P");
38
36
 
39
37
  var $7WHA7 = parcelRequire("7WHA7");
40
38
 
41
- var $a3uH3 = parcelRequire("a3uH3");
39
+ var $eYKUg = parcelRequire("eYKUg");
42
40
 
43
41
  var $lONbp = parcelRequire("lONbp");
44
42
 
45
43
  var $htSId = parcelRequire("htSId");
46
- const $e56ded4540f43ec0$var$Emergency = ({ handleClose: handleClose })=>{
47
- const isMobile = (0, $kUiCn.useViewStore)((state)=>state.isMobile);
48
- const setCurrentSubView = (0, $7eio0.useUtilsStore)((state)=>state.actions.setCurrentSubView);
49
- const sendEvent = (0, $6QoTL.useDirectlineStore)((state)=>state.actions.sendEvent);
44
+ const $e56ded4540f43ec0$var$Emergency = ()=>{
45
+ const dispatch = (0, $i8q1J$reactredux.useDispatch)();
50
46
  const handleBack = ()=>{
51
- handleClose ? handleClose() : setCurrentSubView((0, $7WHA7.CurrentSubView).none);
52
- sendEvent('Davi.CloseWindow', null, ()=>sendEvent('Davi.CloseWindowEmergency', null));
47
+ dispatch((0, $kpW3P.storeActions).directline.sendEvent({
48
+ name: 'Davi.CloseWindow',
49
+ callback: ()=>{
50
+ dispatch((0, $kpW3P.storeActions).utils.setCurrentSubView((0, $7WHA7.CurrentSubView).none));
51
+ dispatch((0, $kpW3P.storeActions).directline.sendEvent({
52
+ name: 'Davi.CloseWindowEmergency'
53
+ }));
54
+ }
55
+ }));
53
56
  };
54
- return isMobile ? /*#__PURE__*/ (0, $i8q1J$reactjsxruntime.jsx)((0, $a3uH3.SubMenuClosing), {
55
- handleClose: handleBack,
56
- backIsConversation: false,
57
- className: "rf-height-fill-available -rf-mb-4",
58
- children: /*#__PURE__*/ (0, $i8q1J$reactjsxruntime.jsx)((0, $htSId.EmergencyContent), {})
59
- }) : /*#__PURE__*/ (0, $i8q1J$reactjsxruntime.jsxs)((0, $a3uH3.FullScreen), {
60
- depth: (0, $7WHA7.Depth).dropdown,
61
- background: "linear-gradient(to right bottom, #F2F8F8FC , #F2E1E2E8)",
57
+ return /*#__PURE__*/ (0, $i8q1J$reactjsxruntime.jsxs)((0, $eYKUg.default), {
58
+ target: (0, $7WHA7.TemplateTarget).emergency,
62
59
  onClick: handleBack,
63
60
  children: [
64
61
  /*#__PURE__*/ (0, $i8q1J$reactjsxruntime.jsx)("div", {
@@ -81,11 +78,6 @@ $parcel$export(module.exports, "EmergencyContent", () => $2b55f3947c65e277$expor
81
78
 
82
79
 
83
80
 
84
- var $6EkQS = parcelRequire("6EkQS");
85
-
86
- var $kUiCn = parcelRequire("kUiCn");
87
-
88
- var $6Q0mk = parcelRequire("6Q0mk");
89
81
 
90
82
  var $iSQHl = parcelRequire("iSQHl");
91
83
 
@@ -98,10 +90,10 @@ var $gC77G = parcelRequire("gC77G");
98
90
  var $1XMvi = parcelRequire("1XMvi");
99
91
  const $2b55f3947c65e277$var$subView = (0, $7WHA7.AvailableViews).emergency;
100
92
  const $2b55f3947c65e277$export$6478e9f7582bd8fc = ()=>{
101
- const baseAddress = (0, $6EkQS.useRetorikStore)((state)=>state.baseAddress);
102
- const translation = (0, $6Q0mk.useLocaleStore)((state)=>state.currentTranslations);
103
- const isMobile = (0, $kUiCn.useViewStore)((state)=>state.isMobile);
104
- const isWidget = (0, $kUiCn.useViewStore)((state)=>state.isWidget);
93
+ const baseAddress = (0, $i8q1J$reactredux.useSelector)((state)=>state.localeReducer.baseAddress);
94
+ const translation = (0, $i8q1J$reactredux.useSelector)((state)=>state.localeReducer.currentTranslations);
95
+ const isMobile = (0, $i8q1J$reactredux.useSelector)((state)=>state.viewReducer.isMobile);
96
+ const isWidget = (0, $i8q1J$reactredux.useSelector)((state)=>state.viewReducer.isWidget);
105
97
  const [municipalPoliceNumber, setMunicipalPoliceNumber] = (0, $i8q1J$react.useState)('');
106
98
  const [localHospitalName, setLocalHospitalName] = (0, $i8q1J$react.useState)('');
107
99
  const [localHospitalNumber, setLocalHospitalNumber] = (0, $i8q1J$react.useState)('');
@@ -313,4 +305,4 @@ async function $ebb9a848c3dddb50$export$cdd2c9f4b3acf5fb(address) {
313
305
 
314
306
 
315
307
 
316
- //# sourceMappingURL=Emergency.cd492aab.js.map
308
+ //# sourceMappingURL=Emergency.89b4d9ed.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["src/components/Emergency/Emergency.tsx","src/components/Emergency/EmergencyContent.tsx","src/utils/fetchEmergencyData.ts"],"sourcesContent":["import React from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { storeActions } from '../../store'\r\nimport { CurrentSubView, TemplateTarget } from '../../models/enums'\r\nimport TemplateGlobal from '../Templates/TemplateGlobal'\r\nimport AbsoluteLargeClosingButton from '../Utils/SubView/AbsoluteLargeClosingButton'\r\nimport { EmergencyContent } from './EmergencyContent'\r\n\r\nconst Emergency = (): JSX.Element => {\r\n const dispatch = useDispatch()\r\n\r\n const handleBack = (): void => {\r\n dispatch(\r\n storeActions.directline.sendEvent({\r\n name: 'Davi.CloseWindow',\r\n callback: () => {\r\n dispatch(storeActions.utils.setCurrentSubView(CurrentSubView.none))\r\n dispatch(storeActions.directline.sendEvent({ name: 'Davi.CloseWindowEmergency' }))\r\n }\r\n })\r\n )\r\n }\r\n\r\n return (\r\n <TemplateGlobal target={TemplateTarget.emergency} 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 </TemplateGlobal>\r\n )\r\n}\r\n\r\nexport default Emergency\r\n","import React, { useEffect, useRef, useState } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { RootState } from '../../store'\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 = useSelector((state: RootState) => state.localeReducer.baseAddress)\r\n const translation = useSelector((state: RootState) => state.localeReducer.currentTranslations)\r\n const isMobile = useSelector((state: RootState) => state.viewReducer.isMobile)\r\n const isWidget = useSelector((state: RootState) => state.viewReducer.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 className={`rf-flex rf-flex-col rf-items-center ${isMobile ? 'rf-justify-center rf-gap-2' : 'rf-justify-end rf-flex-[2_1_0%] rf-gap-9'}`}>\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'>{translation.emergency[subView]}</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 ? 'transparent' : 'transparent linear-gradient(291deg, #F2F3F6 0%, #E5E6EC 100%) 0% 0% no-repeat padding-box',\r\n boxShadow: isMobile ? '' : '#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 color='gray' loaderColor='#1999b1' backgroundColor='transparent' />\r\n </div>\r\n </>\r\n ) : (\r\n <>\r\n <div className={`rf-w-full rf-grid ${isMobile ? 'rf-grid-cols-2 rf-gap-8 rf-mt-10 rf-mb-8' : 'rf-grid-cols-4 rf-divide-x'} `} style={{ padding: isMobile ? '' : '0 10%' }}>\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'>{translation.emergency.samu}</p>\r\n <p className='rf-text-5xl large:rf-text-6xl rf-font-bold'>15</p>\r\n </div>\r\n <div className={`rf-flex rf-flex-col rf-items-center ${isMobile ? '' : 'rf-border-l rf-border-[#C7C6C6]'} rf-gap-2`}>\r\n <p className='rf-text-xl rf-font-bold rf-uppercase'>{translation.emergency.police}</p>\r\n <p className='rf-text-5xl large:rf-text-6xl rf-font-bold'>17</p>\r\n </div>\r\n <div className={`rf-flex rf-flex-col rf-items-center ${isMobile ? '' : 'rf-border-l rf-border-[#C7C6C6]'} rf-gap-2`}>\r\n <p className='rf-text-xl rf-font-bold rf-uppercase'>{translation.emergency.firefighter}</p>\r\n <p className='rf-text-5xl large:rf-text-6xl rf-font-bold'>18</p>\r\n </div>\r\n <div className={`rf-flex rf-flex-col rf-items-center ${isMobile ? '' : 'rf-border-l rf-border-[#C7C6C6]'} rf-gap-2`}>\r\n <p className='rf-text-xl rf-font-bold rf-uppercase'>{translation.emergency.general}</p>\r\n <p className='rf-text-5xl large:rf-text-6xl rf-font-bold'>112</p>\r\n </div>\r\n </div>\r\n <div className={`rf-flex rf-items-start ${isMobile ? 'rf-flex-col' : 'rf-gap-12'} `}>\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'>{municipalPoliceNumber}</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","import { hospitalityApiAddress } from '../models/constants'\r\nimport { EmergencyTypes } from '../models/emergencyTypes'\r\n\r\nasync function fetchEmergencyData(address: string): Promise<EmergencyTypes> {\r\n const res = await fetch(`${address}${hospitalityApiAddress}`)\r\n .then((emergencyData) => {\r\n return emergencyData.json()\r\n })\r\n .catch(() => {\r\n return null\r\n })\r\n\r\n return res\r\n}\r\n\r\nexport { fetchEmergencyData }\r\n"],"names":[],"version":3,"file":"Emergency.89b4d9ed.js.map","sourceRoot":"../"}
@@ -1,5 +1,6 @@
1
1
  var $igvUb$reactjsxruntime = require("react/jsx-runtime");
2
2
  var $igvUb$react = require("react");
3
+ var $igvUb$reactredux = require("react-redux");
3
4
 
4
5
 
5
6
  function $parcel$interopDefault(a) {
@@ -34,25 +35,17 @@ $parcel$export(module.exports, "default", () => $29a469608f79fe1f$export$2e2bcd8
34
35
 
35
36
 
36
37
 
37
- var $6Q0mk = parcelRequire("6Q0mk");
38
38
 
39
- var $jgaO0 = parcelRequire("jgaO0");
40
-
41
- var $kUiCn = parcelRequire("kUiCn");
42
-
43
- var $7eio0 = parcelRequire("7eio0");
39
+ var $kpW3P = parcelRequire("kpW3P");
44
40
 
45
41
  var $7WHA7 = parcelRequire("7WHA7");
46
42
 
47
43
  var $8iLoV = parcelRequire("8iLoV");
48
44
 
49
- var $j2phc = parcelRequire("j2phc");
45
+ var $eYKUg = parcelRequire("eYKUg");
50
46
  const $29a469608f79fe1f$var$FullScreenImage = ()=>{
51
- const translation = (0, $6Q0mk.useLocaleStore)((state)=>state.currentTranslations);
47
+ const dispatch = (0, $igvUb$reactredux.useDispatch)();
52
48
  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
49
  const [content, setContent] = (0, $igvUb$react.useState)();
57
50
  (0, $igvUb$react.useEffect)(()=>{
58
51
  setContent(fullScreenImage);
@@ -60,14 +53,14 @@ const $29a469608f79fe1f$var$FullScreenImage = ()=>{
60
53
  fullScreenImage
61
54
  ]);
62
55
  const handleClose = ()=>{
63
- setFullScreenImage(undefined);
56
+ dispatch((0, $kpW3P.storeActions).utils.setFullScreenImage(undefined));
64
57
  };
65
- return content ? /*#__PURE__*/ (0, $igvUb$reactjsxruntime.jsx)((0, $j2phc.default), {
66
- handleClose: handleClose,
67
- remoteCloseButtonZIndex: "rf-z-list",
68
- mobileReturnTitle: translation.menu.backconversation,
58
+ return content ? /*#__PURE__*/ (0, $igvUb$reactjsxruntime.jsx)((0, $eYKUg.default), {
59
+ onClick: handleClose,
60
+ remote: true,
61
+ target: (0, $7WHA7.TemplateTarget).fullscreenImage,
69
62
  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`,
63
+ className: `rf-h-full rf-w-full large:rf-pt-12 rf-px-8 rf-pb-12 rf-flex rf-justify-center rf-items-center`,
71
64
  children: /*#__PURE__*/ (0, $igvUb$reactjsxruntime.jsx)("img", {
72
65
  className: "rf-max-h-full rf-max-w-full",
73
66
  src: content
@@ -80,4 +73,4 @@ var $29a469608f79fe1f$export$2e2bcd8739ae039 = $29a469608f79fe1f$var$FullScreenI
80
73
  });
81
74
 
82
75
 
83
- //# sourceMappingURL=FullScreenImage.9a9b978e.js.map
76
+ //# sourceMappingURL=FullScreenImage.17df27bf.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,wCAAkB;IACtB,MAAM,WAAW,CAAA,GAAA,6BAAU;IAC3B,MAAM,kBAAkB,CAAA,GAAA,cAAiB;IACzC,MAAM,CAAC,SAAS,WAAW,GAAG,CAAA,GAAA,qBAAO;IAErC,CAAA,GAAA,sBAAQ,EAAE;QACR,WAAW;IACb,GAAG;QAAC;KAAgB;IAEpB,MAAM,cAAc;QAClB,SAAS,CAAA,GAAA,mBAAW,EAAE,KAAK,CAAC,kBAAkB,CAAC;IACjD;IAEA,OAAO,wBACL,gCAAC,CAAA,GAAA,cAAa;QAAE,SAAS;QAAa,QAAQ;QAAM,QAAQ,CAAA,GAAA,qBAAa,EAAE,eAAe;kBACxF,cAAA,gCAAC;YAAI,WAAW,CAAC,6FAA6F,CAAC;sBAC7G,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 { useDispatch } from 'react-redux'\r\nimport { storeActions } from '../../../store'\r\nimport { TemplateTarget } from '../../../models/enums'\r\nimport useFullscreenImage from '../../../hooks/useFullscreenImage'\r\nimport TemplateGlobal from '../../Templates/TemplateGlobal'\r\n\r\nconst FullScreenImage = (): JSX.Element => {\r\n const dispatch = useDispatch()\r\n const fullScreenImage = useFullscreenImage()\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 dispatch(storeActions.utils.setFullScreenImage(undefined))\r\n }\r\n\r\n return content ? (\r\n <TemplateGlobal onClick={handleClose} remote={true} target={TemplateTarget.fullscreenImage}>\r\n <div className={`rf-h-full rf-w-full large:rf-pt-12 rf-px-8 rf-pb-12 rf-flex rf-justify-center rf-items-center`}>\r\n <img className='rf-max-h-full rf-max-w-full' src={content} />\r\n </div>\r\n </TemplateGlobal>\r\n ) : (\r\n <React.Fragment />\r\n )\r\n}\r\n\r\nexport default FullScreenImage\r\n"],"names":[],"version":3,"file":"FullScreenImage.17df27bf.js.map","sourceRoot":"../"}
@@ -1,5 +1,6 @@
1
1
  import {jsx as $a58FO$jsx} from "react/jsx-runtime";
2
2
  import $a58FO$react, {useState as $a58FO$useState, useEffect as $a58FO$useEffect} from "react";
3
+ import {useDispatch as $a58FO$useDispatch} from "react-redux";
3
4
 
4
5
 
5
6
  function $parcel$defineInteropFlag(a) {
@@ -21,25 +22,17 @@ $parcel$export(module.exports, "default", () => $0c86a937529a81b6$export$2e2bcd8
21
22
 
22
23
 
23
24
 
24
- var $2fuDN = parcelRequire("2fuDN");
25
25
 
26
- var $i1rfm = parcelRequire("i1rfm");
27
-
28
- var $1Qww3 = parcelRequire("1Qww3");
29
-
30
- var $j67YK = parcelRequire("j67YK");
26
+ var $8ItUL = parcelRequire("8ItUL");
31
27
 
32
28
  var $4ucVo = parcelRequire("4ucVo");
33
29
 
34
30
  var $284yi = parcelRequire("284yi");
35
31
 
36
- var $lj7lQ = parcelRequire("lj7lQ");
32
+ var $aMohu = parcelRequire("aMohu");
37
33
  const $0c86a937529a81b6$var$FullScreenImage = ()=>{
38
- const translation = (0, $2fuDN.useLocaleStore)((state)=>state.currentTranslations);
34
+ const dispatch = (0, $a58FO$useDispatch)();
39
35
  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
36
  const [content, setContent] = (0, $a58FO$useState)();
44
37
  (0, $a58FO$useEffect)(()=>{
45
38
  setContent(fullScreenImage);
@@ -47,14 +40,14 @@ const $0c86a937529a81b6$var$FullScreenImage = ()=>{
47
40
  fullScreenImage
48
41
  ]);
49
42
  const handleClose = ()=>{
50
- setFullScreenImage(undefined);
43
+ dispatch((0, $8ItUL.storeActions).utils.setFullScreenImage(undefined));
51
44
  };
52
- return content ? /*#__PURE__*/ (0, $a58FO$jsx)((0, $lj7lQ.default), {
53
- handleClose: handleClose,
54
- remoteCloseButtonZIndex: "rf-z-list",
55
- mobileReturnTitle: translation.menu.backconversation,
45
+ return content ? /*#__PURE__*/ (0, $a58FO$jsx)((0, $aMohu.default), {
46
+ onClick: handleClose,
47
+ remote: true,
48
+ target: (0, $4ucVo.TemplateTarget).fullscreenImage,
56
49
  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`,
50
+ className: `rf-h-full rf-w-full large:rf-pt-12 rf-px-8 rf-pb-12 rf-flex rf-justify-center rf-items-center`,
58
51
  children: /*#__PURE__*/ (0, $a58FO$jsx)("img", {
59
52
  className: "rf-max-h-full rf-max-w-full",
60
53
  src: content
@@ -67,4 +60,4 @@ var $0c86a937529a81b6$export$2e2bcd8739ae039 = $0c86a937529a81b6$var$FullScreenI
67
60
  });
68
61
 
69
62
 
70
- //# sourceMappingURL=FullScreenImage.1fe27198.js.map
63
+ //# sourceMappingURL=FullScreenImage.99e19e10.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,wCAAkB;IACtB,MAAM,WAAW,CAAA,GAAA,kBAAU;IAC3B,MAAM,kBAAkB,CAAA,GAAA,cAAiB;IACzC,MAAM,CAAC,SAAS,WAAW,GAAG,CAAA,GAAA,eAAO;IAErC,CAAA,GAAA,gBAAQ,EAAE;QACR,WAAW;IACb,GAAG;QAAC;KAAgB;IAEpB,MAAM,cAAc;QAClB,SAAS,CAAA,GAAA,mBAAW,EAAE,KAAK,CAAC,kBAAkB,CAAC;IACjD;IAEA,OAAO,wBACL,gBAAC,CAAA,GAAA,cAAa;QAAE,SAAS;QAAa,QAAQ;QAAM,QAAQ,CAAA,GAAA,qBAAa,EAAE,eAAe;kBACxF,cAAA,gBAAC;YAAI,WAAW,CAAC,6FAA6F,CAAC;sBAC7G,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 { useDispatch } from 'react-redux'\r\nimport { storeActions } from '../../../store'\r\nimport { TemplateTarget } from '../../../models/enums'\r\nimport useFullscreenImage from '../../../hooks/useFullscreenImage'\r\nimport TemplateGlobal from '../../Templates/TemplateGlobal'\r\n\r\nconst FullScreenImage = (): JSX.Element => {\r\n const dispatch = useDispatch()\r\n const fullScreenImage = useFullscreenImage()\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 dispatch(storeActions.utils.setFullScreenImage(undefined))\r\n }\r\n\r\n return content ? (\r\n <TemplateGlobal onClick={handleClose} remote={true} target={TemplateTarget.fullscreenImage}>\r\n <div className={`rf-h-full rf-w-full large:rf-pt-12 rf-px-8 rf-pb-12 rf-flex rf-justify-center rf-items-center`}>\r\n <img className='rf-max-h-full rf-max-w-full' src={content} />\r\n </div>\r\n </TemplateGlobal>\r\n ) : (\r\n <React.Fragment />\r\n )\r\n}\r\n\r\nexport default FullScreenImage\r\n"],"names":[],"version":3,"file":"FullScreenImage.99e19e10.js.map"}
@@ -1,5 +1,6 @@
1
1
  var $3sjcq$reactjsxruntime = require("react/jsx-runtime");
2
2
  var $3sjcq$react = require("react");
3
+ var $3sjcq$reactredux = require("react-redux");
3
4
 
4
5
 
5
6
  function $parcel$defineInteropFlag(a) {
@@ -34,45 +35,36 @@ $parcel$export(module.exports, "default", () => $4c0e94df62fa6718$export$2e2bcd8
34
35
 
35
36
 
36
37
 
37
- var $kUiCn = parcelRequire("kUiCn");
38
38
 
39
- var $6Q0mk = parcelRequire("6Q0mk");
40
-
41
- var $7eio0 = parcelRequire("7eio0");
42
-
43
- var $6QoTL = parcelRequire("6QoTL");
39
+ var $kpW3P = parcelRequire("kpW3P");
44
40
 
45
41
  var $aF2dz = parcelRequire("aF2dz");
46
42
 
47
- var $a3uH3 = parcelRequire("a3uH3");
48
-
49
- var $bco44 = parcelRequire("bco44");
50
-
51
43
  var $7WHA7 = parcelRequire("7WHA7");
52
44
 
53
45
  var $1XMvi = parcelRequire("1XMvi");
46
+
47
+ var $9JtA7 = parcelRequire("9JtA7");
48
+
49
+ var $eYKUg = parcelRequire("eYKUg");
50
+
51
+ var $bco44 = parcelRequire("bco44");
54
52
  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);
53
+ const dispatch = (0, $3sjcq$reactredux.useDispatch)();
54
+ const locale = (0, $3sjcq$reactredux.useSelector)((state)=>state.localeReducer.locale);
55
+ const translation = (0, $3sjcq$reactredux.useSelector)((state)=>state.localeReducer.currentTranslations);
56
+ const isWidget = (0, $3sjcq$reactredux.useSelector)((state)=>state.viewReducer.isWidget);
57
+ const isBorne = (0, $3sjcq$reactredux.useSelector)((state)=>state.viewReducer.isBorne);
60
58
  const activities = (0, $aF2dz.default)();
61
59
  const scrollRef = (0, $3sjcq$react.useRef)(null);
62
60
  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 = ()=>{
61
+ const scrollToRef = ()=>{
67
62
  if (scrollRef && scrollRef.current !== null) scrollRef.current.scrollIntoView({
68
63
  behavior: 'smooth',
69
64
  block: 'nearest'
70
65
  });
71
66
  };
72
- /**
73
- * On component mount :
74
- * - call scrollToRef method
75
- */ (0, $3sjcq$react.useEffect)(()=>{
67
+ (0, $3sjcq$react.useEffect)(()=>{
76
68
  setTimeout(()=>{
77
69
  scrollToRef();
78
70
  }, 200);
@@ -83,17 +75,26 @@ const $4c0e94df62fa6718$var$HistoryList = ()=>{
83
75
  divRef === null || divRef === void 0 ? void 0 : divRef.current
84
76
  ]);
85
77
  const handleClose = ()=>{
86
- setCurrentSubView((0, $7WHA7.CurrentSubView).none);
87
- sendEvent('Davi.CloseWindow', null, ()=>sendEvent('Davi.CloseWindowHistory', null));
78
+ dispatch((0, $kpW3P.storeActions).utils.setCurrentSubView((0, $7WHA7.CurrentSubView).none));
79
+ dispatch((0, $kpW3P.storeActions).directline.sendEvent({
80
+ name: 'Davi.CloseWindow',
81
+ callback: ()=>dispatch((0, $kpW3P.storeActions).directline.sendEvent({
82
+ name: 'Davi.CloseWindowHistory'
83
+ }))
84
+ }));
88
85
  };
89
- return /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsx)((0, $a3uH3.SubMenuClosing), {
90
- handleClose: handleClose,
91
- backIsConversation: true,
92
- title: translation.history.title,
86
+ return /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsx)((0, $eYKUg.default), {
87
+ onClick: handleClose,
88
+ remote: true,
89
+ target: (0, $7WHA7.TemplateTarget).history,
93
90
  children: /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsxs)("div", {
94
91
  ref: divRef,
95
- className: `rf-pb-4 rf-overflow-y-scroll ${isBorne ? 'rf-scrollbar-thin' : 'rf-scrollbar-hidden'}`,
92
+ className: `rf-h-full rf-flex rf-flex-col rf-pb-4 rf-px-4 large:rf-px-6 rf-overflow-y-scroll ${isBorne ? 'rf-mt-[25vh] rf-mb-[15vh] rf-scrollbar-thin' : 'rf-scrollbar-hidden'}`,
96
93
  children: [
94
+ /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsx)("div", {
95
+ className: "rf-mb-6 rf-title-bold-size-auto",
96
+ children: (0, $9JtA7.capitalizeFirstLetter)(translation.history.title, locale)
97
+ }),
97
98
  activities.map((activity, key)=>{
98
99
  return /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsx)((0, $bco44.default), {
99
100
  activity: activity
@@ -113,11 +114,10 @@ parcelRegister("aF2dz", function(module, exports) {
113
114
 
114
115
  $parcel$export(module.exports, "default", () => $0a0255973b22d31f$export$2e2bcd8739ae039);
115
116
 
116
- var $3Loqo = parcelRequire("3Loqo");
117
117
 
118
- var $e53vj = parcelRequire("e53vj");
118
+ var $3Loqo = parcelRequire("3Loqo");
119
119
  function $0a0255973b22d31f$export$2e2bcd8739ae039() {
120
- const activities = (0, $e53vj.useActivityStore)((state)=>state.messageActivities);
120
+ const activities = (0, $3sjcq$reactredux.useSelector)((state)=>state.activityReducer.messageActivities);
121
121
  // 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 )
122
122
  const processedId = [];
123
123
  const history = [];
@@ -189,14 +189,13 @@ $parcel$export(module.exports, "default", () => $db601f65e25709db$export$2e2bcd8
189
189
 
190
190
 
191
191
 
192
- var $6Q0mk = parcelRequire("6Q0mk");
193
192
 
194
193
  var $lr5yz = parcelRequire("lr5yz");
195
194
 
196
195
  var $eXl5q = parcelRequire("eXl5q");
197
196
  const $db601f65e25709db$var$HistoryQA = ({ activity: activity, isQuestion: isQuestion })=>{
198
197
  var _activity_attachments, _activity_attachments1;
199
- const locale = (0, $6Q0mk.useLocaleStore)((state)=>state.locale);
198
+ const locale = (0, $3sjcq$reactredux.useSelector)((state)=>state.localeReducer.locale);
200
199
  const time = activity.localTimestamp ? new Date(activity.localTimestamp) : activity.timestamp ? new Date(activity.timestamp) : new Date();
201
200
  return activity.text || !!((_activity_attachments = activity.attachments) === null || _activity_attachments === void 0 ? void 0 : _activity_attachments.length) ? /*#__PURE__*/ (0, $3sjcq$reactjsxruntime.jsxs)("div", {
202
201
  className: "rf-w-full rf-flex rf-flex-col rf-gap-1",
@@ -235,4 +234,4 @@ var $db601f65e25709db$export$2e2bcd8739ae039 = $db601f65e25709db$var$HistoryQA;
235
234
 
236
235
 
237
236
 
238
- //# sourceMappingURL=HistoryList.4c303dc6.js.map
237
+ //# sourceMappingURL=HistoryList.3b4b1ffb.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 { useSelector, useDispatch } from 'react-redux'\r\nimport { RootState, storeActions } from '../../store'\r\n\r\nimport useMessageActivities from '../../hooks/useMessageActivities'\r\nimport { CurrentSubView, TemplateTarget } from '../../models/enums'\r\nimport preventEvents from '../../utils/preventEvents'\r\nimport { capitalizeFirstLetter } from '../../utils/capitalizeFirstLetter'\r\n\r\nimport TemplateGlobal from '../Templates/TemplateGlobal'\r\nimport HistoryItem from './HistoryItem'\r\n\r\nconst HistoryList = (): JSX.Element => {\r\n const dispatch = useDispatch()\r\n const locale = useSelector((state: RootState) => state.localeReducer.locale)\r\n const translation = useSelector((state: RootState) => state.localeReducer.currentTranslations)\r\n const isWidget = useSelector((state: RootState) => state.viewReducer.isWidget)\r\n const isBorne = useSelector((state: RootState) => state.viewReducer.isBorne)\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 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 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 dispatch(storeActions.utils.setCurrentSubView(CurrentSubView.none))\r\n dispatch(storeActions.directline.sendEvent({ name: 'Davi.CloseWindow', callback: () => dispatch(storeActions.directline.sendEvent({ name: 'Davi.CloseWindowHistory' })) }))\r\n }\r\n\r\n return (\r\n <TemplateGlobal onClick={handleClose} remote={true} target={TemplateTarget.history}>\r\n <div\r\n ref={divRef}\r\n className={`rf-h-full rf-flex rf-flex-col rf-pb-4 rf-px-4 large:rf-px-6 rf-overflow-y-scroll ${isBorne ? 'rf-mt-[25vh] rf-mb-[15vh] rf-scrollbar-thin' : 'rf-scrollbar-hidden'}`}\r\n >\r\n {/* Title */}\r\n <div className='rf-mb-6 rf-title-bold-size-auto'>{capitalizeFirstLetter(translation.history.title, locale)}</div>\r\n\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 </TemplateGlobal>\r\n )\r\n}\r\n\r\nexport default HistoryList\r\n","import type { HistoryActivity, RetorikActivity } from '../models/activityTypes'\r\nimport { useSelector } from 'react-redux'\r\nimport { RootState } from '../store'\r\nimport { createNewQuestionForTimestamp } from '../utils/activityUtils'\r\n\r\nexport default function useMessageActivities(): Array<HistoryActivity> {\r\n const activities = useSelector((state: RootState) => state.activityReducer.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((historyItem) => historyItem.question.id === activity.replyToId)\r\n if (question) {\r\n question.answers.push(activity)\r\n } else {\r\n const newQuestion: RetorikActivity = 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 ((activity as RetorikActivity).label === 'Davi.BringupMessage' && (activity as RetorikActivity).text) {\r\n const newQuestion: RetorikActivity = 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 { useSelector } from 'react-redux'\r\nimport { RootState } from '../../store'\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 = useSelector((state: RootState) => state.localeReducer.locale)\r\n const time = activity.localTimestamp ? new Date(activity.localTimestamp) : activity.timestamp ? new Date(activity.timestamp) : new Date()\r\n\r\n return activity.text || !!activity.attachments?.length ? (\r\n <div className='rf-w-full rf-flex rf-flex-col rf-gap-1'>\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 className={`${isQuestion ? 'rf-text-secondary' : 'rf-text-textModePanelConversationBot'}`}>\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 && !(activity.attachmentLayout && activity.attachmentLayout.toLowerCase() === 'davilist') && (\r\n <div className={`rf-w-full rf-min-h-16 rf-overflow-x-hidden rf-overflow-y-auto ${activity.text && 'rf-pt-4'}`}>\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.3b4b1ffb.js.map","sourceRoot":"../"}
@@ -1,5 +1,6 @@
1
1
  import {jsx as $ktVFM$jsx, jsxs as $ktVFM$jsxs} from "react/jsx-runtime";
2
2
  import $ktVFM$react, {useRef as $ktVFM$useRef, useEffect as $ktVFM$useEffect} from "react";
3
+ import {useDispatch as $ktVFM$useDispatch, useSelector as $ktVFM$useSelector} from "react-redux";
3
4
 
4
5
 
5
6
  function $parcel$defineInteropFlag(a) {
@@ -21,45 +22,36 @@ $parcel$export(module.exports, "default", () => $7e0481471d50d053$export$2e2bcd8
21
22
 
22
23
 
23
24
 
24
- var $1Qww3 = parcelRequire("1Qww3");
25
25
 
26
- var $2fuDN = parcelRequire("2fuDN");
27
-
28
- var $j67YK = parcelRequire("j67YK");
29
-
30
- var $aNpqK = parcelRequire("aNpqK");
26
+ var $8ItUL = parcelRequire("8ItUL");
31
27
 
32
28
  var $dhRwo = parcelRequire("dhRwo");
33
29
 
34
- var $gQ55S = parcelRequire("gQ55S");
35
-
36
- var $jeYOr = parcelRequire("jeYOr");
37
-
38
30
  var $4ucVo = parcelRequire("4ucVo");
39
31
 
40
32
  var $8KJP1 = parcelRequire("8KJP1");
33
+
34
+ var $7pypd = parcelRequire("7pypd");
35
+
36
+ var $aMohu = parcelRequire("aMohu");
37
+
38
+ var $jeYOr = parcelRequire("jeYOr");
41
39
  const $7e0481471d50d053$var$HistoryList = ()=>{
42
- const translation = (0, $2fuDN.useLocaleStore)((state)=>state.currentTranslations);
43
- const isWidget = (0, $1Qww3.useViewStore)((state)=>state.isWidget);
44
- const isBorne = (0, $1Qww3.useViewStore)((state)=>state.isBorne);
45
- const setCurrentSubView = (0, $j67YK.useUtilsStore)((state)=>state.actions.setCurrentSubView);
46
- const sendEvent = (0, $aNpqK.useDirectlineStore)((state)=>state.actions.sendEvent);
40
+ const dispatch = (0, $ktVFM$useDispatch)();
41
+ const locale = (0, $ktVFM$useSelector)((state)=>state.localeReducer.locale);
42
+ const translation = (0, $ktVFM$useSelector)((state)=>state.localeReducer.currentTranslations);
43
+ const isWidget = (0, $ktVFM$useSelector)((state)=>state.viewReducer.isWidget);
44
+ const isBorne = (0, $ktVFM$useSelector)((state)=>state.viewReducer.isBorne);
47
45
  const activities = (0, $dhRwo.default)();
48
46
  const scrollRef = (0, $ktVFM$useRef)(null);
49
47
  const divRef = (0, $ktVFM$useRef)(null);
50
- /**
51
- * On call :
52
- * - scroll to the scrollRef HTML element at the bottom of the view
53
- */ const scrollToRef = ()=>{
48
+ const scrollToRef = ()=>{
54
49
  if (scrollRef && scrollRef.current !== null) scrollRef.current.scrollIntoView({
55
50
  behavior: 'smooth',
56
51
  block: 'nearest'
57
52
  });
58
53
  };
59
- /**
60
- * On component mount :
61
- * - call scrollToRef method
62
- */ (0, $ktVFM$useEffect)(()=>{
54
+ (0, $ktVFM$useEffect)(()=>{
63
55
  setTimeout(()=>{
64
56
  scrollToRef();
65
57
  }, 200);
@@ -70,17 +62,26 @@ const $7e0481471d50d053$var$HistoryList = ()=>{
70
62
  divRef?.current
71
63
  ]);
72
64
  const handleClose = ()=>{
73
- setCurrentSubView((0, $4ucVo.CurrentSubView).none);
74
- sendEvent('Davi.CloseWindow', null, ()=>sendEvent('Davi.CloseWindowHistory', null));
65
+ dispatch((0, $8ItUL.storeActions).utils.setCurrentSubView((0, $4ucVo.CurrentSubView).none));
66
+ dispatch((0, $8ItUL.storeActions).directline.sendEvent({
67
+ name: 'Davi.CloseWindow',
68
+ callback: ()=>dispatch((0, $8ItUL.storeActions).directline.sendEvent({
69
+ name: 'Davi.CloseWindowHistory'
70
+ }))
71
+ }));
75
72
  };
76
- return /*#__PURE__*/ (0, $ktVFM$jsx)((0, $gQ55S.SubMenuClosing), {
77
- handleClose: handleClose,
78
- backIsConversation: true,
79
- title: translation.history.title,
73
+ return /*#__PURE__*/ (0, $ktVFM$jsx)((0, $aMohu.default), {
74
+ onClick: handleClose,
75
+ remote: true,
76
+ target: (0, $4ucVo.TemplateTarget).history,
80
77
  children: /*#__PURE__*/ (0, $ktVFM$jsxs)("div", {
81
78
  ref: divRef,
82
- className: `rf-pb-4 rf-overflow-y-scroll ${isBorne ? 'rf-scrollbar-thin' : 'rf-scrollbar-hidden'}`,
79
+ className: `rf-h-full rf-flex rf-flex-col rf-pb-4 rf-px-4 large:rf-px-6 rf-overflow-y-scroll ${isBorne ? 'rf-mt-[25vh] rf-mb-[15vh] rf-scrollbar-thin' : 'rf-scrollbar-hidden'}`,
83
80
  children: [
81
+ /*#__PURE__*/ (0, $ktVFM$jsx)("div", {
82
+ className: "rf-mb-6 rf-title-bold-size-auto",
83
+ children: (0, $7pypd.capitalizeFirstLetter)(translation.history.title, locale)
84
+ }),
84
85
  activities.map((activity, key)=>{
85
86
  return /*#__PURE__*/ (0, $ktVFM$jsx)((0, $jeYOr.default), {
86
87
  activity: activity
@@ -100,11 +101,10 @@ parcelRegister("dhRwo", function(module, exports) {
100
101
 
101
102
  $parcel$export(module.exports, "default", () => $a4a3509b5adcc0fb$export$2e2bcd8739ae039);
102
103
 
103
- var $e5dDB = parcelRequire("e5dDB");
104
104
 
105
- var $9GPj7 = parcelRequire("9GPj7");
105
+ var $e5dDB = parcelRequire("e5dDB");
106
106
  function $a4a3509b5adcc0fb$export$2e2bcd8739ae039() {
107
- const activities = (0, $9GPj7.useActivityStore)((state)=>state.messageActivities);
107
+ const activities = (0, $ktVFM$useSelector)((state)=>state.activityReducer.messageActivities);
108
108
  // 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 )
109
109
  const processedId = [];
110
110
  const history = [];
@@ -176,13 +176,12 @@ $parcel$export(module.exports, "default", () => $c7eb1586efc51c4d$export$2e2bcd8
176
176
 
177
177
 
178
178
 
179
- var $2fuDN = parcelRequire("2fuDN");
180
179
 
181
180
  var $dLlm9 = parcelRequire("dLlm9");
182
181
 
183
182
  var $1LYTj = parcelRequire("1LYTj");
184
183
  const $c7eb1586efc51c4d$var$HistoryQA = ({ activity: activity, isQuestion: isQuestion })=>{
185
- const locale = (0, $2fuDN.useLocaleStore)((state)=>state.locale);
184
+ const locale = (0, $ktVFM$useSelector)((state)=>state.localeReducer.locale);
186
185
  const time = activity.localTimestamp ? new Date(activity.localTimestamp) : activity.timestamp ? new Date(activity.timestamp) : new Date();
187
186
  return activity.text || !!activity.attachments?.length ? /*#__PURE__*/ (0, $ktVFM$jsxs)("div", {
188
187
  className: "rf-w-full rf-flex rf-flex-col rf-gap-1",
@@ -221,4 +220,4 @@ var $c7eb1586efc51c4d$export$2e2bcd8739ae039 = $c7eb1586efc51c4d$var$HistoryQA;
221
220
 
222
221
 
223
222
 
224
- //# sourceMappingURL=HistoryList.03a56119.js.map
223
+ //# sourceMappingURL=HistoryList.e5c01f21.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 { useSelector, useDispatch } from 'react-redux'\r\nimport { RootState, storeActions } from '../../store'\r\n\r\nimport useMessageActivities from '../../hooks/useMessageActivities'\r\nimport { CurrentSubView, TemplateTarget } from '../../models/enums'\r\nimport preventEvents from '../../utils/preventEvents'\r\nimport { capitalizeFirstLetter } from '../../utils/capitalizeFirstLetter'\r\n\r\nimport TemplateGlobal from '../Templates/TemplateGlobal'\r\nimport HistoryItem from './HistoryItem'\r\n\r\nconst HistoryList = (): JSX.Element => {\r\n const dispatch = useDispatch()\r\n const locale = useSelector((state: RootState) => state.localeReducer.locale)\r\n const translation = useSelector((state: RootState) => state.localeReducer.currentTranslations)\r\n const isWidget = useSelector((state: RootState) => state.viewReducer.isWidget)\r\n const isBorne = useSelector((state: RootState) => state.viewReducer.isBorne)\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 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 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 dispatch(storeActions.utils.setCurrentSubView(CurrentSubView.none))\r\n dispatch(storeActions.directline.sendEvent({ name: 'Davi.CloseWindow', callback: () => dispatch(storeActions.directline.sendEvent({ name: 'Davi.CloseWindowHistory' })) }))\r\n }\r\n\r\n return (\r\n <TemplateGlobal onClick={handleClose} remote={true} target={TemplateTarget.history}>\r\n <div\r\n ref={divRef}\r\n className={`rf-h-full rf-flex rf-flex-col rf-pb-4 rf-px-4 large:rf-px-6 rf-overflow-y-scroll ${isBorne ? 'rf-mt-[25vh] rf-mb-[15vh] rf-scrollbar-thin' : 'rf-scrollbar-hidden'}`}\r\n >\r\n {/* Title */}\r\n <div className='rf-mb-6 rf-title-bold-size-auto'>{capitalizeFirstLetter(translation.history.title, locale)}</div>\r\n\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 </TemplateGlobal>\r\n )\r\n}\r\n\r\nexport default HistoryList\r\n","import type { HistoryActivity, RetorikActivity } from '../models/activityTypes'\r\nimport { useSelector } from 'react-redux'\r\nimport { RootState } from '../store'\r\nimport { createNewQuestionForTimestamp } from '../utils/activityUtils'\r\n\r\nexport default function useMessageActivities(): Array<HistoryActivity> {\r\n const activities = useSelector((state: RootState) => state.activityReducer.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((historyItem) => historyItem.question.id === activity.replyToId)\r\n if (question) {\r\n question.answers.push(activity)\r\n } else {\r\n const newQuestion: RetorikActivity = 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 ((activity as RetorikActivity).label === 'Davi.BringupMessage' && (activity as RetorikActivity).text) {\r\n const newQuestion: RetorikActivity = 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 { useSelector } from 'react-redux'\r\nimport { RootState } from '../../store'\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 = useSelector((state: RootState) => state.localeReducer.locale)\r\n const time = activity.localTimestamp ? new Date(activity.localTimestamp) : activity.timestamp ? new Date(activity.timestamp) : new Date()\r\n\r\n return activity.text || !!activity.attachments?.length ? (\r\n <div className='rf-w-full rf-flex rf-flex-col rf-gap-1'>\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 className={`${isQuestion ? 'rf-text-secondary' : 'rf-text-textModePanelConversationBot'}`}>\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 && !(activity.attachmentLayout && activity.attachmentLayout.toLowerCase() === 'davilist') && (\r\n <div className={`rf-w-full rf-min-h-16 rf-overflow-x-hidden rf-overflow-y-auto ${activity.text && 'rf-pt-4'}`}>\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.e5c01f21.js.map"}