@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
@@ -36,7 +36,6 @@ function Panel(_ref) {
36
36
  active = _ref.active;
37
37
  var cameraRef = (0, _react.useRef)(null);
38
38
  var sceneRef = (0, _react.useRef)(null);
39
- var cache = (0, _react.useRef)({});
40
39
  var isCharacter = character.type === 'character';
41
40
  var emotion = isCharacter ? character.resource.animations[character.emotion || 'neutral'] : {};
42
41
  var onLoadElement = (0, _react.useCallback)(function (model) {
@@ -57,11 +56,7 @@ function Panel(_ref) {
57
56
  }
58
57
 
59
58
  cameraRef.current.updateProjectionMatrix();
60
-
61
- if (!cache.current[character.uid]) {
62
- cache.current[character.uid] = true;
63
- (0, _drawLOD.default)(sceneRef.current);
64
- }
59
+ (0, _drawLOD.default)(sceneRef.current, cameraRef.current);
65
60
  }
66
61
  }, [character]);
67
62
  (0, _fiber.useFrame)(function (_ref2) {
@@ -6,13 +6,13 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.withoutBackground = exports.voiceOverProps = exports.conversationProps = exports.converOld = void 0;
7
7
  var animations = {
8
8
  neutral: {
9
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/5981fca94d82290bcbe957fe/animation/5f06e116f9efdd00112fcc6f/male_missunderstand_1.glb'
9
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/5981fca94d82290bcbe957fe/animation/5f06e116f9efdd00112fcc6f/male_missunderstand_1.glb'
10
10
  },
11
11
  angry: {
12
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/5981fca94d82290bcbe957fe/animation/5e4a5b4a8487c3000fb7a3bd/standmale_1_angry.glb'
12
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/5981fca94d82290bcbe957fe/animation/5e4a5b4a8487c3000fb7a3bd/standmale_1_angry.glb'
13
13
  },
14
14
  sad: {
15
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/5981fca94d82290bcbe957fe/animation/5f06e116f9efdd00112fcc6f/male_missunderstand_1.glb'
15
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/5981fca94d82290bcbe957fe/animation/5f06e116f9efdd00112fcc6f/male_missunderstand_1.glb'
16
16
  }
17
17
  };
18
18
  var converOld = {
@@ -44,7 +44,7 @@ var converOld = {
44
44
  characters: [{
45
45
  name: 'Puerta',
46
46
  resource: {
47
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/5981fca94d82290bcbe957fe/character/5f5214cec39e26001123797f/ch0112_philip_001.glb',
47
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/5981fca94d82290bcbe957fe/character/5f5214cec39e26001123797f/ch0112_philip_001.glb',
48
48
  animations: animations
49
49
  },
50
50
  type: 'character',
@@ -52,7 +52,7 @@ var converOld = {
52
52
  }, {
53
53
  name: 'taxi',
54
54
  resource: {
55
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/5981fca94d82290bcbe957fe/object/5eff09c2085be00011aae087/pr0238_yacht_001.glb'
55
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/5981fca94d82290bcbe957fe/object/5eff09c2085be00011aae087/pr0238_yacht_001.glb'
56
56
  },
57
57
  type: 'object',
58
58
  uid: 'qejIfp'
@@ -62,7 +62,7 @@ var converOld = {
62
62
  imgId: '5e81fb36bbb333000f68a804',
63
63
  imgName: '01_GRAFICO_ASAP_Mesa de trabajo 1 copia 10.jpg',
64
64
  img: {
65
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/58dccfba26561500117caf53/image/605369a5901f3e00123b81ca/b27bb40dcb1189d14012131a35b48a36.jpeg'
65
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/image/605369a5901f3e00123b81ca/b27bb40dcb1189d14012131a35b48a36.jpeg'
66
66
  }
67
67
  }
68
68
  };
@@ -287,14 +287,14 @@ var conversationProps = {
287
287
  imgId: '605369a5901f3e00123b81ca',
288
288
  imgName: 'b27bb40dcb1189d14012131a35b48a36.jpeg',
289
289
  img: {
290
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/58dccfba26561500117caf53/image/605369a5901f3e00123b81ca/b27bb40dcb1189d14012131a35b48a36.jpeg'
290
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/image/605369a5901f3e00123b81ca/b27bb40dcb1189d14012131a35b48a36.jpeg'
291
291
  }
292
292
  },
293
293
  characters: [{
294
294
  name: 'Testing',
295
295
  resourceId: '5f68d7b6a373890011a78a11',
296
296
  resource: {
297
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/5981fca94d82290bcbe957fe/object/5eff09c2085be00011aae087/pr0238_yacht_001.glb'
297
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/5981fca94d82290bcbe957fe/object/5eff09c2085be00011aae087/pr0238_yacht_001.glb'
298
298
  },
299
299
  type: 'object',
300
300
  uid: 'DbKslR'
@@ -302,7 +302,7 @@ var conversationProps = {
302
302
  name: 'Male senior dark-skinned 01',
303
303
  resourceId: '5f5214cec39e26001123797f',
304
304
  resource: {
305
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/5981fca94d82290bcbe957fe/character/5f5214cec39e26001123797f/ch0112_philip_001.glb',
305
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/5981fca94d82290bcbe957fe/character/5f5214cec39e26001123797f/ch0112_philip_001.glb',
306
306
  animations: animations
307
307
  },
308
308
  type: 'character',
@@ -311,7 +311,7 @@ var conversationProps = {
311
311
  name: 'Female senior light-skinned 01',
312
312
  resourceId: '5f5214cec39e26001123797f',
313
313
  resource: {
314
- url: 'https://gl-lms-storage.s3-eu-west-1.amazonaws.com/development/clients/5981fca94d82290bcbe957fe/character/5f60759328beb100113b694c/ch0116_bima_001_rig_v01_llaveronuevo.glb',
314
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/5981fca94d82290bcbe957fe/character/5f60759328beb100113b694c/ch0116_bima_001_rig_v01_llaveronuevo.glb',
315
315
  animations: {
316
316
  neutral: {
317
317
  resource: {}
@@ -324,7 +324,7 @@ var conversationProps = {
324
324
  name: 'Taxi',
325
325
  resourceId: '5f5214cec39e26001123797f',
326
326
  resource: {
327
- url: 'https://gl-lms-storage.s3-eu-west-1.amazonaws.com/development/clients/5981fca94d82290bcbe957fe/object/5e53b649ef1f60000fb9cc1c/draco_pr0065_car_004.glb'
327
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/5981fca94d82290bcbe957fe/object/5e53b649ef1f60000fb9cc1c/draco_pr0065_car_004.glb'
328
328
  },
329
329
  type: 'object',
330
330
  uid: 'kjTHqx'
@@ -374,7 +374,7 @@ var voiceOverProps = {
374
374
  }],
375
375
  audioId: '5f1078861d84860011e179d0',
376
376
  audio: {
377
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/58dccfba26561500117caf53/documents/Cat-sound.mp3'
377
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/documents/Cat-sound.mp3'
378
378
  },
379
379
  hasAlias: true,
380
380
  text_labelId: 'text_0_nlrZj4Nr',
@@ -421,7 +421,7 @@ var voiceOverProps = {
421
421
  }],
422
422
  audioId: 'patata',
423
423
  audio: {
424
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/58dccfba26561500117caf53/audio/5f646497f6d21e001139b0ed/coin.wav'
424
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/audio/5f646497f6d21e001139b0ed/coin.wav'
425
425
  },
426
426
  hasAlias: true,
427
427
  text_labelId: 'text_1_nlrZlzvp',
@@ -438,14 +438,14 @@ var voiceOverProps = {
438
438
  imgId: '605369a5901f3e00123b81ca',
439
439
  imgName: 'b27bb40dcb1189d14012131a35b48a36.jpeg',
440
440
  img: {
441
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/58dccfba26561500117caf53/image/605369a5901f3e00123b81ca/b27bb40dcb1189d14012131a35b48a36.jpeg'
441
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/image/605369a5901f3e00123b81ca/b27bb40dcb1189d14012131a35b48a36.jpeg'
442
442
  }
443
443
  },
444
444
  characters: [{
445
445
  name: 'Male adult medium-skinned 12',
446
446
  resourceId: '5f68d7b6a373890011a78a11',
447
447
  resource: {
448
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/5981fca94d82290bcbe957fe/character/5f68d7b6a373890011a78a11/ch0010_carlo_saggio.glb',
448
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/5981fca94d82290bcbe957fe/character/5f68d7b6a373890011a78a11/ch0010_carlo_saggio.glb',
449
449
  animations: animations
450
450
  },
451
451
  type: 'character',
@@ -454,7 +454,7 @@ var voiceOverProps = {
454
454
  name: 'Male senior dark-skinned 01',
455
455
  resourceId: '5f5214cec39e26001123797f',
456
456
  resource: {
457
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/5981fca94d82290bcbe957fe/character/5f5214cec39e26001123797f/ch0112_philip_001.glb',
457
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/5981fca94d82290bcbe957fe/character/5f5214cec39e26001123797f/ch0112_philip_001.glb',
458
458
  animations: animations
459
459
  },
460
460
  type: 'character',
@@ -505,7 +505,7 @@ var withoutBackground = {
505
505
  }],
506
506
  audioId: '5f1078861d84860011e179d0',
507
507
  audio: {
508
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/58dccfba26561500117caf53/documents/Cat-sound.mp3'
508
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/documents/Cat-sound.mp3'
509
509
  },
510
510
  hasAlias: true,
511
511
  text_labelId: 'text_0_nlrZj4Nr',
@@ -552,7 +552,7 @@ var withoutBackground = {
552
552
  }],
553
553
  audioId: 'patata',
554
554
  audio: {
555
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/58dccfba26561500117caf53/audio/5f646497f6d21e001139b0ed/coin.wav'
555
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/audio/5f646497f6d21e001139b0ed/coin.wav'
556
556
  },
557
557
  hasAlias: true,
558
558
  text_labelId: 'text_1_nlrZlzvp',
@@ -570,7 +570,7 @@ var withoutBackground = {
570
570
  name: 'Male adult medium-skinned 12',
571
571
  resourceId: '5f68d7b6a373890011a78a11',
572
572
  resource: {
573
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/5981fca94d82290bcbe957fe/character/5f68d7b6a373890011a78a11/ch0010_carlo_saggio.glb',
573
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/5981fca94d82290bcbe957fe/character/5f68d7b6a373890011a78a11/ch0010_carlo_saggio.glb',
574
574
  animations: animations
575
575
  },
576
576
  animations: animations,
@@ -580,7 +580,7 @@ var withoutBackground = {
580
580
  name: 'Male senior dark-skinned 01',
581
581
  resourceId: '5f5214cec39e26001123797f',
582
582
  resource: {
583
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/5981fca94d82290bcbe957fe/character/5f5214cec39e26001123797f/ch0112_philip_001.glb',
583
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/5981fca94d82290bcbe957fe/character/5f5214cec39e26001123797f/ch0112_philip_001.glb',
584
584
  animations: animations
585
585
  },
586
586
  animations: animations,
@@ -0,0 +1,329 @@
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 _interactjs = _interopRequireDefault(require("interactjs"));
13
+
14
+ var _reactKonva = require("react-konva");
15
+
16
+ var _Messages = require("./Messages");
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
21
+
22
+ 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; }
23
+
24
+ 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); }
25
+
26
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
27
+
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
29
+
30
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
31
+
32
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
33
+
34
+ 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."); }
35
+
36
+ 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); }
37
+
38
+ 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; }
39
+
40
+ 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; }
41
+
42
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
43
+
44
+ var DragItemPuzzleComponent = function DragItemPuzzleComponent(_ref) {
45
+ var area = _ref.area,
46
+ image = _ref.image,
47
+ resolveObject = _ref.resolveObject,
48
+ info = _ref.info,
49
+ hasHighlights = _ref.hasHighlights,
50
+ consume = _ref.consume,
51
+ disableExit = _ref.disableExit,
52
+ emitEvent = _ref.emitEvent,
53
+ soundActions = _ref.soundActions;
54
+ var solution = info.solution;
55
+ var areaRef = (0, _react.useRef)();
56
+ var areaTextRef = (0, _react.useRef)();
57
+ var stageRef = (0, _react.useRef)();
58
+ var canvas = (0, _react.useRef)();
59
+ var layerConfig = (0, _react.useRef)({});
60
+
61
+ var _useState = (0, _react.useState)(false),
62
+ _useState2 = _slicedToArray(_useState, 2),
63
+ success = _useState2[0],
64
+ setSucess = _useState2[1];
65
+
66
+ var _useState3 = (0, _react.useState)(false),
67
+ _useState4 = _slicedToArray(_useState3, 2),
68
+ failed = _useState4[0],
69
+ setFailed = _useState4[1];
70
+
71
+ var _useState5 = (0, _react.useState)(false),
72
+ _useState6 = _slicedToArray(_useState5, 2),
73
+ showTooltip = _useState6[0],
74
+ setShowTooltip = _useState6[1];
75
+
76
+ var _useState7 = (0, _react.useState)(false),
77
+ _useState8 = _slicedToArray(_useState7, 2),
78
+ imageLoaded = _useState8[0],
79
+ setImageLoaded = _useState8[1];
80
+
81
+ var _useState9 = (0, _react.useState)(new window.Image()),
82
+ _useState10 = _slicedToArray(_useState9, 1),
83
+ currentImage = _useState10[0];
84
+
85
+ var _soundActions = _slicedToArray(soundActions, 1),
86
+ playSound = _soundActions[0];
87
+
88
+ var translate = function translate(id) {
89
+ return emitEvent({
90
+ type: 'translate',
91
+ payload: id
92
+ });
93
+ };
94
+
95
+ (0, _react.useEffect)(function () {
96
+ if (success) {
97
+ disableExit(true);
98
+ }
99
+ }, [success, disableExit]);
100
+
101
+ var intersectRect = function intersectRect(a, b) {
102
+ return (a.x + a.width > b.x && a.x + a.width <= b.x + b.width || b.x + b.width > a.x && b.x + b.width <= a.x + a.width) && (a.y + a.height > b.y && a.y + a.height <= b.y + b.height || b.y + b.height > a.y && b.y + b.height <= a.y + a.height);
103
+ };
104
+
105
+ var mouseEnterArea = function mouseEnterArea() {
106
+ if (areaRef && hasHighlights) {
107
+ areaRef.current.to({
108
+ duration: 0.25,
109
+ opacity: 0.75
110
+ });
111
+ areaTextRef.current.to({
112
+ duration: 0.25,
113
+ opacity: 0.4
114
+ });
115
+ }
116
+ };
117
+
118
+ var mouseLeaveArea = function mouseLeaveArea() {
119
+ if (areaRef && hasHighlights) {
120
+ areaRef.current.to({
121
+ duration: 0.25,
122
+ opacity: 0
123
+ });
124
+ areaTextRef.current.to({
125
+ duration: 0.25,
126
+ opacity: 0
127
+ });
128
+ }
129
+ };
130
+
131
+ var calculateOverArea = (0, _react.useCallback)(function (e) {
132
+ var over = false;
133
+
134
+ if (e) {
135
+ var stage = stageRef.current;
136
+ var lastMousePos = JSON.parse(e.relatedTarget.getAttribute('data-lastEvent'));
137
+ stage.setPointersPositions(lastMousePos);
138
+ var mousePos = stage.getPointerPosition();
139
+ var areaPos = areaRef.current.getClientRect({
140
+ relativeTo: stage
141
+ });
142
+ over = intersectRect(_objectSpread(_objectSpread({}, mousePos), {}, {
143
+ width: 1,
144
+ height: 1
145
+ }), areaPos);
146
+ }
147
+
148
+ return over;
149
+ }, []);
150
+ var checkCorrectObject = (0, _react.useCallback)(function (object) {
151
+ return object && resolveObject.uid === JSON.parse(object).uid;
152
+ }, [resolveObject.uid]);
153
+ var handleFinish = (0, _react.useCallback)(function () {
154
+ var rewards = solution.right.rewards;
155
+ emitEvent({
156
+ type: 'addPoints',
157
+ payload: rewards
158
+ });
159
+
160
+ if (consume) {
161
+ emitEvent({
162
+ type: 'consumeItem',
163
+ payload: {
164
+ uid: resolveObject.uid,
165
+ targetId: resolveObject.uid,
166
+ name: resolveObject.name
167
+ }
168
+ });
169
+ }
170
+
171
+ emitEvent({
172
+ type: 'closeUI',
173
+ ui: 'inventory'
174
+ });
175
+ }, [consume, emitEvent, resolveObject.name, resolveObject.uid, solution.right]);
176
+ var handleDrop = (0, _react.useCallback)(function (e) {
177
+ e.dragEvent.stopPropagation();
178
+ e.dragEvent.preventDefault();
179
+ var over = calculateOverArea(e.dragEvent);
180
+ var object = e.relatedTarget.getAttribute('data-item');
181
+
182
+ if (over && checkCorrectObject(object)) {
183
+ playSound('score');
184
+ setSucess(true);
185
+ emitEvent({
186
+ type: 'closeUI',
187
+ ui: 'inventory'
188
+ });
189
+ setTimeout(function () {
190
+ handleFinish();
191
+ }, 4000);
192
+ } else {
193
+ emitEvent({
194
+ type: 'closeUI',
195
+ ui: 'inventory'
196
+ });
197
+ playSound('fail');
198
+ setFailed(true);
199
+ setTimeout(function () {
200
+ setFailed(false);
201
+ }, 4000);
202
+ }
203
+ }, [calculateOverArea, checkCorrectObject, emitEvent, handleFinish, playSound]);
204
+ (0, _react.useEffect)(function () {
205
+ var imageUrl = image.img.url || '';
206
+ currentImage.src = imageUrl;
207
+
208
+ currentImage.onload = function () {
209
+ layerConfig.current = {
210
+ x: canvas.current.clientWidth / 2,
211
+ y: canvas.current.clientHeight / 2,
212
+ width: currentImage.width,
213
+ height: currentImage.height,
214
+ offsetX: currentImage.width / 2,
215
+ offsetY: currentImage.height / 2,
216
+ scale: {
217
+ x: Math.min(canvas.current.clientWidth / currentImage.width, canvas.current.clientHeight / currentImage.height),
218
+ y: Math.min(canvas.current.clientWidth / currentImage.width, canvas.current.clientHeight / currentImage.height)
219
+ }
220
+ };
221
+ setImageLoaded(true);
222
+ };
223
+
224
+ setShowTooltip(true);
225
+ var inventoryButton = document.getElementById('inventory_screen-button');
226
+
227
+ if (inventoryButton) {
228
+ inventoryButton.classList.add('highlight');
229
+ }
230
+
231
+ var timeout = setTimeout(function () {
232
+ setShowTooltip(false);
233
+
234
+ if (inventoryButton) {
235
+ inventoryButton.classList.remove('highlight');
236
+ }
237
+ }, 3000);
238
+ return function () {
239
+ if (timeout) clearTimeout(timeout);
240
+ };
241
+ }, [currentImage, image.img.url]);
242
+ var handleStageRef = (0, _react.useCallback)(function (node) {
243
+ if (node !== null) {
244
+ stageRef.current = node;
245
+ node.container().addEventListener('mousemove', function (e) {
246
+ node.setPointersPositions(e);
247
+ });
248
+ (0, _interactjs.default)(node.container()).dropzone({
249
+ listeners: {
250
+ drop: handleDrop
251
+ }
252
+ });
253
+ }
254
+ }, [handleDrop]);
255
+
256
+ var handleAreaRef = function handleAreaRef(node) {
257
+ if (node !== null) {
258
+ areaRef.current = node;
259
+ }
260
+ };
261
+
262
+ var handleAreaTextRef = function handleAreaTextRef(node) {
263
+ if (node !== null) {
264
+ areaTextRef.current = node;
265
+
266
+ if (areaRef.current) {
267
+ var _areaRef$current$getC = areaRef.current.getClientRect(),
268
+ x = _areaRef$current$getC.x,
269
+ y = _areaRef$current$getC.y,
270
+ areaWidth = _areaRef$current$getC.width,
271
+ areaHeight = _areaRef$current$getC.height;
272
+
273
+ node.setAttr('x', x);
274
+ node.setAttr('y', y);
275
+ node.setAttr('height', areaHeight);
276
+ node.setAttr('width', areaWidth);
277
+ }
278
+ }
279
+ };
280
+
281
+ return /*#__PURE__*/_react.default.createElement("div", {
282
+ className: "puzzle--drag__mask100"
283
+ }, /*#__PURE__*/_react.default.createElement("div", {
284
+ className: "puzzle--drag__mask"
285
+ }, /*#__PURE__*/_react.default.createElement("div", {
286
+ ref: canvas,
287
+ "data-testid": "mask_canvas",
288
+ className: "puzzle--drag__mask--canvas"
289
+ }, imageLoaded ? /*#__PURE__*/_react.default.createElement(_reactKonva.Stage, {
290
+ ref: handleStageRef,
291
+ width: canvas.current.clientWidth,
292
+ height: canvas.current.clientHeight
293
+ }, /*#__PURE__*/_react.default.createElement(_reactKonva.Layer, null, /*#__PURE__*/_react.default.createElement(_reactKonva.Image, _extends({
294
+ image: currentImage
295
+ }, layerConfig.current)), /*#__PURE__*/_react.default.createElement(_reactKonva.Group, layerConfig.current, /*#__PURE__*/_react.default.createElement(_reactKonva.Line, _extends({
296
+ onMouseEnter: mouseEnterArea,
297
+ onMouseLeave: mouseLeaveArea,
298
+ ref: handleAreaRef
299
+ }, area, {
300
+ shape: "poly",
301
+ fill: "#262a31d9",
302
+ stroke: "white",
303
+ strokeWidth: 1,
304
+ opacity: 0,
305
+ dash: [3, 2],
306
+ closed: true
307
+ }))), /*#__PURE__*/_react.default.createElement(_reactKonva.Text, {
308
+ onMouseEnter: mouseEnterArea,
309
+ onMouseLeave: mouseLeaveArea,
310
+ ref: handleAreaTextRef,
311
+ text: translate('puzzle.drag.dropzone'),
312
+ fontSize: 12,
313
+ align: "center",
314
+ verticalAlign: "middle",
315
+ fill: "#ffffff",
316
+ opacity: 0
317
+ }))) : null)), showTooltip && /*#__PURE__*/_react.default.createElement(_Messages.TooltipHint, {
318
+ translate: translate
319
+ }), success && /*#__PURE__*/_react.default.createElement(_Messages.SuccessMessage, {
320
+ translate: translate,
321
+ desc: solution.right.desc
322
+ }), failed && /*#__PURE__*/_react.default.createElement(_Messages.FailedMessage, {
323
+ translate: translate,
324
+ desc: solution.wrong.desc
325
+ }));
326
+ };
327
+
328
+ var _default = DragItemPuzzleComponent;
329
+ exports.default = _default;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TooltipHint = exports.FailedMessage = exports.SuccessMessage = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var SuccessMessage = function SuccessMessage(_ref) {
13
+ var translate = _ref.translate,
14
+ desc = _ref.desc;
15
+ return /*#__PURE__*/_react.default.createElement("div", {
16
+ className: "puzzle--image__result bottom success",
17
+ style: {
18
+ zIndex: 11
19
+ }
20
+ }, /*#__PURE__*/_react.default.createElement("span", {
21
+ className: "title"
22
+ }, translate('tooltip.correct')), /*#__PURE__*/_react.default.createElement("span", {
23
+ className: "description"
24
+ }, desc ? desc : null));
25
+ };
26
+
27
+ exports.SuccessMessage = SuccessMessage;
28
+
29
+ var FailedMessage = function FailedMessage(_ref2) {
30
+ var translate = _ref2.translate,
31
+ desc = _ref2.desc;
32
+ return /*#__PURE__*/_react.default.createElement("div", {
33
+ className: "puzzle--image__result bottom failed",
34
+ style: {
35
+ zIndex: 11
36
+ }
37
+ }, /*#__PURE__*/_react.default.createElement("span", {
38
+ className: "title"
39
+ }, translate('tooltip.incorrect')), /*#__PURE__*/_react.default.createElement("span", {
40
+ className: "description"
41
+ }, desc ? desc : null));
42
+ };
43
+
44
+ exports.FailedMessage = FailedMessage;
45
+
46
+ var TooltipHint = function TooltipHint(_ref3) {
47
+ var translate = _ref3.translate;
48
+ return /*#__PURE__*/_react.default.createElement("div", {
49
+ className: "tooltip tooltip--bottom__right puzzle--drag__mask--tooltip"
50
+ }, /*#__PURE__*/_react.default.createElement("i", {
51
+ className: "icon-search-thin"
52
+ }), /*#__PURE__*/_react.default.createElement("span", null, translate('tooltip.bag')));
53
+ };
54
+
55
+ exports.TooltipHint = TooltipHint;
@@ -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 _DragItemPuzzleComponent = _interopRequireDefault(require("./components/DragItemPuzzleComponent"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _DragItemPuzzleComponent.default;
13
+ exports.default = _default;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mockProps = void 0;
7
+
8
+ var emitEvent = function emitEvent(_ref) {
9
+ var type = _ref.type,
10
+ payload = _ref.payload;
11
+ console.log('Emit event called');
12
+
13
+ if (type === 'translate') {
14
+ return payload;
15
+ }
16
+ };
17
+
18
+ var soundActions = [function () {}, function () {}];
19
+ var mockProps = {
20
+ emitEvent: emitEvent,
21
+ soundActions: soundActions,
22
+ resolveObject: {
23
+ uid: '123',
24
+ name: 'cube',
25
+ type: 'object'
26
+ },
27
+ area: {
28
+ closed: true,
29
+ draggable: true,
30
+ fill: 'rgba(63, 65, 70, 0.65)',
31
+ name: 'DefaultArea',
32
+ offsetX: 0,
33
+ offsetY: 0,
34
+ points: [552.3175, 277.64966809839905, 481.945, 522.7914096056227, 1356.27, 601.6631003514252, 1260.3075, 192.38297540023427],
35
+ rotation: 0,
36
+ scaleX: 1,
37
+ scaleY: 1,
38
+ skewX: 0,
39
+ skewY: 0,
40
+ stroke: '#007eff',
41
+ strokeWidth: 2,
42
+ x: 0,
43
+ y: 0
44
+ },
45
+ hasHighlights: true,
46
+ consume: true,
47
+ image: {
48
+ height: 1280,
49
+ img: {
50
+ name: 'perro_grande.jpg',
51
+ resourceId: '60b0b2096deb7a0011206029',
52
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/image/60b0b2096deb7a0011206029/perro_grande.jpg'
53
+ },
54
+ imgName: 'perro_grande.jpg'
55
+ },
56
+ info: {
57
+ hint: {
58
+ active: false,
59
+ desc: 'hint',
60
+ rewards: []
61
+ },
62
+ resolve: {
63
+ rewards: []
64
+ },
65
+ solution: {
66
+ right: {
67
+ desc: 'correctSolution',
68
+ rewards: []
69
+ },
70
+ wrong: {
71
+ desc: 'wrongSolution',
72
+ rewards: []
73
+ }
74
+ },
75
+ instructions: 'instructions',
76
+ description: 'description'
77
+ }
78
+ };
79
+ exports.mockProps = mockProps;