@gamelearn/arcade-components 0.2.0 → 0.4.1-beta-terminal

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 (90) hide show
  1. package/dist/components/arcade-render/background/scene-elements/index.js +4 -2
  2. package/dist/components/arcade-render/element/AnimateElement.js +7 -9
  3. package/dist/components/arcade-render/element/index.js +7 -5
  4. package/dist/components/arcade-render/elements-list/index.js +4 -2
  5. package/dist/components/arcade-render/light/useLight.js +1 -0
  6. package/dist/components/arcade-render/loading/Loading.js +3 -4
  7. package/dist/components/arcade-render/loading/LoadingLogic.js +4 -4
  8. package/dist/components/arcade-render/mocks/index.js +3 -3
  9. package/dist/components/arcade-render/scene/index.js +8 -8
  10. package/dist/components/chained-image-click-puzzle-component/components/ChainedImageClickPuzzleComponent.js +73 -0
  11. package/dist/components/chained-image-click-puzzle-component/components/CurrentImagePuzzle.js +155 -0
  12. package/dist/components/chained-image-click-puzzle-component/index.js +13 -0
  13. package/dist/components/chained-image-click-puzzle-component/mocks/mockForStory.js +163 -0
  14. package/dist/components/comic-component/mocks/mockForStory.js +4 -4
  15. package/dist/components/conversational-pro-component/components/scene/Panel.js +1 -6
  16. package/dist/components/conversational-pro-component/mocks/mockForStory.js +20 -20
  17. package/dist/components/drag-item-puzzle-component/components/DragItemPuzzleComponent.js +329 -0
  18. package/dist/components/drag-item-puzzle-component/components/Messages.js +55 -0
  19. package/dist/components/drag-item-puzzle-component/index.js +13 -0
  20. package/dist/components/drag-item-puzzle-component/mocks/mockForStory.js +79 -0
  21. package/dist/components/hacker-puzzle-component/components/Area/index.js +150 -0
  22. package/dist/components/hacker-puzzle-component/components/Feedback/index.js +72 -0
  23. package/dist/components/hacker-puzzle-component/components/KonvaMapper/index.js +230 -0
  24. package/dist/components/hanged-puzzle-component/components/HangedPuzzleComponent.js +429 -0
  25. package/dist/components/{pikachu-component → hanged-puzzle-component}/index.js +2 -2
  26. package/dist/components/hanged-puzzle-component/mocks/mockForStory.js +54 -0
  27. package/dist/components/hanged-puzzle-component/utils.js +36 -0
  28. package/dist/components/image-click-puzzle-component/components/ImageClickPuzzleComponent.js +23 -0
  29. package/dist/components/image-click-puzzle-component/index.js +13 -0
  30. package/dist/components/image-click-puzzle-component/mocks/mockForStory.js +423 -0
  31. package/dist/components/image-click-wrapper-component/components/Area/index.js +150 -0
  32. package/dist/components/image-click-wrapper-component/components/Feedback/index.js +50 -0
  33. package/dist/components/image-click-wrapper-component/components/ImageClickWrapperComponent.js +365 -0
  34. package/dist/components/image-click-wrapper-component/components/KonvaMapper/index.js +230 -0
  35. package/dist/components/image-click-wrapper-component/index.js +13 -0
  36. package/dist/components/image-click-wrapper-component/mocks/mockForStory.js +307 -0
  37. package/dist/components/image-component/mocks/mockForStory.js +3 -3
  38. package/dist/components/index.js +56 -0
  39. package/dist/components/inventory-item/components/InventoryItem.js +2 -1
  40. package/dist/components/keyboard-puzzle-component/mocks/mockForStory.js +1 -1
  41. package/dist/components/login-puzzle-component/mocks/mockForStory.js +3 -3
  42. package/dist/components/pdf-component/components/PdfComponent.js +40 -7
  43. package/dist/components/pdf-component/components/PdfVisor.js +86 -33
  44. package/dist/components/pdf-component/mocks/mockForProps.js +21 -5
  45. package/dist/components/terminal-puzzle-component/components/FilesGroup/Item.js +32 -0
  46. package/dist/components/terminal-puzzle-component/components/FilesGroup/index.js +74 -0
  47. package/dist/components/terminal-puzzle-component/components/Image/index.js +26 -0
  48. package/dist/components/terminal-puzzle-component/components/TerminalPuzzleComponent.js +163 -0
  49. package/dist/components/terminal-puzzle-component/components/Visor/index.js +133 -0
  50. package/dist/components/terminal-puzzle-component/components/utils/index.js +29 -0
  51. package/dist/components/terminal-puzzle-component/index.js +13 -0
  52. package/dist/components/terminal-puzzle-component/mocks/mockForStory.js +190 -0
  53. package/dist/components/video-component/mocks/mockForStory.js +5 -5
  54. package/dist/components/video-visor/mocks/mockForStory.js +4 -4
  55. package/dist/components/web-builder-puzzle-component/Popups/PopupColorComponent/index.js +99 -0
  56. package/dist/components/web-builder-puzzle-component/Popups/PopupImageComponent/index.js +113 -0
  57. package/dist/components/web-builder-puzzle-component/Popups/PopupTextComponent/index.js +122 -0
  58. package/dist/components/web-builder-puzzle-component/Popups/index.js +31 -0
  59. package/dist/components/web-builder-puzzle-component/Templates/Bank.js +98 -0
  60. package/dist/components/web-builder-puzzle-component/Templates/Facebook.js +39 -0
  61. package/dist/components/web-builder-puzzle-component/Templates/resourcePath.js +9 -0
  62. package/dist/components/web-builder-puzzle-component/components/EditButton/index.js +28 -0
  63. package/dist/components/web-builder-puzzle-component/components/Feedback/index.js +38 -0
  64. package/dist/components/web-builder-puzzle-component/components/PublishButton/index.js +29 -0
  65. package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/BankBody.js +124 -0
  66. package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/FacebookBody.js +154 -0
  67. package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/index.js +32 -0
  68. package/dist/components/web-builder-puzzle-component/components/WebBuilderFront/index.js +98 -0
  69. package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/BankHeader.js +92 -0
  70. package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/FacebookHeader.js +50 -0
  71. package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/index.js +47 -0
  72. package/dist/components/web-builder-puzzle-component/components/WebBuilderPuzzleComponent.js +337 -0
  73. package/dist/components/web-builder-puzzle-component/components/WebBuilderTopBar/index.js +36 -0
  74. package/dist/components/web-builder-puzzle-component/index.js +13 -0
  75. package/dist/components/web-builder-puzzle-component/mocks/mockForStory.js +29 -0
  76. package/dist/components/writer-puzzle-component/components/ElectionComponent.js +89 -0
  77. package/dist/components/writer-puzzle-component/components/FeedbackComponent.js +138 -0
  78. package/dist/components/writer-puzzle-component/components/FeedbackElement.js +40 -0
  79. package/dist/components/writer-puzzle-component/components/FinishedTextComponent.js +36 -0
  80. package/dist/components/writer-puzzle-component/components/FixedComponent.js +166 -0
  81. package/dist/components/writer-puzzle-component/components/Rewards.js +203 -0
  82. package/dist/components/writer-puzzle-component/components/SingleElection.js +141 -0
  83. package/dist/components/writer-puzzle-component/components/WriterPuzzleComponent.js +552 -0
  84. package/dist/components/writer-puzzle-component/index.js +13 -0
  85. package/dist/components/writer-puzzle-component/mocks/mockForStory.js +861 -0
  86. package/dist/helpers/drawLOD.js +35 -47
  87. package/dist/helpers/useGLB.js +2 -1
  88. package/package.json +9 -4
  89. package/dist/components/pikachu-component/components/PikachuComponent.js +0 -24
  90. package/dist/components/pikachu-component/mocks/mockForStory.js +0 -15
@@ -40,7 +40,9 @@ var SceneElements = function SceneElements(_ref) {
40
40
  scene.fog = new _three.FogExp2(fog.color, fog.density);
41
41
  }
42
42
 
43
- return objects.map(function (_ref2, i) {
43
+ return /*#__PURE__*/_react.default.createElement("group", {
44
+ name: "BACKGROUND"
45
+ }, objects.map(function (_ref2, i) {
44
46
  var _object$userData, _object$userData2, _object$userData3;
45
47
 
46
48
  var material = _ref2.material,
@@ -83,7 +85,7 @@ var SceneElements = function SceneElements(_ref) {
83
85
  }
84
86
 
85
87
  return null;
86
- });
88
+ }));
87
89
  };
88
90
 
89
91
  var _default = SceneElements;
@@ -37,17 +37,15 @@ var AnimateElement = function AnimateElement(_ref) {
37
37
 
38
38
  var _useAnimations = (0, _drei.useAnimations)(animations),
39
39
  ref = _useAnimations.ref,
40
- mixer = _useAnimations.mixer;
41
-
42
- var _useProgress = (0, _drei.useProgress)(),
43
- progress = _useProgress.progress;
40
+ mixer = _useAnimations.mixer,
41
+ actions = _useAnimations.actions;
44
42
 
45
43
  (0, _react.useEffect)(function () {
46
- if (progress >= 100) {
47
- mixer.stopAllAction();
48
- mixer.clipAction(animations[0], model).play();
49
- }
50
- }, [animations, model, mixer, progress]);
44
+ var _Object$values;
45
+
46
+ mixer.stopAllAction();
47
+ (_Object$values = Object.values(actions)) === null || _Object$values === void 0 ? void 0 : _Object$values[0].play();
48
+ }, [actions, model, mixer]);
51
49
  return /*#__PURE__*/_react.default.createElement("primitive", _extends({
52
50
  ref: ref,
53
51
  object: model,
@@ -58,9 +58,10 @@ var Element = function Element(_ref) {
58
58
  material = _ref$material === void 0 ? {} : _ref$material,
59
59
  _ref$layers = _ref.layers,
60
60
  layers = _ref$layers === void 0 ? 0 : _ref$layers,
61
+ type = _ref.type,
61
62
  _ref$onLoad = _ref.onLoad,
62
63
  onLoad = _ref$onLoad === void 0 ? function () {} : _ref$onLoad,
63
- props = _objectWithoutProperties(_ref, ["url", "animationUrl", "position", "rotation", "scale", "size", "material", "layers", "onLoad"]);
64
+ props = _objectWithoutProperties(_ref, ["url", "animationUrl", "position", "rotation", "scale", "size", "material", "layers", "type", "onLoad"]);
64
65
 
65
66
  var _useGLB = (0, _useGLB2.default)(url),
66
67
  scene = _useGLB.scene;
@@ -69,12 +70,13 @@ var Element = function Element(_ref) {
69
70
  return _SkeletonUtils.SkeletonUtils.clone(scene);
70
71
  }, [scene]);
71
72
  var usingScale = size ? Object.values(size) : scale;
73
+ var isCharacter = type === 'character';
72
74
 
73
75
  if (usingScale.length < 3) {
74
76
  usingScale.push(1);
75
77
  }
76
78
 
77
- model.url = url;
79
+ model.userData.url = url;
78
80
 
79
81
  var _useThree = (0, _fiber.useThree)(function (state) {
80
82
  return [state.scene, state.camera];
@@ -91,7 +93,7 @@ var Element = function Element(_ref) {
91
93
  node.castShadow = true;
92
94
  node.material.roughness = 0.7;
93
95
  node.material.metalness = 0.5;
94
- node.frustrumCulled = false;
96
+ if (isCharacter) node.frustumCulled = false;
95
97
 
96
98
  if (node.isSkinnedMesh) {
97
99
  node.material.skinned = true;
@@ -107,12 +109,12 @@ var Element = function Element(_ref) {
107
109
 
108
110
  if (node.material.map) node.material.map.encoding = _three.sRGBEncoding;
109
111
  if (node.material.emissiveMap) node.material.emissiveMap.encoding = _three.sRGBEncoding;
110
- if (node.material.map || node.material.emissiveMap) node.material.needsUpdate = true;
112
+ node.material.needsUpdate = true;
111
113
  }
112
114
  });
113
115
  onLoad(model, currentScene, camera);
114
116
  }
115
- }, [model, material, onLoad, currentScene, camera, layers]);
117
+ }, [model, material, onLoad, currentScene, camera, layers, isCharacter]);
116
118
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, animationUrl ? /*#__PURE__*/_react.default.createElement(_AnimateElement.default, _extends({
117
119
  animationUrl: animationUrl,
118
120
  model: model,
@@ -69,7 +69,9 @@ var ElementsList = function ElementsList(_ref) {
69
69
  (0, _react.useLayoutEffect)(function () {
70
70
  camera.layers.enableAll();
71
71
  }, [camera]);
72
- return elements === null || elements === void 0 ? void 0 : elements.map(function (_ref3) {
72
+ return /*#__PURE__*/_react.default.createElement("group", {
73
+ name: "CLICKABLE_ELEMENTS"
74
+ }, elements === null || elements === void 0 ? void 0 : elements.map(function (_ref3) {
73
75
  var id = _ref3.id,
74
76
  element = _objectWithoutProperties(_ref3, ["id"]);
75
77
 
@@ -145,7 +147,7 @@ var ElementsList = function ElementsList(_ref) {
145
147
  return null;
146
148
  }
147
149
  }
148
- });
150
+ }));
149
151
  };
150
152
 
151
153
  var _default = ElementsList;
@@ -31,6 +31,7 @@ var useLight = function useLight(type, _ref) {
31
31
  return new currentType();
32
32
  }, [currentType]);
33
33
  (0, _fiber.applyProps)(light, props);
34
+ light.color.set(props.color);
34
35
 
35
36
  if (shadow && light.shadow) {
36
37
  var shadowMap = Object.assign({}, shadow);
@@ -19,10 +19,9 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
19
19
 
20
20
  function Loading(_ref) {
21
21
  var text = _ref.text;
22
-
23
- var _useProgress = (0, _drei.useProgress)(),
24
- progress = _useProgress.progress;
25
-
22
+ var progress = (0, _drei.useProgress)(function (state) {
23
+ return state.progress;
24
+ });
26
25
  var html = (0, _react.useRef)();
27
26
  var percentage = Math.floor(progress);
28
27
  (0, _react.useEffect)(function () {
@@ -29,9 +29,9 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
29
29
 
30
30
  function LoadingLogic(_ref) {
31
31
  var onFinish = _ref.onFinish;
32
-
33
- var _useProgress = (0, _drei.useProgress)(),
34
- progress = _useProgress.progress;
32
+ var progress = (0, _drei.useProgress)(function (state) {
33
+ return state.progress;
34
+ });
35
35
 
36
36
  var _useThree = (0, _fiber.useThree)(function (state) {
37
37
  return [state.scene, state.camera];
@@ -44,7 +44,7 @@ function LoadingLogic(_ref) {
44
44
  (0, _react.useEffect)(function () {
45
45
  if (percentage === 100) {
46
46
  onFinish();
47
- (0, _drawLOD.default)(scene);
47
+ (0, _drawLOD.default)(scene, camera);
48
48
  }
49
49
  }, [onFinish, percentage, scene, camera]);
50
50
  return null;
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.character = exports.taxi = exports.avocado = void 0;
7
- var avocado = "https://s3-eu-west-1.amazonaws.com/int.statics.gamelearn.io/gat/objects/avocado/Avocado.glb";
7
+ var avocado = 'https://min.int.gamelearn.io/statics/gat/objects/avocado/Avocado.glb';
8
8
  exports.avocado = avocado;
9
- var taxi = 'https://gl-lms-storage.s3-eu-west-1.amazonaws.com/development/clients/5981fca94d82290bcbe957fe/object/5e53b649ef1f60000fb9cc1c/draco_pr0065_car_004.glb';
9
+ var taxi = 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/5981fca94d82290bcbe957fe/object/5e53b649ef1f60000fb9cc1c/draco_pr0065_car_004.glb';
10
10
  exports.taxi = taxi;
11
- var character = 'https://gl-lms-storage.s3-eu-west-1.amazonaws.com/prod/clients/5981fca94d82290bcbe957fe/character/5fe33236fffcf50011e04687/character.glb';
11
+ var character = 'https://min.gamelearn.io/cooked.gl-lms-storage/clients/5981fca94d82290bcbe957fe/character/5fe33236fffcf50011e04687/character.glb';
12
12
  exports.character = character;
@@ -19,8 +19,6 @@ var _background = _interopRequireDefault(require("../background"));
19
19
 
20
20
  var _loading = _interopRequireWildcard(require("../loading"));
21
21
 
22
- var _LodController = _interopRequireDefault(require("../../../helpers/LodController"));
23
-
24
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
23
 
26
24
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
@@ -62,11 +60,6 @@ var ConfigController = function ConfigController(_ref) {
62
60
  }, 1);
63
61
  (0, _react.useEffect)(function () {
64
62
  gl.shadowMap.enabled = current.shadows;
65
- scene.traverse(function (child) {
66
- if (child.isMesh) {
67
- child.material.needsUpdate = true;
68
- }
69
- });
70
63
 
71
64
  if (!current.animate) {
72
65
  invalidate();
@@ -100,6 +93,10 @@ var Scene = function Scene(_ref3) {
100
93
  var gl = _ref4.gl,
101
94
  raycaster = _ref4.raycaster;
102
95
  raycaster.layers.set(1);
96
+ gl.outputEncoding = 3001;
97
+ gl.gammaFactor = 2.2;
98
+ gl.setClearColor(0xcccccc);
99
+ gl.setPixelRatio(window.devicePixelRatio);
103
100
  gl.physicallyCorrectLights = true;
104
101
  };
105
102
 
@@ -114,7 +111,9 @@ var Scene = function Scene(_ref3) {
114
111
  setShowLoad(true);
115
112
  }, [backgroundData, elements]);
116
113
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_fiber.Canvas, {
114
+ className: "main-canvas",
117
115
  style: {
116
+ width: '100%',
118
117
  height: '100vh'
119
118
  },
120
119
  resize: {
@@ -124,7 +123,8 @@ var Scene = function Scene(_ref3) {
124
123
  flat: true,
125
124
  shadows: toggleShadows,
126
125
  frameloop: "demand",
127
- onCreated: handleOnCreate
126
+ onCreated: handleOnCreate,
127
+ tabIndex: 0
128
128
  }, /*#__PURE__*/_react.default.createElement(ConfigController, {
129
129
  current: {
130
130
  shadows: toggleShadows,
@@ -0,0 +1,73 @@
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 _CurrentImagePuzzle = _interopRequireDefault(require("./CurrentImagePuzzle"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
17
+
18
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
19
+
20
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
21
+
22
+ 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."); }
23
+
24
+ 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); }
25
+
26
+ 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; }
27
+
28
+ function _iterableToArrayLimit(arr, i) { var _i = arr && (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; }
29
+
30
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
31
+
32
+ var ChainedImageClickPuzzleComponent = function ChainedImageClickPuzzleComponent(props) {
33
+ var setInfo = props.setInfo,
34
+ emitEvent = props.emitEvent,
35
+ nodeId = props.nodeId,
36
+ list = props.list,
37
+ description = props.description,
38
+ soundActions = props.soundActions,
39
+ showFrames = props.showFrames,
40
+ disableExit = props.disableExit,
41
+ setResolveAction = props.setResolveAction;
42
+
43
+ var _useState = (0, _react.useState)(0),
44
+ _useState2 = _slicedToArray(_useState, 2),
45
+ selected = _useState2[0],
46
+ setSelected = _useState2[1];
47
+
48
+ var currentPuzzleProps = {
49
+ list: list,
50
+ description: description,
51
+ nodeId: nodeId,
52
+ disableExit: disableExit,
53
+ setResolveAction: setResolveAction,
54
+ emitEvent: emitEvent,
55
+ soundActions: soundActions,
56
+ setInfo: setInfo,
57
+ setSelected: setSelected,
58
+ selected: selected
59
+ };
60
+ var totalCorrects = list.reduce(function (acc, current) {
61
+ return acc + current.areas.length;
62
+ }, 0);
63
+ return /*#__PURE__*/_react.default.createElement("div", {
64
+ className: "puzzle--image__click"
65
+ }, showFrames ? /*#__PURE__*/_react.default.createElement("div", {
66
+ className: "puzzle-image__info"
67
+ }, /*#__PURE__*/_react.default.createElement("span", {
68
+ className: "info-circle"
69
+ }), /*#__PURE__*/_react.default.createElement("span", null, selected, " / ", totalCorrects)) : null, /*#__PURE__*/_react.default.createElement(_CurrentImagePuzzle.default, currentPuzzleProps));
70
+ };
71
+
72
+ var _default = ChainedImageClickPuzzleComponent;
73
+ exports.default = _default;
@@ -0,0 +1,155 @@
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 _imageClickWrapperComponent = _interopRequireDefault(require("../../image-click-wrapper-component"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
17
+
18
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
19
+
20
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
21
+
22
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
23
+
24
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
25
+
26
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
27
+
28
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
29
+
30
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
31
+
32
+ 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."); }
33
+
34
+ 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); }
35
+
36
+ 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; }
37
+
38
+ function _iterableToArrayLimit(arr, i) { var _i = arr && (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; }
39
+
40
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
41
+
42
+ var CurrentImageClickPuzzle = function CurrentImageClickPuzzle(_ref) {
43
+ var list = _ref.list,
44
+ description = _ref.description,
45
+ nodeId = _ref.nodeId,
46
+ setInfo = _ref.setInfo,
47
+ emitEvent = _ref.emitEvent,
48
+ disableExit = _ref.disableExit,
49
+ setResolveAction = _ref.setResolveAction,
50
+ soundActions = _ref.soundActions,
51
+ setSelected = _ref.setSelected,
52
+ selected = _ref.selected;
53
+ var accRewards = (0, _react.useRef)([]);
54
+
55
+ var _useState = (0, _react.useState)(0),
56
+ _useState2 = _slicedToArray(_useState, 2),
57
+ index = _useState2[0],
58
+ setIndex = _useState2[1];
59
+
60
+ var puzzleId = "chained-image-click-puzzle_".concat(index, "_").concat(nodeId);
61
+ var currentPuzzleStatus = (0, _react.useMemo)(function () {
62
+ return emitEvent({
63
+ type: 'loadObjectStatus',
64
+ payload: puzzleId
65
+ });
66
+ }, [emitEvent, puzzleId]);
67
+
68
+ var setRewards = function setRewards(rewards) {
69
+ accRewards.current = [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(rewards));
70
+ };
71
+
72
+ var handleFinish = (0, _react.useCallback)(function (rewards) {
73
+ emitEvent({
74
+ type: 'addPoints',
75
+ payload: [].concat(_toConsumableArray(accRewards.current), _toConsumableArray(rewards))
76
+ });
77
+ }, [emitEvent]);
78
+ var handleResolve = (0, _react.useCallback)(function () {
79
+ emitEvent({
80
+ type: 'puzzleAction',
81
+ action: 'resolve',
82
+ payload: {
83
+ element: puzzleId,
84
+ rewards: accRewards.current
85
+ }
86
+ });
87
+ }, [emitEvent, puzzleId]);
88
+ var currentImageProps = list[index];
89
+ var info = currentImageProps.info;
90
+ info.description = description;
91
+ var onComplete = (0, _react.useCallback)(function (rw) {
92
+ var _emit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
93
+
94
+ if (index + 1 >= list.length) {
95
+ handleFinish(rw);
96
+ } else {
97
+ setRewards(rw);
98
+ setIndex(index + 1);
99
+ }
100
+
101
+ setSelected(selected + currentImageProps.areas.length);
102
+
103
+ if (_emit) {
104
+ handleResolve();
105
+ }
106
+ }, [index, list.length, selected, currentImageProps.areas.length, handleFinish, handleResolve, setSelected]);
107
+
108
+ var onResolve = function onResolve(resolve) {
109
+ resolve(false);
110
+ setTimeout(function () {
111
+ onComplete(info.resolve.rewards || [], false);
112
+ }, 2000);
113
+ };
114
+
115
+ (0, _react.useEffect)(function () {
116
+ setInfo(info);
117
+ }, [info, setInfo]);
118
+ (0, _react.useEffect)(function () {
119
+ var timeout;
120
+
121
+ if (currentPuzzleStatus) {
122
+ alert('TEST');
123
+ timeout = setTimeout(function () {
124
+ onComplete([], false);
125
+ }, 2000);
126
+ }
127
+
128
+ return function () {
129
+ if (timeout) {
130
+ clearTimeout(timeout);
131
+ }
132
+ };
133
+ }, [onComplete, puzzleId, currentPuzzleStatus]);
134
+ return /*#__PURE__*/_react.default.createElement(_imageClickWrapperComponent.default, _extends({
135
+ key: index
136
+ }, currentImageProps, {
137
+ puzzle: {
138
+ name: "chained-image-click-puzzle_".concat(index),
139
+ component: 'chained-image-click-puzzle'
140
+ },
141
+ emitFinish: onComplete,
142
+ emitError: setRewards,
143
+ emitResolve: onResolve,
144
+ isLast: index + 1 === list.length,
145
+ defaultCompleted: currentPuzzleStatus,
146
+ hideContinue: !(index + 1 === list.length),
147
+ emitEvent: emitEvent,
148
+ disableExit: disableExit,
149
+ soundActions: soundActions,
150
+ setResolveAction: setResolveAction
151
+ }));
152
+ };
153
+
154
+ var _default = CurrentImageClickPuzzle;
155
+ exports.default = _default;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _ChainedImageClickPuzzleComponent = _interopRequireDefault(require("./components/ChainedImageClickPuzzleComponent"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _ChainedImageClickPuzzleComponent.default;
13
+ exports.default = _default;
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mockProps = void 0;
7
+
8
+ var emitEvent = function emitEvent() {
9
+ console.log('Emit event called');
10
+ };
11
+
12
+ var soundActions = [function (sound) {
13
+ console.log('PlaySound called :', sound);
14
+ }, function () {}];
15
+ var mockProps = {
16
+ nodeId: 'xxas',
17
+ description: 'Dale al arma',
18
+ showFrames: true,
19
+ setInfo: function setInfo() {},
20
+ emitEvent: emitEvent,
21
+ soundActions: soundActions,
22
+ disableExit: function disableExit() {},
23
+ setResolveAction: function setResolveAction() {},
24
+ list: [{
25
+ info: {
26
+ hint: {
27
+ active: true,
28
+ desc: 'hint',
29
+ rewards: []
30
+ },
31
+ resolve: {
32
+ rewards: []
33
+ },
34
+ solution: {
35
+ right: {
36
+ desc: 'Estupendo',
37
+ desc_labelId: 'alfalfa01',
38
+ rewards: []
39
+ },
40
+ wrong: {
41
+ desc: 'BUUUU',
42
+ desc_labelId: 'fabada01',
43
+ rewards: [{
44
+ id: 'grade',
45
+ name: 'grade',
46
+ points: -17,
47
+ type: 'grade'
48
+ }]
49
+ }
50
+ },
51
+ instructions: 'instructions'
52
+ },
53
+ itemOrder: 1,
54
+ image: {
55
+ imgName: 'Paz-Vizla-Concept.png',
56
+ img: {
57
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/image/609a9b30901f3e001247c031/Paz-Vizla-Concept.png',
58
+ imgName: 'Paz-Vizla-Concept.png',
59
+ resourceId: '609a9b30901f3e001247c031'
60
+ },
61
+ width: 1920,
62
+ height: 1097
63
+ },
64
+ areas: [{
65
+ name: 'Uno',
66
+ x: 0,
67
+ y: 0,
68
+ fill: 'rgba(255, 255, 255, 0.1)',
69
+ draggable: true,
70
+ points: [1150.0742574257429, 217.48228650990103, 1570.95297029703, 65.42288056930694, 1704.0049504950498, 195.7595142326733, 1576.383663366337, 421.13327660891093, 1247.8267326732675, 510.73971225247533],
71
+ stroke: 'rgb(101,154,93)',
72
+ closed: true
73
+ }],
74
+ badAreas: [{
75
+ id: 'AllArea',
76
+ name: 'BadArea',
77
+ x: 0,
78
+ y: 0,
79
+ fill: 'rgba(255, 255, 255, 0.1)',
80
+ draggable: true,
81
+ points: [0, 0, 1920, 0, 1920, 1097, 0, 1097, 0, 0],
82
+ stroke: '#ff634d',
83
+ strokeWidth: 2,
84
+ closed: true
85
+ }],
86
+ hasClickOrder: false,
87
+ hasHighlights: true
88
+ }, {
89
+ info: {
90
+ hint: {
91
+ active: true,
92
+ desc: 'hint',
93
+ rewards: []
94
+ },
95
+ resolve: {
96
+ rewards: []
97
+ },
98
+ solution: {
99
+ right: {
100
+ desc: 'Estupendo',
101
+ desc_labelId: 'alfalfa01',
102
+ rewards: []
103
+ },
104
+ wrong: {
105
+ desc: 'BUUUU',
106
+ desc_labelId: 'fabada01',
107
+ rewards: [{
108
+ id: 'grade',
109
+ name: 'grade',
110
+ points: -17,
111
+ type: 'grade'
112
+ }]
113
+ }
114
+ },
115
+ instructions: 'instructions'
116
+ },
117
+ itemOrder: 2,
118
+ image: {
119
+ imgName: 'pablo-carpio-slave2.jpeg',
120
+ img: {
121
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/image/609e3d358782ea00116a7eee/pablo-carpio-slave2.jpeg',
122
+ imgName: 'Paz-Vizla-Concept.png',
123
+ resourceId: '609e3d358782ea00116a7eee'
124
+ },
125
+ width: 1920,
126
+ height: 1099
127
+ },
128
+ areas: [{
129
+ name: 'Uno',
130
+ x: 0,
131
+ y: 0,
132
+ fill: 'rgba(68, 215, 171, 0.56)',
133
+ draggable: true,
134
+ points: [1305.4777227722775, 606.8812654702971, 1455.094059405941, 593.2797803217823, 1463.2549504950498, 941.4778001237626, 1346.282178217822, 1012.2055228960397, 1275.5544554455448, 906.1139387376239],
135
+ stroke: 'rgb(101,154,93)',
136
+ closed: true
137
+ }, {
138
+ name: 'Dos',
139
+ x: 0,
140
+ y: 0,
141
+ fill: 'rgba(68, 215, 171, 0.56)',
142
+ draggable: true,
143
+ points: [171.1138613861387, 506.23027537128723, 312.5693069306932, 519.8317605198021, 304.4084158415843, 593.2797803217823, 157.51237623762387, 585.1188892326734],
144
+ stroke: 'rgb(101,154,93)',
145
+ closed: true
146
+ }],
147
+ badAreas: [{
148
+ id: 'AllArea',
149
+ name: 'BadArea',
150
+ x: 0,
151
+ y: 0,
152
+ fill: 'rgba(255, 255, 255, 0.1)',
153
+ draggable: true,
154
+ points: [0, 0, 1920, 0, 1920, 1099, 0, 1099, 0, 0],
155
+ stroke: '#ff634d',
156
+ strokeWidth: 2,
157
+ closed: true
158
+ }],
159
+ hasClickOrder: true,
160
+ hasHighlights: true
161
+ }]
162
+ };
163
+ exports.mockProps = mockProps;
@@ -9,12 +9,12 @@ var comicProps = {
9
9
  slideOrder: 1,
10
10
  transitionEffects: null,
11
11
  audio: {
12
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/58dccfba26561500117caf53/documents/Cat-sound.mp3'
12
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/documents/Cat-sound.mp3'
13
13
  },
14
14
  vignettes: [{
15
15
  vignetteOrder: 1,
16
16
  img: {
17
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/58dccfba26561500117caf53/image/60508f84901f3e00123a0796/holamundo.jpg',
17
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/image/60508f84901f3e00123a0796/holamundo.jpg',
18
18
  imgName: 'prueba6.png',
19
19
  resourceId: '6007f80eac41ad001120f135'
20
20
  },
@@ -33,12 +33,12 @@ var comicProps = {
33
33
  slideOrder: 2,
34
34
  transitionEffects: null,
35
35
  audio: {
36
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/58dccfba26561500117caf53/audio/5f646497f6d21e001139b0ed/coin.wav'
36
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/audio/5f646497f6d21e001139b0ed/coin.wav'
37
37
  },
38
38
  vignettes: [{
39
39
  vignetteOrder: 1,
40
40
  img: {
41
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/58dccfba26561500117caf53/image/60507fb0901f3e00123a05db/14b936c651869bf50fdfb8071e719c47.png',
41
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/image/60507fb0901f3e00123a05db/14b936c651869bf50fdfb8071e719c47.png',
42
42
  imgName: 'holamundo.jpg',
43
43
  resourceId: '60508f84901f3e00123a0796'
44
44
  },