@davi-ai/retorik-framework 3.2.5 → 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.0cf005ce.js → Emergency.1e63c85f.js} +38 -30
  10. package/dist/Emergency.1e63c85f.js.map +1 -0
  11. package/dist/{Emergency.897ee3c7.js → Emergency.89b4d9ed.js} +37 -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.a91d9131.js → NewsContainer.c0a24775.js} +84 -88
  34. package/dist/NewsContainer.c0a24775.js.map +1 -0
  35. package/dist/{NewsContainer.f0d2ee9c.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.99917b66.js → Weather.bb414852.js} +73 -117
  54. package/dist/Weather.bb414852.js.map +1 -0
  55. package/dist/{Weather.cf58823d.js → Weather.ced9b467.js} +70 -115
  56. package/dist/Weather.ced9b467.js.map +1 -0
  57. package/dist/index.d.ts +401 -366
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +47604 -19604
  60. package/dist/index.js.map +1 -1
  61. package/dist/index.modern.js +43539 -15580
  62. package/dist/index.modern.js.map +1 -1
  63. package/package.json +10 -10
  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.0cf005ce.js.map +0 -1
  70. package/dist/Emergency.897ee3c7.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.a91d9131.js.map +0 -1
  82. package/dist/NewsContainer.f0d2ee9c.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.99917b66.js.map +0 -1
  88. package/dist/Weather.cf58823d.js.map +0 -1
@@ -0,0 +1,138 @@
1
+ import {jsxs as $khn83$jsxs, jsx as $khn83$jsx} from "react/jsx-runtime";
2
+ import {useState as $khn83$useState} from "react";
3
+ import {pdfjs as $khn83$pdfjs, Document as $khn83$Document, Page as $khn83$Page} from "react-pdf";
4
+ import * as $khn83$pdfjsdistbuildpdfworkerjs from "pdfjs-dist/build/pdf.worker.js";
5
+ import {useDispatch as $khn83$useDispatch, useSelector as $khn83$useSelector} from "react-redux";
6
+
7
+
8
+ function $parcel$defineInteropFlag(a) {
9
+ Object.defineProperty(a, '__esModule', {value: true, configurable: true});
10
+ }
11
+
12
+ function $parcel$export(e, n, v, s) {
13
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
14
+ }
15
+
16
+ var $parcel$global = globalThis;
17
+ var parcelRequire = $parcel$global["parcelRequirea39d"];
18
+ var parcelRegister = parcelRequire.register;
19
+ parcelRegister("ldRRB", function(module, exports) {
20
+
21
+ $parcel$defineInteropFlag(module.exports);
22
+
23
+ $parcel$export(module.exports, "default", () => $86f0aba9c8073327$export$2e2bcd8739ae039);
24
+
25
+
26
+
27
+
28
+
29
+
30
+ var $8ItUL = parcelRequire("8ItUL");
31
+
32
+ var $ahoAn = parcelRequire("ahoAn");
33
+
34
+ var $SZcIF = parcelRequire("SZcIF");
35
+
36
+ var $ipfK3 = parcelRequire("ipfK3");
37
+ // Configure react-pdf worker
38
+ (0, $khn83$pdfjs).GlobalWorkerOptions.workerSrc = $khn83$pdfjsdistbuildpdfworkerjs;
39
+ const $86f0aba9c8073327$var$PrintingPreview = ({ url: url, printingAllowed: printingAllowed })=>{
40
+ const dispatch = (0, $khn83$useDispatch)();
41
+ const translation = (0, $khn83$useSelector)((state)=>state.localeReducer.currentTranslations);
42
+ const printingCallback = (0, $khn83$useSelector)((state)=>state.utilsReducer.printingCallback);
43
+ const [documentLoaded, setDocumentLoaded] = (0, $khn83$useState)(false);
44
+ const [numberOfPages, setNumberOfPages] = (0, $khn83$useState)(0);
45
+ const [pageNumber, setPageNumber] = (0, $khn83$useState)(1);
46
+ const onDocumentLoadSuccess = ({ numPages: numPages })=>{
47
+ setNumberOfPages(numPages);
48
+ setDocumentLoaded(true);
49
+ };
50
+ const handleClick = ()=>{
51
+ printingCallback?.(url);
52
+ handleClose();
53
+ };
54
+ const handleClose = ()=>{
55
+ dispatch((0, $8ItUL.storeActions).utils.setModalFullscreenContent(null));
56
+ };
57
+ const changePage = (index)=>{
58
+ setPageNumber((current)=>current + index);
59
+ };
60
+ return /*#__PURE__*/ (0, $khn83$jsxs)("div", {
61
+ className: "rf-h-full large-vertical:rf-mt-[20vh] large-vertical:rf-h-1/2 rf-max-w-1/2 large-vertical:rf-max-w-[60%] rf-py-4 rf-flex rf-flex-col rf-gap-4",
62
+ style: {
63
+ visibility: documentLoaded ? 'visible' : 'hidden'
64
+ },
65
+ children: [
66
+ /*#__PURE__*/ (0, $khn83$jsxs)("div", {
67
+ className: "rf-grid rf-grid-cols-printingPreview rf-min-h-12 rf-h-12",
68
+ children: [
69
+ printingAllowed ? /*#__PURE__*/ (0, $khn83$jsxs)("button", {
70
+ className: "rf-px-4 rf-py-1 rf-h-full rf-justify-self-center rf-flex rf-flex-row rf-items-center rf-gap-2 rf-font-bold rf-text-sm rf-rounded-lg rf-bg-truewhite",
71
+ onClick: handleClick,
72
+ children: [
73
+ /*#__PURE__*/ (0, $khn83$jsx)((0, $ahoAn.PrintIcon), {}),
74
+ translation.common.print
75
+ ]
76
+ }) : /*#__PURE__*/ (0, $khn83$jsx)("div", {
77
+ children: '\u2800'
78
+ }),
79
+ /*#__PURE__*/ (0, $khn83$jsx)("button", {
80
+ className: "rf-h-full rf-w-12 rf-justify-self-end rf-flex rf-justify-center rf-items-center rf-rounded-lg rf-bg-truewhite",
81
+ onClick: handleClose,
82
+ children: /*#__PURE__*/ (0, $khn83$jsx)((0, $SZcIF.CloseIcon), {})
83
+ })
84
+ ]
85
+ }),
86
+ /*#__PURE__*/ (0, $khn83$jsxs)("div", {
87
+ className: "rf-relative rf-w-full rf-flex rf-flex-col rf-rounded-lg rf-overflow-y-scroll rf-scrollbar-thin",
88
+ children: [
89
+ numberOfPages > 1 && /*#__PURE__*/ (0, $khn83$jsxs)("div", {
90
+ className: "rf-w-full rf-px-4 rf-pt-3 rf-pb-2 rf-flex rf-flex-row rf-justify-between rf-items-center rf-bg-truewhite",
91
+ children: [
92
+ /*#__PURE__*/ (0, $khn83$jsx)("button", {
93
+ className: `${pageNumber <= 1 ? 'rf-invisible' : 'rf-visible'}`,
94
+ onClick: ()=>changePage(-1),
95
+ children: /*#__PURE__*/ (0, $khn83$jsx)((0, $ipfK3.ChevronLeftIcon), {
96
+ className: "rf-h-4",
97
+ color: "#000"
98
+ })
99
+ }),
100
+ /*#__PURE__*/ (0, $khn83$jsxs)("p", {
101
+ className: "rf-text-xl",
102
+ children: [
103
+ pageNumber,
104
+ " / ",
105
+ numberOfPages
106
+ ]
107
+ }),
108
+ /*#__PURE__*/ (0, $khn83$jsx)("button", {
109
+ className: `${pageNumber >= numberOfPages ? 'rf-invisible' : 'rf-visible'}`,
110
+ onClick: ()=>changePage(1),
111
+ children: /*#__PURE__*/ (0, $khn83$jsx)((0, $ipfK3.ChevronRightIcon), {
112
+ className: "rf-h-4",
113
+ color: "#000"
114
+ })
115
+ })
116
+ ]
117
+ }),
118
+ /*#__PURE__*/ (0, $khn83$jsx)((0, $khn83$Document), {
119
+ file: url,
120
+ onLoadSuccess: onDocumentLoadSuccess,
121
+ onLoadError: handleClose,
122
+ children: /*#__PURE__*/ (0, $khn83$jsx)((0, $khn83$Page), {
123
+ pageNumber: pageNumber,
124
+ renderAnnotationLayer: false,
125
+ renderTextLayer: false
126
+ })
127
+ })
128
+ ]
129
+ })
130
+ ]
131
+ });
132
+ };
133
+ var $86f0aba9c8073327$export$2e2bcd8739ae039 = $86f0aba9c8073327$var$PrintingPreview;
134
+
135
+ });
136
+
137
+
138
+ //# sourceMappingURL=PrintingPreview.6d70355b.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,6BAA6B;AAC7B,CAAA,GAAA,YAAI,EAAE,mBAAmB,CAAC,SAAS,GAAG;AAOtC,MAAM,wCAAkB,CAAC,OAAE,GAAG,mBAAE,eAAe,EAAwB;IACrE,MAAM,WAAW,CAAA,GAAA,kBAAU;IAC3B,MAAM,cAAc,CAAA,GAAA,kBAAU,EAAE,CAAC,QAAqB,MAAM,aAAa,CAAC,mBAAmB;IAC7F,MAAM,mBAAmB,CAAA,GAAA,kBAAU,EAAE,CAAC,QAAqB,MAAM,YAAY,CAAC,gBAAgB;IAC9F,MAAM,CAAC,gBAAgB,kBAAkB,GAAG,CAAA,GAAA,eAAO,EAAW;IAC9D,MAAM,CAAC,eAAe,iBAAiB,GAAG,CAAA,GAAA,eAAO,EAAU;IAC3D,MAAM,CAAC,YAAY,cAAc,GAAG,CAAA,GAAA,eAAO,EAAU;IAErD,MAAM,wBAAwB,CAAC,YAAE,QAAQ,EAAwB;QAC/D,iBAAiB;QACjB,kBAAkB;IACpB;IAEA,MAAM,cAAc;QAClB,mBAAmB;QACnB;IACF;IAEA,MAAM,cAAc;QAClB,SAAS,CAAA,GAAA,mBAAW,EAAE,KAAK,CAAC,yBAAyB,CAAC;IACxD;IAEA,MAAM,aAAa,CAAC;QAClB,cAAc,CAAC,UAAY,UAAU;IACvC;IAEA,qBACE,iBAAC;QACC,WAAU;QACV,OAAO;YACL,YAAY,iBAAiB,YAAY;QAC3C;;0BAGA,iBAAC;gBAAI,WAAU;;oBACZ,gCACC,iBAAC;wBAAO,WAAU;wBAAsJ,SAAS;;0CAC/K,gBAAC,CAAA,GAAA,gBAAQ;4BACR,YAAY,MAAM,CAAC,KAAK;;uCAG3B,gBAAC;kCAAK;;kCAER,gBAAC;wBAAO,WAAU;wBAAgH,SAAS;kCACzI,cAAA,gBAAC,CAAA,GAAA,gBAAQ;;;;0BAKb,iBAAC;gBAAI,WAAU;;oBAEZ,gBAAgB,mBACf,iBAAC;wBAAI,WAAU;;0CACb,gBAAC;gCAAO,WAAW,GAAG,cAAc,IAAI,iBAAiB,cAAc;gCAAE,SAAS,IAAM,WAAW;0CACjG,cAAA,gBAAC,CAAA,GAAA,sBAAc;oCAAE,WAAU;oCAAS,OAAM;;;0CAE5C,iBAAC;gCAAE,WAAU;;oCACV;oCAAW;oCAAI;;;0CAElB,gBAAC;gCAAO,WAAW,GAAG,cAAc,gBAAgB,iBAAiB,cAAc;gCAAE,SAAS,IAAM,WAAW;0CAC7G,cAAA,gBAAC,CAAA,GAAA,uBAAe;oCAAE,WAAU;oCAAS,OAAM;;;;;kCAMjD,gBAAC,CAAA,GAAA,eAAO;wBAAE,MAAM;wBAAK,eAAe;wBAAuB,aAAa;kCACtE,cAAA,gBAAC,CAAA,GAAA,WAAG;4BAAE,YAAY;4BAAY,uBAAuB;4BAAO,iBAAiB;;;;;;;AAKvF;IAEA,2CAAe","sources":["src/components/Attachments/PrintingPreview.tsx"],"sourcesContent":["import React, { useState } from 'react'\r\nimport { pdfjs, Document, Page } from 'react-pdf'\r\nimport * as pdfJsWorker from 'pdfjs-dist/build/pdf.worker.js'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { RootState, storeActions } from '../../store'\r\nimport { PrintIcon } from '../Icons/DetailedPOIIcons'\r\nimport { CloseIcon } from '../Icons/Miscellaneous'\r\nimport { ChevronLeftIcon, ChevronRightIcon } from '../Icons/ChevronIcons'\r\n\r\n// Configure react-pdf worker\r\npdfjs.GlobalWorkerOptions.workerSrc = pdfJsWorker\r\n\r\ninterface PrintingPreviewProps {\r\n url: string\r\n printingAllowed?: boolean\r\n}\r\n\r\nconst PrintingPreview = ({ url, printingAllowed }: PrintingPreviewProps): JSX.Element => {\r\n const dispatch = useDispatch()\r\n const translation = useSelector((state: RootState) => state.localeReducer.currentTranslations)\r\n const printingCallback = useSelector((state: RootState) => state.utilsReducer.printingCallback)\r\n const [documentLoaded, setDocumentLoaded] = useState<boolean>(false)\r\n const [numberOfPages, setNumberOfPages] = useState<number>(0)\r\n const [pageNumber, setPageNumber] = useState<number>(1)\r\n\r\n const onDocumentLoadSuccess = ({ numPages }: { numPages: number }): void => {\r\n setNumberOfPages(numPages)\r\n setDocumentLoaded(true)\r\n }\r\n\r\n const handleClick = (): void => {\r\n printingCallback?.(url)\r\n handleClose()\r\n }\r\n\r\n const handleClose = (): void => {\r\n dispatch(storeActions.utils.setModalFullscreenContent(null))\r\n }\r\n\r\n const changePage = (index: number): void => {\r\n setPageNumber((current) => current + index)\r\n }\r\n\r\n return (\r\n <div\r\n className='rf-h-full large-vertical:rf-mt-[20vh] large-vertical:rf-h-1/2 rf-max-w-1/2 large-vertical:rf-max-w-[60%] rf-py-4 rf-flex rf-flex-col rf-gap-4'\r\n style={{\r\n visibility: documentLoaded ? 'visible' : 'hidden'\r\n }}\r\n >\r\n {/* Upper part */}\r\n <div className='rf-grid rf-grid-cols-printingPreview rf-min-h-12 rf-h-12'>\r\n {printingAllowed ? (\r\n <button className='rf-px-4 rf-py-1 rf-h-full rf-justify-self-center rf-flex rf-flex-row rf-items-center rf-gap-2 rf-font-bold rf-text-sm rf-rounded-lg rf-bg-truewhite' onClick={handleClick}>\r\n <PrintIcon />\r\n {translation.common.print}\r\n </button>\r\n ) : (\r\n <div>{'\\u2800'}</div>\r\n )}\r\n <button className='rf-h-full rf-w-12 rf-justify-self-end rf-flex rf-justify-center rf-items-center rf-rounded-lg rf-bg-truewhite' onClick={handleClose}>\r\n <CloseIcon />\r\n </button>\r\n </div>\r\n\r\n {/* Document preview */}\r\n <div className='rf-relative rf-w-full rf-flex rf-flex-col rf-rounded-lg rf-overflow-y-scroll rf-scrollbar-thin'>\r\n {/* Number of pages + navigation between pages */}\r\n {numberOfPages > 1 && (\r\n <div className='rf-w-full rf-px-4 rf-pt-3 rf-pb-2 rf-flex rf-flex-row rf-justify-between rf-items-center rf-bg-truewhite'>\r\n <button className={`${pageNumber <= 1 ? 'rf-invisible' : 'rf-visible'}`} onClick={() => changePage(-1)}>\r\n <ChevronLeftIcon className='rf-h-4' color='#000' />\r\n </button>\r\n <p className='rf-text-xl'>\r\n {pageNumber} / {numberOfPages}\r\n </p>\r\n <button className={`${pageNumber >= numberOfPages ? 'rf-invisible' : 'rf-visible'}`} onClick={() => changePage(1)}>\r\n <ChevronRightIcon className='rf-h-4' color='#000' />\r\n </button>\r\n </div>\r\n )}\r\n\r\n {/* Pdf preview */}\r\n <Document file={url} onLoadSuccess={onDocumentLoadSuccess} onLoadError={handleClose}>\r\n <Page pageNumber={pageNumber} renderAnnotationLayer={false} renderTextLayer={false} />\r\n </Document>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default PrintingPreview\r\n"],"names":[],"version":3,"file":"PrintingPreview.6d70355b.js.map"}
@@ -1,6 +1,7 @@
1
1
  import {jsx as $1JmLi$jsx} from "react/jsx-runtime";
2
2
  import {useState as $1JmLi$useState, useEffect as $1JmLi$useEffect} from "react";
3
3
  import $1JmLi$daviaibodyenginesprite from "@davi-ai/body-engine-sprite";
4
+ import {useDispatch as $1JmLi$useDispatch, useSelector as $1JmLi$useSelector} from "react-redux";
4
5
 
5
6
 
6
7
  function $parcel$defineInteropFlag(a) {
@@ -23,16 +24,17 @@ $parcel$export(module.exports, "default", () => $4af6e295a1fc632c$export$2e2bcd8
23
24
 
24
25
 
25
26
 
26
- var $1Qww3 = parcelRequire("1Qww3");
27
+
28
+ var $8ItUL = parcelRequire("8ItUL");
27
29
 
28
30
  var $4l14W = parcelRequire("4l14W");
29
31
  const $4af6e295a1fc632c$var$SpiritEngineWrapper = ({ agentData: agentData, isSpeaking: isSpeaking, height: height, size: size })=>{
32
+ const dispatch = (0, $1JmLi$useDispatch)();
30
33
  const lastAnimationQueue = (0, $4l14W.default)();
31
- const setCharacterLoaded = (0, $1Qww3.useViewStore)((state)=>state.actions.setCharacterLoaded);
32
34
  const [animationQueue, setAnimationQueue] = (0, $1JmLi$useState)([]);
33
35
  (0, $1JmLi$useEffect)(()=>{
34
36
  // With spirit engine, set the character as loaded once the component is mounted
35
- setCharacterLoaded(true);
37
+ dispatch((0, $8ItUL.storeActions).view.setCharacterLoaded(true));
36
38
  }, []);
37
39
  (0, $1JmLi$useEffect)(()=>{
38
40
  lastAnimationQueue && setAnimationQueue(lastAnimationQueue);
@@ -57,15 +59,14 @@ parcelRegister("4l14W", function(module, exports) {
57
59
  $parcel$export(module.exports, "default", () => $9073d738dd637f53$export$2e2bcd8739ae039);
58
60
 
59
61
 
60
- var $9GPj7 = parcelRequire("9GPj7");
61
62
  function $9073d738dd637f53$export$2e2bcd8739ae039() {
62
- const lastBotActivity = (0, $9GPj7.useActivityStore)((state)=>state.lastBotActivity);
63
+ const lastBotActivity = (0, $1JmLi$useSelector)((state)=>state.activityReducer.lastBotActivity);
63
64
  const [animationQueue, setAnimationQueue] = (0, $1JmLi$useState)();
64
65
  const handleEvent = (e)=>{
65
66
  e.detail && setAnimationQueue(e.detail.queue);
66
67
  };
67
68
  (0, $1JmLi$useEffect)(()=>{
68
- document.addEventListener('sendPlayAnimationEvent', handleEvent);
69
+ document.addEventListener('sendPlayAnimationEvent', (event)=>handleEvent(event));
69
70
  }, []);
70
71
  (0, $1JmLi$useEffect)(()=>{
71
72
  lastBotActivity?.meta?.queue?.length && setAnimationQueue(lastBotActivity.meta.queue);
@@ -79,4 +80,4 @@ function $9073d738dd637f53$export$2e2bcd8739ae039() {
79
80
 
80
81
 
81
82
 
82
- //# sourceMappingURL=SpiritEngineWrapper.1d8db53d.js.map
83
+ //# sourceMappingURL=SpiritEngineWrapper.21ea10d4.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAM,4CAAsB,CAAC,aAAE,SAAS,cAAE,UAAU,UAAE,MAAM,QAAE,IAAI,EAA4B;IAC5F,MAAM,WAAW,CAAA,GAAA,kBAAU;IAC3B,MAAM,qBAAqB,CAAA,GAAA,cAAgB;IAC3C,MAAM,CAAC,gBAAgB,kBAAkB,GAAG,CAAA,GAAA,eAAO,EAAiB,EAAE;IAEtE,CAAA,GAAA,gBAAQ,EAAE;QACR,gFAAgF;QAChF,SAAS,CAAA,GAAA,mBAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC;IAChD,GAAG,EAAE;IAEL,CAAA,GAAA,gBAAQ,EAAE;QACR,sBAAsB,kBAAkB;IAC1C,GAAG;QAAC;KAAmB;IAEvB,qBAAO,gBAAC,CAAA,GAAA,6BAAc;QAAE,SAAQ;QAAU,WAAW;QAAW,QAAQ;QAAQ,MAAM;QAAM,OAAO;QAAY,gBAAgB;QAAgB,mBAAmB;;AACpK;IAEA,2CAAe;;;;;;;;AC5BA;IACb,MAAM,kBAA+C,CAAA,GAAA,kBAAU,EAAE,CAAC,QAAqB,MAAM,eAAe,CAAC,eAAe;IAC5H,MAAM,CAAC,gBAAgB,kBAAkB,GAAG,CAAA,GAAA,eAAO;IAEnD,MAAM,cAAc,CAAC;QACnB,EAAE,MAAM,IAAI,kBAAkB,EAAE,MAAM,CAAC,KAAK;IAC9C;IAEA,CAAA,GAAA,gBAAQ,EAAE;QACR,SAAS,gBAAgB,CAAC,0BAA2B,CAAC,QAAuB,YAAY;IAC3F,GAAG,EAAE;IAEL,CAAA,GAAA,gBAAQ,EAAE;QACR,iBAAiB,MAAM,OAAO,UAAU,kBAAkB,gBAAgB,IAAI,CAAC,KAAK;IACtF,GAAG;QAAC;KAAgB;IAEpB,OAAO;AACT","sources":["src/components/ChatbotAndSubtitles/SpiritEngineWrapper.tsx","src/hooks/useAnimationQueue.ts"],"sourcesContent":["import React, { useEffect, useState } from 'react'\r\nimport ChatbotProvider from '@davi-ai/body-engine-sprite'\r\nimport { useDispatch } from 'react-redux'\r\nimport { storeActions } from '../../store'\r\nimport useAnimationQueue from '../../hooks/useAnimationQueue'\r\nimport { AgentData } from '../../models/types'\r\n\r\ntype SpiritEngineWrapperAgentData = Exclude<AgentData, null>\r\n\r\ninterface SpiritEngineWrapperProps {\r\n agentData: SpiritEngineWrapperAgentData\r\n isSpeaking: boolean\r\n height?: number | string\r\n size?: number | string\r\n}\r\n\r\nconst SpiritEngineWrapper = ({ agentData, isSpeaking, height, size }: SpiritEngineWrapperProps): JSX.Element => {\r\n const dispatch = useDispatch()\r\n const lastAnimationQueue = useAnimationQueue()\r\n const [animationQueue, setAnimationQueue] = useState<Array<string>>([])\r\n\r\n useEffect(() => {\r\n // With spirit engine, set the character as loaded once the component is mounted\r\n dispatch(storeActions.view.setCharacterLoaded(true))\r\n }, [])\r\n\r\n useEffect(() => {\r\n lastAnimationQueue && setAnimationQueue(lastAnimationQueue)\r\n }, [lastAnimationQueue])\r\n\r\n return <ChatbotProvider licence='licence' agentData={agentData} height={height} size={size} speak={isSpeaking} animationQueue={animationQueue} setAnimationQueue={setAnimationQueue} />\r\n}\r\n\r\nexport default SpiritEngineWrapper\r\n","import { useEffect, useState } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { RootState } from '../store'\r\nimport type { RetorikActivity } from '../models/activityTypes'\r\n\r\nexport default function useAnimationQueue(): Array<string> | undefined {\r\n const lastBotActivity: RetorikActivity | undefined = useSelector((state: RootState) => state.activityReducer.lastBotActivity)\r\n const [animationQueue, setAnimationQueue] = useState<Array<string>>()\r\n\r\n const handleEvent = (e: CustomEvent): void => {\r\n e.detail && setAnimationQueue(e.detail.queue)\r\n }\r\n\r\n useEffect(() => {\r\n document.addEventListener('sendPlayAnimationEvent', ((event: CustomEvent) => handleEvent(event)) as EventListener)\r\n }, [])\r\n\r\n useEffect(() => {\r\n lastBotActivity?.meta?.queue?.length && setAnimationQueue(lastBotActivity.meta.queue)\r\n }, [lastBotActivity])\r\n\r\n return animationQueue\r\n}\r\n"],"names":[],"version":3,"file":"SpiritEngineWrapper.21ea10d4.js.map"}
@@ -1,6 +1,7 @@
1
1
  var $euNyu$reactjsxruntime = require("react/jsx-runtime");
2
2
  var $euNyu$react = require("react");
3
3
  var $euNyu$daviaibodyenginesprite = require("@davi-ai/body-engine-sprite");
4
+ var $euNyu$reactredux = require("react-redux");
4
5
 
5
6
 
6
7
  function $parcel$interopDefault(a) {
@@ -36,16 +37,17 @@ $parcel$export(module.exports, "default", () => $6a51e30b393d0aa4$export$2e2bcd8
36
37
 
37
38
 
38
39
 
39
- var $kUiCn = parcelRequire("kUiCn");
40
+
41
+ var $kpW3P = parcelRequire("kpW3P");
40
42
 
41
43
  var $lIFSp = parcelRequire("lIFSp");
42
44
  const $6a51e30b393d0aa4$var$SpiritEngineWrapper = ({ agentData: agentData, isSpeaking: isSpeaking, height: height, size: size })=>{
45
+ const dispatch = (0, $euNyu$reactredux.useDispatch)();
43
46
  const lastAnimationQueue = (0, $lIFSp.default)();
44
- const setCharacterLoaded = (0, $kUiCn.useViewStore)((state)=>state.actions.setCharacterLoaded);
45
47
  const [animationQueue, setAnimationQueue] = (0, $euNyu$react.useState)([]);
46
48
  (0, $euNyu$react.useEffect)(()=>{
47
49
  // With spirit engine, set the character as loaded once the component is mounted
48
- setCharacterLoaded(true);
50
+ dispatch((0, $kpW3P.storeActions).view.setCharacterLoaded(true));
49
51
  }, []);
50
52
  (0, $euNyu$react.useEffect)(()=>{
51
53
  lastAnimationQueue && setAnimationQueue(lastAnimationQueue);
@@ -70,15 +72,14 @@ parcelRegister("lIFSp", function(module, exports) {
70
72
  $parcel$export(module.exports, "default", () => $dc57edc579c17634$export$2e2bcd8739ae039);
71
73
 
72
74
 
73
- var $e53vj = parcelRequire("e53vj");
74
75
  function $dc57edc579c17634$export$2e2bcd8739ae039() {
75
- const lastBotActivity = (0, $e53vj.useActivityStore)((state)=>state.lastBotActivity);
76
+ const lastBotActivity = (0, $euNyu$reactredux.useSelector)((state)=>state.activityReducer.lastBotActivity);
76
77
  const [animationQueue, setAnimationQueue] = (0, $euNyu$react.useState)();
77
78
  const handleEvent = (e)=>{
78
79
  e.detail && setAnimationQueue(e.detail.queue);
79
80
  };
80
81
  (0, $euNyu$react.useEffect)(()=>{
81
- document.addEventListener('sendPlayAnimationEvent', handleEvent);
82
+ document.addEventListener('sendPlayAnimationEvent', (event)=>handleEvent(event));
82
83
  }, []);
83
84
  (0, $euNyu$react.useEffect)(()=>{
84
85
  var _lastBotActivity_meta_queue, _lastBotActivity_meta;
@@ -93,4 +94,4 @@ function $dc57edc579c17634$export$2e2bcd8739ae039() {
93
94
 
94
95
 
95
96
 
96
- //# sourceMappingURL=SpiritEngineWrapper.27e9c120.js.map
97
+ //# sourceMappingURL=SpiritEngineWrapper.39627300.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAM,4CAAsB,CAAC,aAAE,SAAS,cAAE,UAAU,UAAE,MAAM,QAAE,IAAI,EAA4B;IAC5F,MAAM,WAAW,CAAA,GAAA,6BAAU;IAC3B,MAAM,qBAAqB,CAAA,GAAA,cAAgB;IAC3C,MAAM,CAAC,gBAAgB,kBAAkB,GAAG,CAAA,GAAA,qBAAO,EAAiB,EAAE;IAEtE,CAAA,GAAA,sBAAQ,EAAE;QACR,gFAAgF;QAChF,SAAS,CAAA,GAAA,mBAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC;IAChD,GAAG,EAAE;IAEL,CAAA,GAAA,sBAAQ,EAAE;QACR,sBAAsB,kBAAkB;IAC1C,GAAG;QAAC;KAAmB;IAEvB,qBAAO,gCAAC,CAAA,GAAA,uDAAc;QAAE,SAAQ;QAAU,WAAW;QAAW,QAAQ;QAAQ,MAAM;QAAM,OAAO;QAAY,gBAAgB;QAAgB,mBAAmB;;AACpK;IAEA,2CAAe;;;;;;;;AC5BA;IACb,MAAM,kBAA+C,CAAA,GAAA,6BAAU,EAAE,CAAC,QAAqB,MAAM,eAAe,CAAC,eAAe;IAC5H,MAAM,CAAC,gBAAgB,kBAAkB,GAAG,CAAA,GAAA,qBAAO;IAEnD,MAAM,cAAc,CAAC;QACnB,EAAE,MAAM,IAAI,kBAAkB,EAAE,MAAM,CAAC,KAAK;IAC9C;IAEA,CAAA,GAAA,sBAAQ,EAAE;QACR,SAAS,gBAAgB,CAAC,0BAA2B,CAAC,QAAuB,YAAY;IAC3F,GAAG,EAAE;IAEL,CAAA,GAAA,sBAAQ,EAAE;YACR,6BAAA;QAAA,CAAA,4BAAA,uCAAA,wBAAA,gBAAiB,IAAI,cAArB,6CAAA,8BAAA,sBAAuB,KAAK,cAA5B,kDAAA,4BAA8B,MAAM,KAAI,kBAAkB,gBAAgB,IAAI,CAAC,KAAK;IACtF,GAAG;QAAC;KAAgB;IAEpB,OAAO;AACT","sources":["src/components/ChatbotAndSubtitles/SpiritEngineWrapper.tsx","src/hooks/useAnimationQueue.ts"],"sourcesContent":["import React, { useEffect, useState } from 'react'\r\nimport ChatbotProvider from '@davi-ai/body-engine-sprite'\r\nimport { useDispatch } from 'react-redux'\r\nimport { storeActions } from '../../store'\r\nimport useAnimationQueue from '../../hooks/useAnimationQueue'\r\nimport { AgentData } from '../../models/types'\r\n\r\ntype SpiritEngineWrapperAgentData = Exclude<AgentData, null>\r\n\r\ninterface SpiritEngineWrapperProps {\r\n agentData: SpiritEngineWrapperAgentData\r\n isSpeaking: boolean\r\n height?: number | string\r\n size?: number | string\r\n}\r\n\r\nconst SpiritEngineWrapper = ({ agentData, isSpeaking, height, size }: SpiritEngineWrapperProps): JSX.Element => {\r\n const dispatch = useDispatch()\r\n const lastAnimationQueue = useAnimationQueue()\r\n const [animationQueue, setAnimationQueue] = useState<Array<string>>([])\r\n\r\n useEffect(() => {\r\n // With spirit engine, set the character as loaded once the component is mounted\r\n dispatch(storeActions.view.setCharacterLoaded(true))\r\n }, [])\r\n\r\n useEffect(() => {\r\n lastAnimationQueue && setAnimationQueue(lastAnimationQueue)\r\n }, [lastAnimationQueue])\r\n\r\n return <ChatbotProvider licence='licence' agentData={agentData} height={height} size={size} speak={isSpeaking} animationQueue={animationQueue} setAnimationQueue={setAnimationQueue} />\r\n}\r\n\r\nexport default SpiritEngineWrapper\r\n","import { useEffect, useState } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { RootState } from '../store'\r\nimport type { RetorikActivity } from '../models/activityTypes'\r\n\r\nexport default function useAnimationQueue(): Array<string> | undefined {\r\n const lastBotActivity: RetorikActivity | undefined = useSelector((state: RootState) => state.activityReducer.lastBotActivity)\r\n const [animationQueue, setAnimationQueue] = useState<Array<string>>()\r\n\r\n const handleEvent = (e: CustomEvent): void => {\r\n e.detail && setAnimationQueue(e.detail.queue)\r\n }\r\n\r\n useEffect(() => {\r\n document.addEventListener('sendPlayAnimationEvent', ((event: CustomEvent) => handleEvent(event)) as EventListener)\r\n }, [])\r\n\r\n useEffect(() => {\r\n lastBotActivity?.meta?.queue?.length && setAnimationQueue(lastBotActivity.meta.queue)\r\n }, [lastBotActivity])\r\n\r\n return animationQueue\r\n}\r\n"],"names":[],"version":3,"file":"SpiritEngineWrapper.39627300.js.map","sourceRoot":"../"}
@@ -1,6 +1,7 @@
1
1
  var $4gYsi$reactjsxruntime = require("react/jsx-runtime");
2
2
  var $4gYsi$react = require("react");
3
3
  var $4gYsi$daviaireactbodyenginethree = require("@davi-ai/react-bodyengine-three");
4
+ var $4gYsi$reactredux = require("react-redux");
4
5
 
5
6
 
6
7
  function $parcel$interopDefault(a) {
@@ -36,26 +37,22 @@ $parcel$export(module.exports, "default", () => $929a5fce6d871a46$export$2e2bcd8
36
37
 
37
38
 
38
39
 
39
- var $jgaO0 = parcelRequire("jgaO0");
40
40
 
41
- var $6EkQS = parcelRequire("6EkQS");
42
-
43
- var $kUiCn = parcelRequire("kUiCn");
41
+ var $kpW3P = parcelRequire("kpW3P");
44
42
 
45
43
  var $7WHA7 = parcelRequire("7WHA7");
46
44
 
47
45
  var $gp19G = parcelRequire("gp19G");
48
46
  const $929a5fce6d871a46$var$ThreeJsWrapper = ({ agentData: agentData, visible: visible, height: height, size: size, cameraPreset: cameraPreset })=>{
49
- const environmentPreset = (0, $6EkQS.useRetorikStore)((state)=>state.environmentPreset);
50
- const gpuData = (0, $6EkQS.useRetorikStore)((state)=>state.gpuData);
51
- const speaking = (0, $jgaO0.useSpeechStore)((state)=>state.speaking);
52
- const recognitionState = (0, $jgaO0.useSpeechStore)((state)=>state.activeRecognitionState);
53
- const lastRecognitionInterim = (0, $jgaO0.useSpeechStore)((state)=>state.lastRecognitionInterim);
54
- const singleViseme = (0, $jgaO0.useSpeechStore)((state)=>state.singleVisemeAdded);
55
- const multiVisemes = (0, $jgaO0.useSpeechStore)((state)=>state.multiVisemesAdded);
56
- const streamingQueue = (0, $jgaO0.useSpeechStore)((state)=>state.streamingQueue);
57
- const characterLoaded = (0, $kUiCn.useViewStore)((state)=>state.characterLoaded);
58
- const setCharacterLoaded = (0, $kUiCn.useViewStore)((state)=>state.actions.setCharacterLoaded);
47
+ const dispatch = (0, $4gYsi$reactredux.useDispatch)();
48
+ const gpuData = (0, $4gYsi$reactredux.useSelector)((state)=>state.retorikReducer.gpuData);
49
+ const speaking = (0, $4gYsi$reactredux.useSelector)((state)=>state.speechReducer.speaking);
50
+ const recognitionState = (0, $4gYsi$reactredux.useSelector)((state)=>state.speechReducer.activeRecognitionState);
51
+ const lastRecognitionInterim = (0, $4gYsi$reactredux.useSelector)((state)=>state.speechReducer.lastRecognitionInterim);
52
+ const singleViseme = (0, $4gYsi$reactredux.useSelector)((state)=>state.speechReducer.singleVisemeAdded);
53
+ const multiVisemes = (0, $4gYsi$reactredux.useSelector)((state)=>state.speechReducer.multiVisemesAdded);
54
+ const streamingQueue = (0, $4gYsi$reactredux.useSelector)((state)=>state.speechReducer.streamingQueue);
55
+ const characterLoaded = (0, $4gYsi$reactredux.useSelector)((state)=>state.viewReducer.characterLoaded);
59
56
  /**
60
57
  * Use model's source to get the right loader. Default to avaturn loader
61
58
  */ const type = (0, $4gYsi$react.useMemo)(()=>{
@@ -116,7 +113,7 @@ const $929a5fce6d871a46$var$ThreeJsWrapper = ({ agentData: agentData, visible: v
116
113
  type: type,
117
114
  animationsUrl: (agentData === null || agentData === void 0 ? void 0 : agentData.animationsUrl) || 'https://cdn.retorik.ai/bodyengine-three/animations/cc4/female/standing/',
118
115
  gender: (agentData === null || agentData === void 0 ? void 0 : agentData.gender) === 'male' ? 'male' : 'female',
119
- onLoadingCompleted: ()=>setCharacterLoaded(true),
116
+ onLoadingCompleted: ()=>dispatch((0, $kpW3P.storeActions).view.setCharacterLoaded(true)),
120
117
  camera: (0, $4gYsi$daviaireactbodyenginethree.presets)[cameraPreset || 'default'],
121
118
  autoLookAt: true,
122
119
  detectGpuData: gpuData,
@@ -138,4 +135,4 @@ var $929a5fce6d871a46$export$2e2bcd8739ae039 = $929a5fce6d871a46$var$ThreeJsWrap
138
135
  });
139
136
 
140
137
 
141
- //# sourceMappingURL=ThreeJsWrapper.09c689b8.js.map
138
+ //# sourceMappingURL=ThreeJsWrapper.8f15a85b.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAM,uCAAiB,CAAC,aAAE,SAAS,WAAE,OAAO,UAAE,MAAM,QAAE,IAAI,gBAAE,YAAY,EAAuB;IAC7F,MAAM,WAAW,CAAA,GAAA,6BAAU;IAC3B,MAAM,UAAU,CAAA,GAAA,6BAAU,EAAE,CAAC,QAAqB,MAAM,cAAc,CAAC,OAAO;IAC9E,MAAM,WAAW,CAAA,GAAA,6BAAU,EAAE,CAAC,QAAqB,MAAM,aAAa,CAAC,QAAQ;IAC/E,MAAM,mBAAmB,CAAA,GAAA,6BAAU,EAAE,CAAC,QAAqB,MAAM,aAAa,CAAC,sBAAsB;IACrG,MAAM,yBAAyB,CAAA,GAAA,6BAAU,EAAE,CAAC,QAAqB,MAAM,aAAa,CAAC,sBAAsB;IAC3G,MAAM,eAAe,CAAA,GAAA,6BAAU,EAAE,CAAC,QAAqB,MAAM,aAAa,CAAC,iBAAiB;IAC5F,MAAM,eAAe,CAAA,GAAA,6BAAU,EAAE,CAAC,QAAqB,MAAM,aAAa,CAAC,iBAAiB;IAC5F,MAAM,iBAAiB,CAAA,GAAA,6BAAU,EAAE,CAAC,QAAqB,MAAM,aAAa,CAAC,cAAc;IAC3F,MAAM,kBAAkB,CAAA,GAAA,6BAAU,EAAE,CAAC,QAAqB,MAAM,WAAW,CAAC,eAAe;IAE3F;;GAEC,GACD,MAAM,OAAO,CAAA,GAAA,oBAAM,EAAuB;QACxC,IAAI,UAAU,MAAM,EAClB,OAAQ,UAAU,MAAM,CAAC,WAAW;YAClC,KAAK,CAAA,GAAA,qBAAa,EAAE,SAAS;YAC7B,KAAK,CAAA,GAAA,qBAAa,EAAE,YAAY;gBAC9B,OAAO,CAAA,GAAA,8CAAW,EAAE,SAAS;YAC/B,KAAK,CAAA,GAAA,qBAAa,EAAE,GAAG;YACvB,KAAK,CAAA,GAAA,qBAAa,EAAE,GAAG;gBACrB,OAAO,CAAA,GAAA,8CAAW,EAAE,GAAG;YACzB,KAAK,CAAA,GAAA,qBAAa,EAAE,GAAG;YACvB,KAAK,CAAA,GAAA,qBAAa,EAAE,aAAa;gBAC/B,OAAO,CAAA,GAAA,8CAAW,EAAE,GAAG;YACzB,KAAK,CAAA,GAAA,qBAAa,EAAE,OAAO;YAC3B;gBACE,OAAO,CAAA,GAAA,8CAAW,EAAE,OAAO;QAC/B;QAGF,OAAO,CAAA,GAAA,8CAAW,EAAE,OAAO;IAC7B,GAAG;QAAC;KAAU;IAEd,CAAA,GAAA,sBAAQ,EAAE;QACR,gBAAgB,CAAA,GAAA,2CAAQ,EAAE;IAC5B,GAAG;QAAC;KAAa;IAEjB,CAAA,GAAA,sBAAQ,EAAE;QACR,aAAa,MAAM,IAAI,CAAA,GAAA,4CAAS,EAAE;IACpC,GAAG;QAAC;KAAa;IAEjB,CAAA,GAAA,sBAAQ,EAAE;QACR,IAAI,YAAY,eAAe,MAAM,EACnC,CAAA,GAAA,mDAAgB,EAAE,CAAA,GAAA,gDAAa,EAAE,QAAQ;aACpC,IAAI,qBAAqB,CAAA,GAAA,uBAAe,EAAE,MAAM,EACrD,CAAA,GAAA,mDAAgB,EAAE,CAAA,GAAA,gDAAa,EAAE,IAAI;aAChC,IAAI,wBACT,CAAA,GAAA,mDAAgB,EAAE,CAAA,GAAA,gDAAa,EAAE,SAAS;aAE1C,CAAA,GAAA,mDAAgB,EAAE,CAAA,GAAA,gDAAa,EAAE,OAAO;IAE5C,GAAG;QAAC;QAAU;QAAkB;QAAwB;KAAe;IAEvE,CAAA,GAAA,sBAAQ,EAAE;QACR,CAAC,YAAY,CAAA,GAAA,kDAAe;IAC9B,GAAG;QAAC;KAAS;IAEb,qBACE,iCAAC,CAAA,GAAA,sCAAI,EAAE,QAAQ;;0BACb,gCAAC;gBACC,OAAO;oBACL,QAAQ,QAAQ;oBAChB,YAAY,UAAU;oBACtB,YAAY,mBAAmB,UAAU,YAAY;gBACvD;0BAEC,sBACC,gCAAC,CAAA,GAAA,2CAAQ;oBACP,KAAK,UAAU,GAAG;oBAClB,MAAM;oBACN,eAAe,CAAA,sBAAA,gCAAA,UAAW,aAAa,KAAI;oBAC3C,QAAQ,CAAA,sBAAA,gCAAA,UAAW,MAAM,MAAK,SAAS,SAAS;oBAChD,oBAAoB,IAAM,SAAS,CAAA,GAAA,mBAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC;oBACxE,QAAQ,CAAA,GAAA,yCAAM,CAAC,CAAC,gBAAgB,UAAU;oBAC1C,YAAY;oBACZ,eAAe;oBACf,SAAQ;;;YAIb,CAAC,iCACA,gCAAC;gBAAI,WAAU;0BACb,cAAA,gCAAC;oBAAI,WAAU;8BACb,cAAA,gCAAC,CAAA,GAAA,cAAe;;;;;AAM5B;IAEA,2CAAe","sources":["src/components/ChatbotAndSubtitles/ThreeJsWrapper.tsx"],"sourcesContent":["import React, { useEffect, useMemo } from 'react'\r\nimport { Character, CreationTool, setCharacterState, addViseme, setVisemes, flushLipSyncData, CharacterState, presets } from '@davi-ai/react-bodyengine-three'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { RootState, storeActions } from '../../store'\r\nimport { RecognitionState, Source3DEngine } from '../../models/enums'\r\nimport MicrophoneLoader from '../Loader/MicrophoneLoader'\r\n\r\ninterface ThreeJsWrapperAgentData {\r\n url: string\r\n animationsUrl?: string\r\n source?: string\r\n gender: 'male' | 'female' | 'other'\r\n}\r\n\r\ninterface ThreeJsWrapperProps {\r\n agentData: ThreeJsWrapperAgentData\r\n visible: boolean\r\n height?: string | number\r\n size?: string | number\r\n cameraPreset?: keyof typeof presets\r\n}\r\n\r\nconst ThreeJsWrapper = ({ agentData, visible, height, size, cameraPreset }: ThreeJsWrapperProps): JSX.Element => {\r\n const dispatch = useDispatch()\r\n const gpuData = useSelector((state: RootState) => state.retorikReducer.gpuData)\r\n const speaking = useSelector((state: RootState) => state.speechReducer.speaking)\r\n const recognitionState = useSelector((state: RootState) => state.speechReducer.activeRecognitionState)\r\n const lastRecognitionInterim = useSelector((state: RootState) => state.speechReducer.lastRecognitionInterim)\r\n const singleViseme = useSelector((state: RootState) => state.speechReducer.singleVisemeAdded)\r\n const multiVisemes = useSelector((state: RootState) => state.speechReducer.multiVisemesAdded)\r\n const streamingQueue = useSelector((state: RootState) => state.speechReducer.streamingQueue)\r\n const characterLoaded = useSelector((state: RootState) => state.viewReducer.characterLoaded)\r\n\r\n /**\r\n * Use model's source to get the right loader. Default to avaturn loader\r\n */\r\n const type = useMemo<CreationTool | null>(() => {\r\n if (agentData.source) {\r\n switch (agentData.source.toLowerCase()) {\r\n case Source3DEngine.avatarsdk:\r\n case Source3DEngine.avatarsdkbis:\r\n return CreationTool.avatarsdk\r\n case Source3DEngine.cc3:\r\n case Source3DEngine.cc4:\r\n return CreationTool.cc3\r\n case Source3DEngine.rpm:\r\n case Source3DEngine.readyplayerme:\r\n return CreationTool.rpm\r\n case Source3DEngine.avaturn:\r\n default:\r\n return CreationTool.avaturn\r\n }\r\n }\r\n\r\n return CreationTool.avaturn\r\n }, [agentData])\r\n\r\n useEffect(() => {\r\n singleViseme && addViseme(singleViseme)\r\n }, [singleViseme])\r\n\r\n useEffect(() => {\r\n multiVisemes.length && setVisemes(multiVisemes)\r\n }, [multiVisemes])\r\n\r\n useEffect(() => {\r\n if (speaking || streamingQueue.length) {\r\n setCharacterState(CharacterState.speaking)\r\n } else if (recognitionState === RecognitionState.Closed) {\r\n setCharacterState(CharacterState.idle)\r\n } else if (lastRecognitionInterim) {\r\n setCharacterState(CharacterState.listening)\r\n } else {\r\n setCharacterState(CharacterState.waiting)\r\n }\r\n }, [speaking, recognitionState, lastRecognitionInterim, streamingQueue])\r\n\r\n useEffect(() => {\r\n !speaking && flushLipSyncData()\r\n }, [speaking])\r\n\r\n return (\r\n <React.Fragment>\r\n <div\r\n style={{\r\n height: size || '100%',\r\n paddingTop: height || 0,\r\n visibility: characterLoaded && visible ? 'visible' : 'hidden'\r\n }}\r\n >\r\n {type && (\r\n <Character\r\n url={agentData.url}\r\n type={type}\r\n animationsUrl={agentData?.animationsUrl || 'https://cdn.retorik.ai/bodyengine-three/animations/cc4/female/standing/'}\r\n gender={agentData?.gender === 'male' ? 'male' : 'female'}\r\n onLoadingCompleted={() => dispatch(storeActions.view.setCharacterLoaded(true))}\r\n camera={presets[cameraPreset || 'default']}\r\n autoLookAt={true}\r\n detectGpuData={gpuData}\r\n license='fake-license'\r\n />\r\n )}\r\n </div>\r\n {!characterLoaded && (\r\n <div className='rf-absolute rf-top-0 rf-left-0 rf-w-full rf-h-full rf-flex rf-justify-center rf-items-center'>\r\n <div className='rf-w-1/4 rf-aspect-square'>\r\n <MicrophoneLoader />\r\n </div>\r\n </div>\r\n )}\r\n </React.Fragment>\r\n )\r\n}\r\n\r\nexport default ThreeJsWrapper\r\n"],"names":[],"version":3,"file":"ThreeJsWrapper.8f15a85b.js.map","sourceRoot":"../"}
@@ -1,6 +1,7 @@
1
1
  import {jsxs as $313pz$jsxs, jsx as $313pz$jsx} from "react/jsx-runtime";
2
2
  import $313pz$react, {useMemo as $313pz$useMemo, useEffect as $313pz$useEffect} from "react";
3
3
  import {CreationTool as $313pz$CreationTool, addViseme as $313pz$addViseme, setVisemes as $313pz$setVisemes, setCharacterState as $313pz$setCharacterState, CharacterState as $313pz$CharacterState, flushLipSyncData as $313pz$flushLipSyncData, Character as $313pz$Character, presets as $313pz$presets} from "@davi-ai/react-bodyengine-three";
4
+ import {useDispatch as $313pz$useDispatch, useSelector as $313pz$useSelector} from "react-redux";
4
5
 
5
6
 
6
7
  function $parcel$defineInteropFlag(a) {
@@ -23,26 +24,22 @@ $parcel$export(module.exports, "default", () => $22f0b0bb3c6ec1e7$export$2e2bcd8
23
24
 
24
25
 
25
26
 
26
- var $i1rfm = parcelRequire("i1rfm");
27
27
 
28
- var $1x02c = parcelRequire("1x02c");
29
-
30
- var $1Qww3 = parcelRequire("1Qww3");
28
+ var $8ItUL = parcelRequire("8ItUL");
31
29
 
32
30
  var $4ucVo = parcelRequire("4ucVo");
33
31
 
34
32
  var $7MbNn = parcelRequire("7MbNn");
35
33
  const $22f0b0bb3c6ec1e7$var$ThreeJsWrapper = ({ agentData: agentData, visible: visible, height: height, size: size, cameraPreset: cameraPreset })=>{
36
- const environmentPreset = (0, $1x02c.useRetorikStore)((state)=>state.environmentPreset);
37
- const gpuData = (0, $1x02c.useRetorikStore)((state)=>state.gpuData);
38
- const speaking = (0, $i1rfm.useSpeechStore)((state)=>state.speaking);
39
- const recognitionState = (0, $i1rfm.useSpeechStore)((state)=>state.activeRecognitionState);
40
- const lastRecognitionInterim = (0, $i1rfm.useSpeechStore)((state)=>state.lastRecognitionInterim);
41
- const singleViseme = (0, $i1rfm.useSpeechStore)((state)=>state.singleVisemeAdded);
42
- const multiVisemes = (0, $i1rfm.useSpeechStore)((state)=>state.multiVisemesAdded);
43
- const streamingQueue = (0, $i1rfm.useSpeechStore)((state)=>state.streamingQueue);
44
- const characterLoaded = (0, $1Qww3.useViewStore)((state)=>state.characterLoaded);
45
- const setCharacterLoaded = (0, $1Qww3.useViewStore)((state)=>state.actions.setCharacterLoaded);
34
+ const dispatch = (0, $313pz$useDispatch)();
35
+ const gpuData = (0, $313pz$useSelector)((state)=>state.retorikReducer.gpuData);
36
+ const speaking = (0, $313pz$useSelector)((state)=>state.speechReducer.speaking);
37
+ const recognitionState = (0, $313pz$useSelector)((state)=>state.speechReducer.activeRecognitionState);
38
+ const lastRecognitionInterim = (0, $313pz$useSelector)((state)=>state.speechReducer.lastRecognitionInterim);
39
+ const singleViseme = (0, $313pz$useSelector)((state)=>state.speechReducer.singleVisemeAdded);
40
+ const multiVisemes = (0, $313pz$useSelector)((state)=>state.speechReducer.multiVisemesAdded);
41
+ const streamingQueue = (0, $313pz$useSelector)((state)=>state.speechReducer.streamingQueue);
42
+ const characterLoaded = (0, $313pz$useSelector)((state)=>state.viewReducer.characterLoaded);
46
43
  /**
47
44
  * Use model's source to get the right loader. Default to avaturn loader
48
45
  */ const type = (0, $313pz$useMemo)(()=>{
@@ -103,7 +100,7 @@ const $22f0b0bb3c6ec1e7$var$ThreeJsWrapper = ({ agentData: agentData, visible: v
103
100
  type: type,
104
101
  animationsUrl: agentData?.animationsUrl || 'https://cdn.retorik.ai/bodyengine-three/animations/cc4/female/standing/',
105
102
  gender: agentData?.gender === 'male' ? 'male' : 'female',
106
- onLoadingCompleted: ()=>setCharacterLoaded(true),
103
+ onLoadingCompleted: ()=>dispatch((0, $8ItUL.storeActions).view.setCharacterLoaded(true)),
107
104
  camera: (0, $313pz$presets)[cameraPreset || 'default'],
108
105
  autoLookAt: true,
109
106
  detectGpuData: gpuData,
@@ -125,4 +122,4 @@ var $22f0b0bb3c6ec1e7$export$2e2bcd8739ae039 = $22f0b0bb3c6ec1e7$var$ThreeJsWrap
125
122
  });
126
123
 
127
124
 
128
- //# sourceMappingURL=ThreeJsWrapper.7918143f.js.map
125
+ //# sourceMappingURL=ThreeJsWrapper.a46ee0e9.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["src/components/ChatbotAndSubtitles/ThreeJsWrapper.tsx"],"sourcesContent":["import React, { useEffect, useMemo } from 'react'\r\nimport { Character, CreationTool, setCharacterState, addViseme, setVisemes, flushLipSyncData, CharacterState, presets } from '@davi-ai/react-bodyengine-three'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { RootState, storeActions } from '../../store'\r\nimport { RecognitionState, Source3DEngine } from '../../models/enums'\r\nimport MicrophoneLoader from '../Loader/MicrophoneLoader'\r\n\r\ninterface ThreeJsWrapperAgentData {\r\n url: string\r\n animationsUrl?: string\r\n source?: string\r\n gender: 'male' | 'female' | 'other'\r\n}\r\n\r\ninterface ThreeJsWrapperProps {\r\n agentData: ThreeJsWrapperAgentData\r\n visible: boolean\r\n height?: string | number\r\n size?: string | number\r\n cameraPreset?: keyof typeof presets\r\n}\r\n\r\nconst ThreeJsWrapper = ({ agentData, visible, height, size, cameraPreset }: ThreeJsWrapperProps): JSX.Element => {\r\n const dispatch = useDispatch()\r\n const gpuData = useSelector((state: RootState) => state.retorikReducer.gpuData)\r\n const speaking = useSelector((state: RootState) => state.speechReducer.speaking)\r\n const recognitionState = useSelector((state: RootState) => state.speechReducer.activeRecognitionState)\r\n const lastRecognitionInterim = useSelector((state: RootState) => state.speechReducer.lastRecognitionInterim)\r\n const singleViseme = useSelector((state: RootState) => state.speechReducer.singleVisemeAdded)\r\n const multiVisemes = useSelector((state: RootState) => state.speechReducer.multiVisemesAdded)\r\n const streamingQueue = useSelector((state: RootState) => state.speechReducer.streamingQueue)\r\n const characterLoaded = useSelector((state: RootState) => state.viewReducer.characterLoaded)\r\n\r\n /**\r\n * Use model's source to get the right loader. Default to avaturn loader\r\n */\r\n const type = useMemo<CreationTool | null>(() => {\r\n if (agentData.source) {\r\n switch (agentData.source.toLowerCase()) {\r\n case Source3DEngine.avatarsdk:\r\n case Source3DEngine.avatarsdkbis:\r\n return CreationTool.avatarsdk\r\n case Source3DEngine.cc3:\r\n case Source3DEngine.cc4:\r\n return CreationTool.cc3\r\n case Source3DEngine.rpm:\r\n case Source3DEngine.readyplayerme:\r\n return CreationTool.rpm\r\n case Source3DEngine.avaturn:\r\n default:\r\n return CreationTool.avaturn\r\n }\r\n }\r\n\r\n return CreationTool.avaturn\r\n }, [agentData])\r\n\r\n useEffect(() => {\r\n singleViseme && addViseme(singleViseme)\r\n }, [singleViseme])\r\n\r\n useEffect(() => {\r\n multiVisemes.length && setVisemes(multiVisemes)\r\n }, [multiVisemes])\r\n\r\n useEffect(() => {\r\n if (speaking || streamingQueue.length) {\r\n setCharacterState(CharacterState.speaking)\r\n } else if (recognitionState === RecognitionState.Closed) {\r\n setCharacterState(CharacterState.idle)\r\n } else if (lastRecognitionInterim) {\r\n setCharacterState(CharacterState.listening)\r\n } else {\r\n setCharacterState(CharacterState.waiting)\r\n }\r\n }, [speaking, recognitionState, lastRecognitionInterim, streamingQueue])\r\n\r\n useEffect(() => {\r\n !speaking && flushLipSyncData()\r\n }, [speaking])\r\n\r\n return (\r\n <React.Fragment>\r\n <div\r\n style={{\r\n height: size || '100%',\r\n paddingTop: height || 0,\r\n visibility: characterLoaded && visible ? 'visible' : 'hidden'\r\n }}\r\n >\r\n {type && (\r\n <Character\r\n url={agentData.url}\r\n type={type}\r\n animationsUrl={agentData?.animationsUrl || 'https://cdn.retorik.ai/bodyengine-three/animations/cc4/female/standing/'}\r\n gender={agentData?.gender === 'male' ? 'male' : 'female'}\r\n onLoadingCompleted={() => dispatch(storeActions.view.setCharacterLoaded(true))}\r\n camera={presets[cameraPreset || 'default']}\r\n autoLookAt={true}\r\n detectGpuData={gpuData}\r\n license='fake-license'\r\n />\r\n )}\r\n </div>\r\n {!characterLoaded && (\r\n <div className='rf-absolute rf-top-0 rf-left-0 rf-w-full rf-h-full rf-flex rf-justify-center rf-items-center'>\r\n <div className='rf-w-1/4 rf-aspect-square'>\r\n <MicrophoneLoader />\r\n </div>\r\n </div>\r\n )}\r\n </React.Fragment>\r\n )\r\n}\r\n\r\nexport default ThreeJsWrapper\r\n"],"names":[],"version":3,"file":"ThreeJsWrapper.a46ee0e9.js.map"}