@gamelearn/arcade-components 1.1.4 → 1.2.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 (26) hide show
  1. package/dist/components/arcade-render/background/index.js +24 -0
  2. package/dist/components/arcade-render/background/scene-elements/customGeometry/index.js +46 -0
  3. package/dist/components/arcade-render/background/scene-elements/index.js +106 -0
  4. package/dist/components/arcade-render/element/AnimateElement.js +136 -0
  5. package/dist/components/arcade-render/element/BoundingBox.js +65 -0
  6. package/dist/components/arcade-render/element/Projection.js +38 -0
  7. package/dist/components/arcade-render/element/index.js +163 -0
  8. package/dist/components/arcade-render/elements-list/ClickableArea.js +94 -0
  9. package/dist/components/arcade-render/elements-list/Poster.js +92 -0
  10. package/dist/components/arcade-render/elements-list/index.js +165 -0
  11. package/dist/components/arcade-render/light/index.js +35 -0
  12. package/dist/components/arcade-render/light/useLight.js +62 -0
  13. package/dist/components/arcade-render/loading/Loading.js +54 -0
  14. package/dist/components/arcade-render/loading/LoadingLogic.js +56 -0
  15. package/dist/components/arcade-render/loading/index.js +13 -0
  16. package/dist/components/arcade-render/mocks/index.js +32 -0
  17. package/dist/components/arcade-render/scene/ConfigController.js +68 -0
  18. package/dist/components/arcade-render/scene/index.js +129 -0
  19. package/dist/components/arcade-render/scene/useCameraPan.js +115 -0
  20. package/dist/components/conversational-pro-component/components/ConversationalProComponent.js +8 -13
  21. package/dist/components/dialog-component/components/DialogComponent.js +10 -16
  22. package/dist/components/hanged-puzzle-component/components/HangedPuzzleComponent.js +27 -9
  23. package/dist/components/index.js +56 -0
  24. package/dist/components/login-puzzle-component/components/LoginPuzzleComponent.js +1 -3
  25. package/dist/components/video-visor/components/VideoVisor.js +0 -1
  26. package/package.json +1 -1
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ var _fiber = require("@react-three/fiber");
11
+
12
+ var _useCameraPan = _interopRequireDefault(require("./useCameraPan"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
+
18
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
+
20
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
21
+
22
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
23
+
24
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
25
+
26
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
27
+
28
+ var ConfigController = function ConfigController(_ref) {
29
+ var current = _ref.current;
30
+
31
+ var _useThree = (0, _fiber.useThree)(function (state) {
32
+ return [state.gl, state.scene, state.invalidate];
33
+ }),
34
+ _useThree2 = _slicedToArray(_useThree, 3),
35
+ stateGl = _useThree2[0],
36
+ stateScene = _useThree2[1],
37
+ invalidate = _useThree2[2];
38
+
39
+ (0, _useCameraPan.default)(current.lookingSide);
40
+ (0, _fiber.useFrame)(function (_ref2) {
41
+ var gl = _ref2.gl,
42
+ scene = _ref2.scene,
43
+ camera = _ref2.camera;
44
+ gl.render(scene, camera);
45
+
46
+ if (!current.animate) {
47
+ invalidate();
48
+ }
49
+ }, 1); // settings
50
+
51
+ (0, _react.useEffect)(function () {
52
+ stateGl.shadowMap.enabled = current.shadows;
53
+ stateGl.shadowMap.needsUpdate = true;
54
+ stateScene.traverse(function (node) {
55
+ if (node.isMesh) {
56
+ node.material.needsUpdate = true;
57
+ }
58
+ });
59
+
60
+ if (!current.animate) {
61
+ invalidate();
62
+ }
63
+ }, [stateGl, stateScene, current, invalidate]);
64
+ return null;
65
+ };
66
+
67
+ var _default = ConfigController;
68
+ exports.default = _default;
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _fiber = require("@react-three/fiber");
13
+
14
+ var _drei = require("@react-three/drei");
15
+
16
+ var _loading = _interopRequireDefault(require("../loading"));
17
+
18
+ var _ConfigController = _interopRequireDefault(require("./ConfigController"));
19
+
20
+ var _LoadingLogic = require("../loading/LoadingLogic");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
28
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
29
+
30
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
31
+
32
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
33
+
34
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
35
+
36
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
37
+
38
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
39
+
40
+ var Scene = function Scene(_ref) {
41
+ var _ref$sceneChanged = _ref.sceneChanged,
42
+ sceneChanged = _ref$sceneChanged === void 0 ? false : _ref$sceneChanged,
43
+ _ref$hasControls = _ref.hasControls,
44
+ hasControls = _ref$hasControls === void 0 ? false : _ref$hasControls,
45
+ _ref$has3Stats = _ref.has3Stats,
46
+ has3Stats = _ref$has3Stats === void 0 ? false : _ref$has3Stats,
47
+ _ref$loadingText = _ref.loadingText,
48
+ loadingText = _ref$loadingText === void 0 ? '' : _ref$loadingText,
49
+ _ref$toggleShadows = _ref.toggleShadows,
50
+ toggleShadows = _ref$toggleShadows === void 0 ? true : _ref$toggleShadows,
51
+ _ref$lodSettings = _ref.lodSettings,
52
+ lodSettings = _ref$lodSettings === void 0 ? {} : _ref$lodSettings,
53
+ _ref$onLoadFinish = _ref.onLoadFinish,
54
+ onLoadFinish = _ref$onLoadFinish === void 0 ? function () {} : _ref$onLoadFinish,
55
+ _ref$stopAnimate = _ref.stopAnimate,
56
+ stopAnimate = _ref$stopAnimate === void 0 ? false : _ref$stopAnimate,
57
+ lookingSide = _ref.lookingSide,
58
+ children = _ref.children;
59
+
60
+ var _useState = (0, _react.useState)(false),
61
+ _useState2 = _slicedToArray(_useState, 2),
62
+ showLoad = _useState2[0],
63
+ setShowLoad = _useState2[1];
64
+
65
+ var orbit = (0, _react.useRef)();
66
+
67
+ var handleOnCreate = function handleOnCreate(_ref2) {
68
+ var gl = _ref2.gl,
69
+ raycaster = _ref2.raycaster,
70
+ camera = _ref2.camera;
71
+ raycaster.layers.set(1);
72
+ gl.outputEncoding = 3001;
73
+ gl.gammaFactor = 2.2;
74
+ gl.setClearColor(0xcccccc);
75
+ gl.setPixelRatio(window.devicePixelRatio);
76
+ gl.setSize(window.innerWidth, window.innerHeight);
77
+ gl.physicallyCorrectLights = true;
78
+ camera.layers.enableAll();
79
+ };
80
+
81
+ var onFinish = function onFinish() {
82
+ onLoadFinish();
83
+ setShowLoad(false);
84
+ };
85
+
86
+ (0, _react.useEffect)(function () {
87
+ if (sceneChanged) {
88
+ setShowLoad(true);
89
+ }
90
+ }, [sceneChanged]);
91
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_fiber.Canvas, {
92
+ className: "main-canvas",
93
+ style: {
94
+ width: '100%',
95
+ height: '100vh'
96
+ },
97
+ resize: {
98
+ scroll: false
99
+ },
100
+ mode: "concurrent",
101
+ flat: true,
102
+ shadows: toggleShadows,
103
+ frameloop: "demand",
104
+ onCreated: handleOnCreate,
105
+ tabIndex: 0
106
+ }, /*#__PURE__*/_react.default.createElement(_ConfigController.default, {
107
+ current: {
108
+ shadows: toggleShadows,
109
+ animate: stopAnimate,
110
+ lookingSide: lookingSide
111
+ }
112
+ }), /*#__PURE__*/_react.default.createElement(_react.Suspense, {
113
+ fallback: /*#__PURE__*/_react.default.createElement(_loading.default, {
114
+ text: loadingText
115
+ })
116
+ }, showLoad && /*#__PURE__*/_react.default.createElement(_LoadingLogic.LoadingLogic, {
117
+ onFinish: onFinish,
118
+ lodSettings: lodSettings
119
+ }), children, /*#__PURE__*/_react.default.createElement(_drei.Preload, {
120
+ all: true
121
+ })), has3Stats && /*#__PURE__*/_react.default.createElement(_drei.Stats, null), hasControls && /*#__PURE__*/_react.default.createElement(_drei.OrbitControls, {
122
+ ref: orbit
123
+ })), /*#__PURE__*/_react.default.createElement("div", {
124
+ id: "elements-projection"
125
+ }));
126
+ };
127
+
128
+ var _default = Scene;
129
+ exports.default = _default;
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _fiber = require("@react-three/fiber");
9
+
10
+ var _react = require("react");
11
+
12
+ var _three = require("three");
13
+
14
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
15
+
16
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+
18
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
+
20
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
21
+
22
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
23
+
24
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
25
+
26
+ var STD_RESOLUTION = 16 / 9;
27
+ var MOTION_LIMITER = 3.5;
28
+ var SPEED = 50;
29
+ var quad = new _three.Quaternion();
30
+ var yAxis = new _three.Vector3(0, 1, 0);
31
+
32
+ var rotateQuatY = function rotateQuatY(current, amount) {
33
+ var result = current.clone();
34
+ quad.setFromAxisAngle(yAxis, amount);
35
+ return result.multiply(quad);
36
+ };
37
+
38
+ var useCameraPan = function useCameraPan(lookingSide) {
39
+ var _useState = (0, _react.useState)(false),
40
+ _useState2 = _slicedToArray(_useState, 2),
41
+ cameraLoaded = _useState2[0],
42
+ setCameraLoaded = _useState2[1];
43
+
44
+ var movingCamera = (0, _react.useRef)(false);
45
+
46
+ var _useThree = (0, _fiber.useThree)(function (state) {
47
+ return [state.camera, state.viewport];
48
+ }),
49
+ _useThree2 = _slicedToArray(_useThree, 2),
50
+ camera = _useThree2[0],
51
+ viewport = _useThree2[1];
52
+
53
+ var cameraRotation = (0, _react.useRef)({
54
+ left: camera.quaternion,
55
+ center: camera.quaternion,
56
+ right: camera.quaternion
57
+ });
58
+ var setCameraRotationView = (0, _react.useCallback)(function () {
59
+ if (viewport.aspect >= STD_RESOLUTION) {
60
+ cameraRotation.current = {
61
+ left: camera.quaternion,
62
+ center: camera.quaternion,
63
+ right: camera.quaternion
64
+ };
65
+ return;
66
+ }
67
+
68
+ var threshold = (STD_RESOLUTION - viewport.aspect) / MOTION_LIMITER;
69
+
70
+ if (camera.rotation) {
71
+ cameraRotation.current = {
72
+ center: camera.quaternion.clone(),
73
+ left: rotateQuatY(camera.quaternion, threshold),
74
+ right: rotateQuatY(camera.quaternion, -threshold)
75
+ };
76
+ movingCamera.current = true;
77
+ }
78
+ }, [camera, viewport.aspect]);
79
+ var moveCamera = (0, _react.useCallback)(function (delta) {
80
+ var goal = cameraRotation.current[lookingSide];
81
+
82
+ if (camera.quaternion && goal) {
83
+ if (!camera.quaternion.equals(goal)) {
84
+ camera.quaternion.rotateTowards(goal, delta * SPEED);
85
+ } else {
86
+ movingCamera.current = false;
87
+ }
88
+ }
89
+ }, [camera, lookingSide]);
90
+ (0, _fiber.useFrame)(function (_ref) {
91
+ var clock = _ref.clock;
92
+
93
+ if (movingCamera.current) {
94
+ moveCamera(clock.getDelta());
95
+ }
96
+ }, 1);
97
+ (0, _react.useEffect)(function () {
98
+ if (camera.defaultCamera) {
99
+ setCameraLoaded(true);
100
+ }
101
+ }, [camera]);
102
+ (0, _react.useEffect)(function () {
103
+ if (cameraLoaded) {
104
+ movingCamera.current = true;
105
+ }
106
+ }, [lookingSide, cameraLoaded]);
107
+ (0, _react.useEffect)(function () {
108
+ if (cameraLoaded) {
109
+ setCameraRotationView();
110
+ }
111
+ }, [viewport, cameraLoaded, setCameraRotationView]);
112
+ };
113
+
114
+ var _default = useCameraPan;
115
+ exports.default = _default;
@@ -68,7 +68,6 @@ var ConversationProViewer = function ConversationProViewer(_ref) {
68
68
  finished = _useState4[0],
69
69
  setFinished = _useState4[1];
70
70
 
71
- var emitEventRef = (0, _react.useRef)(emitEvent);
72
71
  var backgroundImage = (background === null || background === void 0 ? void 0 : (_background$img = background.img) === null || _background$img === void 0 ? void 0 : _background$img.url) || null;
73
72
  var currentLineData = lines[currentLine];
74
73
  var voiceOverSlots = [];
@@ -76,11 +75,11 @@ var ConversationProViewer = function ConversationProViewer(_ref) {
76
75
  decision = currentLineData.decision;
77
76
  var isFlex = currentLineData.flex;
78
77
  var translate = (0, _react.useCallback)(function (id) {
79
- return emitEventRef.current({
78
+ return emitEvent({
80
79
  type: 'translate',
81
80
  payload: id
82
81
  });
83
- }, []);
82
+ }, [emitEvent]);
84
83
  var getCurrentMessage = (0, _react.useCallback)(function () {
85
84
  if (voiceOver) {
86
85
  return currentLineData;
@@ -122,13 +121,13 @@ var ConversationProViewer = function ConversationProViewer(_ref) {
122
121
  return !decision ? getCurrentMessage() : {};
123
122
  }, [getCurrentMessage, decision]);
124
123
  var playSpeech = (0, _react.useCallback)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
125
- var payload, speechUrl;
124
+ var payload;
126
125
  return regeneratorRuntime.wrap(function _callee$(_context) {
127
126
  while (1) {
128
127
  switch (_context.prev = _context.next) {
129
128
  case 0:
130
129
  if (!(currentLineData.voice.id && currentMessage)) {
131
- _context.next = 7;
130
+ _context.next = 5;
132
131
  break;
133
132
  }
134
133
 
@@ -138,27 +137,23 @@ var ConversationProViewer = function ConversationProViewer(_ref) {
138
137
  };
139
138
 
140
139
  if (!(payload.voiceId && payload.text)) {
141
- _context.next = 7;
140
+ _context.next = 5;
142
141
  break;
143
142
  }
144
143
 
145
144
  _context.next = 5;
146
- return emitEventRef.current({
145
+ return emitEvent({
147
146
  type: 'playSpeech',
148
147
  payload: payload
149
148
  });
150
149
 
151
150
  case 5:
152
- speechUrl = _context.sent;
153
- playSound(speechUrl);
154
-
155
- case 7:
156
151
  case "end":
157
152
  return _context.stop();
158
153
  }
159
154
  }
160
155
  }, _callee);
161
- })), [currentLineData.voice, currentMessage, getVoice, playSound]); // Recupera la antigua linea de la conversacion para conservar los personajes en voice-over
156
+ })), [currentLineData.voice, currentMessage, emitEvent, getVoice]); // Recupera la antigua linea de la conversacion para conservar los personajes en voice-over
162
157
 
163
158
  var leftWithSlots = lines.slice(0, currentLine + 1).reverse().find(function (line) {
164
159
  return line.slots;
@@ -244,7 +239,7 @@ var ConversationProViewer = function ConversationProViewer(_ref) {
244
239
  setCurrentLine(line + 1);
245
240
  } else {
246
241
  setFinished(true);
247
- emitEventRef.current({
242
+ emitEvent({
248
243
  type: 'success'
249
244
  });
250
245
  }
@@ -94,8 +94,6 @@ var DialogComponent = function DialogComponent(_ref) {
94
94
  currentMessage = _useState6[0],
95
95
  setCurrentMessage = _useState6[1];
96
96
 
97
- var emitRef = (0, _react.useRef)(emitEvent);
98
-
99
97
  var _useThree = (0, _fiber.useThree)(function (state) {
100
98
  return [state.camera, state.scene];
101
99
  }),
@@ -125,11 +123,11 @@ var DialogComponent = function DialogComponent(_ref) {
125
123
  var lastLine = lines[line - 1];
126
124
  var lastSet = (0, _react.useRef)(false);
127
125
  var translate = (0, _react.useCallback)(function (id) {
128
- return emitRef.current({
126
+ return emitEvent({
129
127
  type: 'translate',
130
128
  payload: id
131
129
  });
132
- }, []);
130
+ }, [emitEvent]);
133
131
  var getVoice = (0, _react.useCallback)(function (_ref2) {
134
132
  var id = _ref2.id,
135
133
  _ref2$type = _ref2.type,
@@ -150,13 +148,13 @@ var DialogComponent = function DialogComponent(_ref) {
150
148
  return null;
151
149
  }, [translate]);
152
150
  var playSpeech = (0, _react.useCallback)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
153
- var payload, speechUrl;
151
+ var payload;
154
152
  return regeneratorRuntime.wrap(function _callee$(_context) {
155
153
  while (1) {
156
154
  switch (_context.prev = _context.next) {
157
155
  case 0:
158
156
  if (!currentLine.voice.id) {
159
- _context.next = 7;
157
+ _context.next = 5;
160
158
  break;
161
159
  }
162
160
 
@@ -166,27 +164,23 @@ var DialogComponent = function DialogComponent(_ref) {
166
164
  };
167
165
 
168
166
  if (!(payload.voiceId && payload.text)) {
169
- _context.next = 7;
167
+ _context.next = 5;
170
168
  break;
171
169
  }
172
170
 
173
171
  _context.next = 5;
174
- return emitRef.current({
172
+ return emitEvent({
175
173
  type: 'playSpeech',
176
174
  payload: payload
177
175
  });
178
176
 
179
177
  case 5:
180
- speechUrl = _context.sent;
181
- playSound(speechUrl);
182
-
183
- case 7:
184
178
  case "end":
185
179
  return _context.stop();
186
180
  }
187
181
  }
188
182
  }, _callee);
189
- })), [currentLine.voice, getVoice, currentMessage.text, playSound]);
183
+ })), [currentLine.voice, getVoice, currentMessage.text, emitEvent]);
190
184
  var getCurrentVisible = (0, _react.useCallback)(function (uid) {
191
185
  var object;
192
186
  scene.traverseVisible(function (node) {
@@ -363,7 +357,7 @@ var DialogComponent = function DialogComponent(_ref) {
363
357
  head.getWorldPosition(target.position);
364
358
  target.applyQuaternion(camera.quaternion);
365
359
  target.translateX(1.25);
366
- target.translateY(3);
360
+ target.translateY(2);
367
361
  messagePosition.current = {
368
362
  pos: target.position.toArray(),
369
363
  child: head,
@@ -501,7 +495,7 @@ var DialogComponent = function DialogComponent(_ref) {
501
495
  animationTarget.current.applyQuaternion(cam.quaternion);
502
496
  }
503
497
 
504
- animationTarget.current.translateX(12);
498
+ animationTarget.current.translateX(10);
505
499
  animationTarget.current.translateY(-5);
506
500
  animationTarget.current.translateZ(30);
507
501
  }
@@ -545,7 +539,7 @@ var DialogComponent = function DialogComponent(_ref) {
545
539
  disableBackground: true
546
540
  },
547
541
  onFinish: nextLine,
548
- emitEvent: emitRef.current,
542
+ emitEvent: emitEvent,
549
543
  soundActions: soundActions
550
544
  });
551
545
 
@@ -49,7 +49,9 @@ var MAX_POOL_LETTERS = 26;
49
49
  var MAX_EXTRA_LETTERS = 8;
50
50
 
51
51
  var AnswerPanel = function AnswerPanel(_ref) {
52
- var answer = _ref.answer;
52
+ var answer = _ref.answer,
53
+ _ref$show = _ref.show,
54
+ show = _ref$show === void 0 ? false : _ref$show;
53
55
  var words = [];
54
56
  var wordIndex = 0;
55
57
  answer.forEach(function (a) {
@@ -68,7 +70,12 @@ var AnswerPanel = function AnswerPanel(_ref) {
68
70
  key: "".concat(word + index),
69
71
  className: "puzzle--hanged__word",
70
72
  "data-testid": "result-".concat(index)
71
- }, word.filter(function (_ref2) {
73
+ }, show ? word.map(function (char, i) {
74
+ return /*#__PURE__*/_react.default.createElement("span", {
75
+ key: "".concat(char + i),
76
+ className: "puzzle--hanged__letter active"
77
+ }, char);
78
+ }) : word.filter(function (_ref2) {
72
79
  var char = _ref2.char;
73
80
  return char !== ' ';
74
81
  }).map(function (_ref3, i) {
@@ -133,6 +140,11 @@ var HangedPuzzleComponent = function HangedPuzzleComponent(_ref4) {
133
140
  accRewards = _useState12[0],
134
141
  setRewards = _useState12[1];
135
142
 
143
+ var _useState13 = (0, _react.useState)(false),
144
+ _useState14 = _slicedToArray(_useState13, 2),
145
+ showCorrectSolution = _useState14[0],
146
+ setCorrectSolution = _useState14[1];
147
+
136
148
  var translatedAnswer = answer.toUpperCase().split('');
137
149
  var answerPanel = translatedAnswer.filter(function (char) {
138
150
  return (0, _utils.restrictCharacters)(char, 'and');
@@ -388,12 +400,15 @@ var HangedPuzzleComponent = function HangedPuzzleComponent(_ref4) {
388
400
  }
389
401
 
390
402
  setResolveAction(function () {
391
- var rewardsData = [].concat(_toConsumableArray(accRewards), _toConsumableArray(info.resolve.rewards));
392
- emitEvent({
393
- type: 'hidePuzzleButtons',
394
- payload: false
395
- });
396
- setShowPoints(rewardsData);
403
+ setCorrectSolution(true);
404
+ setTimeout(function () {
405
+ var rewardsData = [].concat(_toConsumableArray(accRewards), _toConsumableArray(info.resolve.rewards));
406
+ emitEvent({
407
+ type: 'hidePuzzleButtons',
408
+ payload: false
409
+ });
410
+ setShowPoints(rewardsData);
411
+ }, 2000);
397
412
  });
398
413
  }, [setHiddenAnswer, mounted, answer, setResolveAction, emitEvent, accRewards, info.resolve.rewards, setShowPoints]);
399
414
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -416,7 +431,10 @@ var HangedPuzzleComponent = function HangedPuzzleComponent(_ref4) {
416
431
  }, question), /*#__PURE__*/_react.default.createElement("div", {
417
432
  className: "puzzle--hanged__solution ".concat(resolvedClass),
418
433
  "data-testid": "".concat(resolvedClass)
419
- }, /*#__PURE__*/_react.default.createElement(AnswerPanel, {
434
+ }, showCorrectSolution ? /*#__PURE__*/_react.default.createElement(AnswerPanel, {
435
+ answer: answer.split(''),
436
+ show: true
437
+ }) : /*#__PURE__*/_react.default.createElement(AnswerPanel, {
420
438
  answer: resolvedAnswer
421
439
  })), /*#__PURE__*/_react.default.createElement("div", {
422
440
  className: "puzzle--hanged__keyboard"
@@ -5,6 +5,12 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ Object.defineProperty(exports, "AnimateElement", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _AnimateElement.default;
12
+ }
13
+ });
8
14
  Object.defineProperty(exports, "AnimationComponent", {
9
15
  enumerable: true,
10
16
  get: function get() {
@@ -17,6 +23,12 @@ Object.defineProperty(exports, "AutoEvaluationComponent", {
17
23
  return _autoEvaluationComponent.default;
18
24
  }
19
25
  });
26
+ Object.defineProperty(exports, "Background", {
27
+ enumerable: true,
28
+ get: function get() {
29
+ return _background.default;
30
+ }
31
+ });
20
32
  Object.defineProperty(exports, "CardsSelectorPuzzleComponent", {
21
33
  enumerable: true,
22
34
  get: function get() {
@@ -35,6 +47,12 @@ Object.defineProperty(exports, "ChainedImageClickPuzzleComponent", {
35
47
  return _chainedImageClickPuzzleComponent.default;
36
48
  }
37
49
  });
50
+ Object.defineProperty(exports, "ClickableArea", {
51
+ enumerable: true,
52
+ get: function get() {
53
+ return _ClickableArea.default;
54
+ }
55
+ });
38
56
  Object.defineProperty(exports, "ComicComponent", {
39
57
  enumerable: true,
40
58
  get: function get() {
@@ -77,6 +95,18 @@ Object.defineProperty(exports, "DragItemPuzzleComponent", {
77
95
  return _dragItemPuzzleComponent.default;
78
96
  }
79
97
  });
98
+ Object.defineProperty(exports, "Element", {
99
+ enumerable: true,
100
+ get: function get() {
101
+ return _element.default;
102
+ }
103
+ });
104
+ Object.defineProperty(exports, "ElementList", {
105
+ enumerable: true,
106
+ get: function get() {
107
+ return _elementsList.default;
108
+ }
109
+ });
80
110
  Object.defineProperty(exports, "FrameImageClickComponent", {
81
111
  enumerable: true,
82
112
  get: function get() {
@@ -161,6 +191,18 @@ Object.defineProperty(exports, "PdfVisor", {
161
191
  return _pdfComponent.PdfVisor;
162
192
  }
163
193
  });
194
+ Object.defineProperty(exports, "Poster", {
195
+ enumerable: true,
196
+ get: function get() {
197
+ return _Poster.default;
198
+ }
199
+ });
200
+ Object.defineProperty(exports, "Scene", {
201
+ enumerable: true,
202
+ get: function get() {
203
+ return _scene.default;
204
+ }
205
+ });
164
206
  Object.defineProperty(exports, "SurveyComponent", {
165
207
  enumerable: true,
166
208
  get: function get() {
@@ -222,6 +264,20 @@ Object.defineProperty(exports, "ZoomTest", {
222
264
  }
223
265
  });
224
266
 
267
+ var _scene = _interopRequireDefault(require("./arcade-render/scene"));
268
+
269
+ var _elementsList = _interopRequireDefault(require("./arcade-render/elements-list"));
270
+
271
+ var _ClickableArea = _interopRequireDefault(require("./arcade-render/elements-list/ClickableArea"));
272
+
273
+ var _Poster = _interopRequireDefault(require("./arcade-render/elements-list/Poster"));
274
+
275
+ var _background = _interopRequireDefault(require("./arcade-render/background"));
276
+
277
+ var _element = _interopRequireDefault(require("./arcade-render/element"));
278
+
279
+ var _AnimateElement = _interopRequireDefault(require("./arcade-render/element/AnimateElement"));
280
+
225
281
  var _noticeComponent = _interopRequireDefault(require("./notice-component"));
226
282
 
227
283
  var _inventoryItem = _interopRequireDefault(require("./inventory-item"));
@@ -154,11 +154,10 @@ var LoginPuzzleComponent = function LoginPuzzleComponent(_ref) {
154
154
  };
155
155
 
156
156
  (0, _react.useEffect)(function () {
157
- var timeout;
158
157
  setResolveAction(function () {
159
158
  var rewardsData = [].concat(_toConsumableArray(accRewards), _toConsumableArray(info.resolve.rewards));
160
159
  setCorrectSolution(true);
161
- timeout = setTimeout(function () {
160
+ setTimeout(function () {
162
161
  emitEvent({
163
162
  type: 'hidePuzzleButtons',
164
163
  payload: false
@@ -166,7 +165,6 @@ var LoginPuzzleComponent = function LoginPuzzleComponent(_ref) {
166
165
  setShowPoints(rewardsData);
167
166
  }, 2000);
168
167
  });
169
- if (timeout) clearTimeout(timeout);
170
168
  }, [accRewards, info.resolve.rewards, emitEvent, setShowPoints, setResolveAction]);
171
169
  return /*#__PURE__*/_react.default.createElement("div", {
172
170
  className: "puzzle--layer",
@@ -258,7 +258,6 @@ var VideoVisor = function VideoVisor(_ref) {
258
258
  },
259
259
  onClick: function onClick() {
260
260
  handleHideControls();
261
- playSound('click-ui');
262
261
  },
263
262
  onCanPlayThrough: onCanPlay,
264
263
  onWaiting: onWaiting,