@gamelearn/arcade-components 0.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 (107) hide show
  1. package/README.md +53 -0
  2. package/dist/components/arcade-render/background/index.js +33 -0
  3. package/dist/components/arcade-render/background/scene-elements/customGeometry/index.js +46 -0
  4. package/dist/components/arcade-render/background/scene-elements/index.js +90 -0
  5. package/dist/components/arcade-render/element/AnimateElement.js +60 -0
  6. package/dist/components/arcade-render/element/Projection.js +38 -0
  7. package/dist/components/arcade-render/element/index.js +134 -0
  8. package/dist/components/arcade-render/elements-list/ClickableArea.js +76 -0
  9. package/dist/components/arcade-render/elements-list/Poster.js +80 -0
  10. package/dist/components/arcade-render/elements-list/index.js +152 -0
  11. package/dist/components/arcade-render/light/index.js +33 -0
  12. package/dist/components/arcade-render/light/useLight.js +51 -0
  13. package/dist/components/arcade-render/loading/Loading.js +55 -0
  14. package/dist/components/arcade-render/loading/LoadingLogic.js +54 -0
  15. package/dist/components/arcade-render/loading/index.js +21 -0
  16. package/dist/components/arcade-render/mocks/index.js +12 -0
  17. package/dist/components/arcade-render/scene/index.js +152 -0
  18. package/dist/components/cartel-component/components/CartelComponent.js +102 -0
  19. package/dist/components/cartel-component/index.js +13 -0
  20. package/dist/components/comic-component/components/ComicComponent.js +106 -0
  21. package/dist/components/comic-component/components/Slide.js +74 -0
  22. package/dist/components/comic-component/components/Vignette.js +29 -0
  23. package/dist/components/comic-component/index.js +13 -0
  24. package/dist/components/comic-component/mocks/mockForStory.js +58 -0
  25. package/dist/components/conversational-component/components/ConversationalComponent.js +116 -0
  26. package/dist/components/conversational-component/index.js +13 -0
  27. package/dist/components/conversational-pro-component/components/ConversationalProComponent.js +226 -0
  28. package/dist/components/conversational-pro-component/components/Message.js +42 -0
  29. package/dist/components/conversational-pro-component/components/Slot.js +67 -0
  30. package/dist/components/conversational-pro-component/components/SlotList.js +112 -0
  31. package/dist/components/conversational-pro-component/components/scene/Panel.js +114 -0
  32. package/dist/components/conversational-pro-component/components/scene/Panels.js +35 -0
  33. package/dist/components/conversational-pro-component/components/scene/index.js +90 -0
  34. package/dist/components/conversational-pro-component/index.js +13 -0
  35. package/dist/components/conversational-pro-component/mocks/mockForStory.js +591 -0
  36. package/dist/components/cracker-puzzle-component/components/CrackerPuzzleComponent.js +316 -0
  37. package/dist/components/cracker-puzzle-component/components/DrawGrid/index.js +44 -0
  38. package/dist/components/cracker-puzzle-component/components/DrawItem/index.js +53 -0
  39. package/dist/components/cracker-puzzle-component/components/DrawRow/index.js +48 -0
  40. package/dist/components/cracker-puzzle-component/components/colors.js +12 -0
  41. package/dist/components/cracker-puzzle-component/components/helpers.js +168 -0
  42. package/dist/components/cracker-puzzle-component/index.js +13 -0
  43. package/dist/components/cracker-puzzle-component/mocks/mockForStory.js +219 -0
  44. package/dist/components/decision-component/components/DecisionBody.js +167 -0
  45. package/dist/components/decision-component/components/DecisionComponent.js +231 -0
  46. package/dist/components/decision-component/components/Feedback.js +83 -0
  47. package/dist/components/decision-component/components/Options.js +37 -0
  48. package/dist/components/decision-component/components/Rewards.js +203 -0
  49. package/dist/components/decision-component/index.js +13 -0
  50. package/dist/components/decision-component/mocks/mockForStory.js +43 -0
  51. package/dist/components/hacker-puzzle-component/components/HackerPuzzleComponent.js +294 -0
  52. package/dist/components/hacker-puzzle-component/components/languages.js +12 -0
  53. package/dist/components/hacker-puzzle-component/index.js +13 -0
  54. package/dist/components/hacker-puzzle-component/mocks/mockForStory.js +101 -0
  55. package/dist/components/image-component/components/ImageComponent.js +66 -0
  56. package/dist/components/image-component/index.js +13 -0
  57. package/dist/components/image-component/mocks/mockForStory.js +50 -0
  58. package/dist/components/index.js +163 -0
  59. package/dist/components/inventory-item/components/InventoryItem.js +100 -0
  60. package/dist/components/inventory-item/index.js +13 -0
  61. package/dist/components/inventory-item/mocks/mockForStory.js +28 -0
  62. package/dist/components/keyboard-puzzle-component/components/FeedbackMessage.js +30 -0
  63. package/dist/components/keyboard-puzzle-component/components/KeyboardPuzzleComponent.js +160 -0
  64. package/dist/components/keyboard-puzzle-component/index.js +13 -0
  65. package/dist/components/keyboard-puzzle-component/mocks/mockForStory.js +36 -0
  66. package/dist/components/lectures-component/components/LectureButtons.js +50 -0
  67. package/dist/components/lectures-component/components/LecturesComponent.js +140 -0
  68. package/dist/components/lectures-component/index.js +13 -0
  69. package/dist/components/lectures-component/mocks/mockForStory.js +22 -0
  70. package/dist/components/login-puzzle-component/components/LoginPuzzleComponent.js +170 -0
  71. package/dist/components/login-puzzle-component/index.js +13 -0
  72. package/dist/components/login-puzzle-component/mocks/mockForStory.js +38 -0
  73. package/dist/components/notice-component/components/NoticeComponent.js +61 -0
  74. package/dist/components/notice-component/index.js +13 -0
  75. package/dist/components/notice-component/mocks/mockForStory.js +20 -0
  76. package/dist/components/pdf-component/components/PdfComponent.js +79 -0
  77. package/dist/components/pdf-component/components/PdfVisor.js +84 -0
  78. package/dist/components/pdf-component/index.js +23 -0
  79. package/dist/components/pdf-component/mocks/mockForProps.js +23 -0
  80. package/dist/components/pikachu-component/components/PikachuComponent.js +24 -0
  81. package/dist/components/pikachu-component/index.js +13 -0
  82. package/dist/components/pikachu-component/mocks/mockForStory.js +15 -0
  83. package/dist/components/url-component/components/UrlComponent.js +92 -0
  84. package/dist/components/url-component/index.js +13 -0
  85. package/dist/components/url-component/mocks/mockForProps.js +1 -0
  86. package/dist/components/video-component/components/VideoComponent.js +72 -0
  87. package/dist/components/video-component/index.js +13 -0
  88. package/dist/components/video-component/mocks/mockForStory.js +84 -0
  89. package/dist/components/video-visor/components/VideoControllers/BufferBar.js +130 -0
  90. package/dist/components/video-visor/components/VideoControllers/ControlButtons.js +36 -0
  91. package/dist/components/video-visor/components/VideoControllers/FinishedVideoButtons.js +45 -0
  92. package/dist/components/video-visor/components/VideoControllers/PlayInitButton.js +46 -0
  93. package/dist/components/video-visor/components/VideoControllers/SkipButton.js +44 -0
  94. package/dist/components/video-visor/components/VideoControllers/Timer.js +42 -0
  95. package/dist/components/video-visor/components/VideoControllers/VolumeBar.js +108 -0
  96. package/dist/components/video-visor/components/VideoControllers/index.js +122 -0
  97. package/dist/components/video-visor/components/VideoVisor.js +308 -0
  98. package/dist/components/video-visor/index.js +13 -0
  99. package/dist/components/video-visor/mocks/mockForStory.js +27 -0
  100. package/dist/helpers/LightSet.js +39 -0
  101. package/dist/helpers/LodController.js +37 -0
  102. package/dist/helpers/drawLOD.js +358 -0
  103. package/dist/helpers/index.js +82 -0
  104. package/dist/helpers/lodStats.js +51 -0
  105. package/dist/helpers/useGLB.js +62 -0
  106. package/dist/index.js +18 -0
  107. package/package.json +75 -0
@@ -0,0 +1,83 @@
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 _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _Rewards = _interopRequireDefault(require("./Rewards"));
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
19
+
20
+ 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; }
21
+
22
+ var FeedBack = function FeedBack(_ref) {
23
+ var choice = _ref.choice,
24
+ inherited = _ref.inherited,
25
+ rewards = _ref.rewards,
26
+ addPoints = _ref.addPoints;
27
+ var noFeedBack = choice.feedback === '' || !choice.feedback;
28
+ var centerRewards = noFeedBack;
29
+
30
+ var Wrapper = function Wrapper(_ref2) {
31
+ var children = _ref2.children;
32
+ return inherited ? /*#__PURE__*/_react.default.createElement("div", {
33
+ className: "conversation--feedback ".concat(centerRewards ? 'only--rewards' : '')
34
+ }, children) : centerRewards ? /*#__PURE__*/_react.default.createElement("div", {
35
+ className: "popup__basicDecision__only--rewards only--rewards"
36
+ }, children) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
37
+ };
38
+
39
+ var noRewards = rewards.filter(function (reward) {
40
+ return reward.type !== 'grade';
41
+ }).length === 0;
42
+ (0, _react.useEffect)(function () {
43
+ if (rewards.filter(function (reward) {
44
+ return reward.type === 'grade';
45
+ }).length === rewards.length) {
46
+ addPoints();
47
+ }
48
+ }, [addPoints, rewards]);
49
+ return noFeedBack && noRewards ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null) : /*#__PURE__*/_react.default.createElement(Wrapper, null, !noFeedBack ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
50
+ className: "conversation--feedback__title"
51
+ }, "Feedback"), /*#__PURE__*/_react.default.createElement("div", {
52
+ className: "conversation--feedback__text"
53
+ }, choice.right ? /*#__PURE__*/_react.default.createElement("span", {
54
+ className: "icon-check-circle-black color--success"
55
+ }) : /*#__PURE__*/_react.default.createElement("span", {
56
+ className: "icon-error-circle-black color--error"
57
+ }), /*#__PURE__*/_react.default.createElement("p", null, choice.feedback))) : null, !noRewards ? /*#__PURE__*/_react.default.createElement(_Rewards.default, {
58
+ rewards: choice.right ? rewards : choice.rewards
59
+ }) : null);
60
+ };
61
+
62
+ FeedBack.defaultProps = {
63
+ addPoints: function addPoints() {},
64
+ rewards: [],
65
+ choice: {},
66
+ inherited: false,
67
+ nodeId: 0
68
+ };
69
+ FeedBack.propTypes = {
70
+ inherited: _propTypes.default.bool,
71
+ addPoints: _propTypes.default.func,
72
+ rewards: _propTypes.default.arrayOf(_propTypes.default.shape({})),
73
+ choice: _propTypes.default.shape({
74
+ id: _propTypes.default.number,
75
+ rewards: _propTypes.default.arrayOf(_propTypes.default.shape()),
76
+ feedback: _propTypes.default.string,
77
+ slot: _propTypes.default.bool,
78
+ right: _propTypes.default.bool,
79
+ text: _propTypes.default.string
80
+ })
81
+ };
82
+ var _default = FeedBack;
83
+ exports.default = _default;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var Options = function Options(_ref) {
13
+ var inherited = _ref.inherited,
14
+ options = _ref.options,
15
+ selectedChoice = _ref.selectedChoice,
16
+ selectChoice = _ref.selectChoice;
17
+ return options.filter(function (option) {
18
+ return option.text;
19
+ }).map(function (option) {
20
+ return /*#__PURE__*/_react.default.createElement("div", {
21
+ key: option.id,
22
+ className: inherited ? 'conversation--question' : 'radio'
23
+ }, /*#__PURE__*/_react.default.createElement("input", {
24
+ type: "radio",
25
+ name: option.id,
26
+ defaultChecked: selectedChoice.id === option.id
27
+ }), /*#__PURE__*/_react.default.createElement("label", {
28
+ htmlFor: option.id,
29
+ onClick: function onClick() {
30
+ selectChoice(option);
31
+ }
32
+ }, option.text));
33
+ });
34
+ };
35
+
36
+ var _default = Options;
37
+ exports.default = _default;
@@ -0,0 +1,203 @@
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 _propTypes = _interopRequireDefault(require("prop-types"));
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 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; }
21
+
22
+ 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; }
23
+
24
+ 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; }
25
+
26
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
27
+
28
+ 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."); }
29
+
30
+ 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); }
31
+
32
+ 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; }
33
+
34
+ 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; }
35
+
36
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
37
+
38
+ var Rewards = function Rewards(_ref) {
39
+ var rewards = _ref.rewards,
40
+ addPoints = _ref.addPoints,
41
+ indicators = _ref.indicators;
42
+ // Constantes para carrousel
43
+ var itemRef = (0, _react.useRef)();
44
+ var carouselContentRef = (0, _react.useRef)();
45
+
46
+ var _useState = (0, _react.useState)(0),
47
+ _useState2 = _slicedToArray(_useState, 2),
48
+ itemWidth = _useState2[0],
49
+ setItemWidth = _useState2[1];
50
+
51
+ var _useState3 = (0, _react.useState)(0),
52
+ _useState4 = _slicedToArray(_useState3, 2),
53
+ carouselContentWidth = _useState4[0],
54
+ setCarouselContentWidth = _useState4[1];
55
+
56
+ var _useState5 = (0, _react.useState)(0),
57
+ _useState6 = _slicedToArray(_useState5, 2),
58
+ offset = _useState6[0],
59
+ setOffset = _useState6[1];
60
+
61
+ var _useState7 = (0, _react.useState)("translateX(0px)"),
62
+ _useState8 = _slicedToArray(_useState7, 2),
63
+ transform = _useState8[0],
64
+ setTransform = _useState8[1];
65
+
66
+ var _useState9 = (0, _react.useState)(0),
67
+ _useState10 = _slicedToArray(_useState9, 2),
68
+ itemsLeft = _useState10[0],
69
+ setItemsLeft = _useState10[1];
70
+
71
+ var onlyGrade = rewards.filter(function (reward) {
72
+ return reward.type === 'grade';
73
+ }).length === rewards.length;
74
+ var filteredRewards = rewards.filter(function (reward) {
75
+ return reward.type !== 'grade';
76
+ });
77
+ var rewardsUnified = [];
78
+ filteredRewards.forEach(function (currentReward) {
79
+ var found = rewardsUnified.findIndex(function (reward) {
80
+ return currentReward.id === reward.id;
81
+ });
82
+
83
+ if (found >= 0) {
84
+ rewardsUnified[found].points += currentReward.points;
85
+ } else {
86
+ rewardsUnified.push(_objectSpread({}, currentReward));
87
+ }
88
+ });
89
+ var filteredRewardsUnified = rewardsUnified.filter(function (reward) {
90
+ return reward.points !== 0;
91
+ });
92
+ var noRewards = filteredRewardsUnified.length === 0;
93
+ (0, _react.useEffect)(function () {
94
+ if (onlyGrade) {
95
+ addPoints();
96
+ }
97
+ }, [onlyGrade, addPoints]);
98
+ (0, _react.useEffect)(function () {
99
+ if (carouselContentRef.current) {
100
+ setCarouselContentWidth(carouselContentRef.current.offsetWidth);
101
+ }
102
+ }, [carouselContentRef]);
103
+ (0, _react.useEffect)(function () {
104
+ var itemInScreen = Math.floor(carouselContentWidth / itemWidth);
105
+ var currentItemsLeft = filteredRewardsUnified.length - itemInScreen - offset;
106
+ setItemsLeft(currentItemsLeft);
107
+ }, [carouselContentWidth, itemWidth, offset, filteredRewardsUnified.length]);
108
+ (0, _react.useEffect)(function () {
109
+ setTransform("translateX(-".concat(itemWidth * offset, "px)"));
110
+ }, [itemWidth, offset]);
111
+ (0, _react.useEffect)(function () {
112
+ if (itemRef.current) {
113
+ var separatorWidth = Number.parseInt(window.getComputedStyle(itemRef.current).getPropertyValue('margin-right').split('px')[0], 0);
114
+ var iWidth = Number.parseInt(itemRef.current.offsetWidth, 0);
115
+ setItemWidth(separatorWidth + iWidth);
116
+ }
117
+ }, [carouselContentRef, itemRef]);
118
+
119
+ var onClickPrev = function onClickPrev() {
120
+ if (offset <= 0) return;
121
+ setOffset(offset - 1);
122
+ };
123
+
124
+ var onClickNext = function onClickNext() {
125
+ if (itemsLeft <= 1) {
126
+ return;
127
+ }
128
+
129
+ setOffset(offset + 1);
130
+ };
131
+
132
+ if (onlyGrade || noRewards) {
133
+ return null;
134
+ }
135
+
136
+ return /*#__PURE__*/_react.default.createElement("div", {
137
+ className: "test--results__rewards"
138
+ }, /*#__PURE__*/_react.default.createElement("span", {
139
+ onClick: onClickPrev,
140
+ className: "icon-back ".concat(filteredRewardsUnified.length < 4 ? 'visibility--hidden' : '', " ").concat(offset <= 0 ? 'disabled' : '')
141
+ }), /*#__PURE__*/_react.default.createElement("div", {
142
+ ref: carouselContentRef,
143
+ className: "test--results__carrousel"
144
+ }, /*#__PURE__*/_react.default.createElement("div", {
145
+ className: "test--results__carrousel--list test--results__centered",
146
+ style: {
147
+ transform: transform
148
+ }
149
+ }, filteredRewardsUnified.map(function (reward, i) {
150
+ var group = indicators.find(function (g) {
151
+ return g.type === reward.type;
152
+ });
153
+
154
+ if (!group) {
155
+ return null;
156
+ }
157
+
158
+ var indicator = group.records.find(function (r) {
159
+ return r.id === reward.id;
160
+ });
161
+
162
+ if (!indicator) {
163
+ return null;
164
+ }
165
+
166
+ return /*#__PURE__*/_react.default.createElement("div", {
167
+ key: indicator.name,
168
+ ref: itemRef,
169
+ className: "test--results__carrousel--item"
170
+ }, /*#__PURE__*/_react.default.createElement("div", {
171
+ className: "test--rewards__icons"
172
+ }, /*#__PURE__*/_react.default.createElement("span", {
173
+ className: indicator.icon
174
+ }), /*#__PURE__*/_react.default.createElement("div", {
175
+ className: "test--rewards__indicator\n ".concat(reward.points > 0 ? 'success' : 'failed')
176
+ }, /*#__PURE__*/_react.default.createElement("span", {
177
+ className: "".concat(reward.points > 0 ? 'icon-up' : 'icon-down')
178
+ }))), /*#__PURE__*/_react.default.createElement("span", {
179
+ className: "test--rewards__text"
180
+ }, /*#__PURE__*/_react.default.createElement("b", null, reward.points > 0 ? '+' : '', reward.points), ":", indicator.name));
181
+ }))), /*#__PURE__*/_react.default.createElement("span", {
182
+ onClick: onClickNext,
183
+ className: "icon-next ".concat(filteredRewardsUnified.length < 4 ? 'visibility--hidden' : '', " ").concat(itemsLeft <= 1 ? 'disabled' : '')
184
+ }));
185
+ };
186
+
187
+ Rewards.defaultProps = {
188
+ rewards: [],
189
+ indicators: [],
190
+ addPoints: function addPoints() {}
191
+ };
192
+ Rewards.propTypes = {
193
+ indicators: _propTypes.default.arrayOf(_propTypes.default.shape({})),
194
+ rewards: _propTypes.default.arrayOf(_propTypes.default.shape({
195
+ type: _propTypes.default.string,
196
+ id: _propTypes.default.string,
197
+ name: _propTypes.default.string,
198
+ points: _propTypes.default.number
199
+ })),
200
+ addPoints: _propTypes.default.func
201
+ };
202
+ var _default = Rewards;
203
+ 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 _DecisionComponent = _interopRequireDefault(require("./components/DecisionComponent"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _DecisionComponent.default;
13
+ exports.default = _default;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.decisionProps = void 0;
7
+ var decisionProps = {
8
+ options: [{
9
+ id: 0,
10
+ right: false,
11
+ feedback: 'dfgsdfgsdfgsdfghdfgh',
12
+ text: 'Si',
13
+ rewards: [],
14
+ audioId: '',
15
+ text_labelId: 'text_3_0_u4s8j5fa',
16
+ feedback_labelId: 'feedback_3_0_u4s8jVTv',
17
+ audioId_labelId: 'audioId_3_0_u4s8jyiK'
18
+ }, {
19
+ id: 1,
20
+ right: false,
21
+ feedback: 'fasdfasdfg',
22
+ text: 'No',
23
+ rewards: [],
24
+ audioId: '',
25
+ text_labelId: 'text_3_1_u4s8jzBF',
26
+ feedback_labelId: 'feedback_3_1_u4s8jWNa',
27
+ audioId_labelId: 'audioId_3_1_u4s8jaJY'
28
+ }, {
29
+ id: 2,
30
+ right: true,
31
+ feedback: 'asdfasd',
32
+ text: 'Patata',
33
+ rewards: [],
34
+ audioId: '',
35
+ text_labelId: 'text_3_2_u4s8jA2Z',
36
+ feedback_labelId: 'feedback_3_2_u4s8jBIJ',
37
+ audioId_labelId: 'audioId_3_2_u4s8j23g'
38
+ }],
39
+ required: true,
40
+ question: 'Funciona la decisión',
41
+ question_labelId: 'question_3_u4s8i10a'
42
+ };
43
+ exports.decisionProps = decisionProps;
@@ -0,0 +1,294 @@
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 _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _reactTypist = _interopRequireDefault(require("react-typist"));
15
+
16
+ var _languages = _interopRequireDefault(require("./languages"));
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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
25
+
26
+ 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."); }
27
+
28
+ 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); }
29
+
30
+ 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; }
31
+
32
+ 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; }
33
+
34
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
+
36
+ var themes = {
37
+ theme1: {
38
+ bg: 1,
39
+ color: 1,
40
+ typo: 2
41
+ },
42
+ theme2: {
43
+ bg: 3,
44
+ color: 2,
45
+ typo: 3
46
+ },
47
+ theme3: {
48
+ bg: 5,
49
+ color: 4,
50
+ typo: 1
51
+ },
52
+ theme4: {
53
+ bg: 1,
54
+ color: 3,
55
+ typo: 2
56
+ },
57
+ theme5: {
58
+ bg: 2,
59
+ color: 5,
60
+ typo: 1
61
+ },
62
+ theme6: {
63
+ bg: 5,
64
+ color: 6,
65
+ typo: 2
66
+ },
67
+ theme7: {
68
+ bg: 1,
69
+ color: 7,
70
+ typo: 3
71
+ }
72
+ };
73
+
74
+ var HackerPuzzleComponent = function HackerPuzzleComponent(_ref) {
75
+ var emitEvent = _ref.emitEvent,
76
+ info = _ref.info,
77
+ themeNumber = _ref.themeNumber,
78
+ type = _ref.type,
79
+ writingSpeed = _ref.writingSpeed,
80
+ disableExit = _ref.disableExit,
81
+ setResolveAction = _ref.setResolveAction;
82
+
83
+ var translate = function translate(id) {
84
+ return emitEvent({
85
+ type: 'translate',
86
+ payload: id
87
+ });
88
+ };
89
+
90
+ var solution = info.solution;
91
+ var defaultTheme = 1;
92
+ var currentTheme = themes['theme' + (themeNumber || defaultTheme)];
93
+
94
+ var _useState = (0, _react.useState)(''),
95
+ _useState2 = _slicedToArray(_useState, 2),
96
+ codeContainer = _useState2[0],
97
+ setCodeContainer = _useState2[1];
98
+
99
+ var _useState3 = (0, _react.useState)(0),
100
+ _useState4 = _slicedToArray(_useState3, 2),
101
+ currentLine = _useState4[0],
102
+ setCurrentLine = _useState4[1];
103
+
104
+ var _useState5 = (0, _react.useState)(0),
105
+ _useState6 = _slicedToArray(_useState5, 2),
106
+ progress = _useState6[0],
107
+ setProgress = _useState6[1];
108
+
109
+ var _useState7 = (0, _react.useState)(false),
110
+ _useState8 = _slicedToArray(_useState7, 2),
111
+ finished = _useState8[0],
112
+ setFinished = _useState8[1];
113
+
114
+ var _useState9 = (0, _react.useState)({
115
+ start: 0,
116
+ end: 0
117
+ }),
118
+ _useState10 = _slicedToArray(_useState9, 2),
119
+ lettersGroup = _useState10[0],
120
+ setLettersGroup = _useState10[1];
121
+
122
+ var el = (0, _react.useRef)();
123
+ var code = (0, _react.useRef)();
124
+ var hackerPuzzleCompleted = translate('puzzle.hacker.crackedPassword');
125
+
126
+ var checkEnd = function checkEnd(end, actual) {
127
+ return end > actual.length ? actual.length : end;
128
+ };
129
+
130
+ var renderProgressBar = function renderProgressBar() {
131
+ var lines = _languages.default[type];
132
+
133
+ if (lines) {
134
+ var totalLength = lines.reduce(function (acc, current) {
135
+ return (acc.length ? acc.length : acc) + current.length;
136
+ });
137
+ var percentage = Math.floor(progress * 100 / totalLength);
138
+ var classProgressLabel = percentage === 100 ? 'puzzle--hacker__percentage percentage--label' : 'puzzle--hacker__percentage';
139
+ return /*#__PURE__*/_react.default.createElement("div", {
140
+ className: "puzzle--hacker__progress"
141
+ }, /*#__PURE__*/_react.default.createElement("span", {
142
+ className: "puzzle--hacker__progress--item",
143
+ style: {
144
+ width: "".concat(Math.floor(progress * 100 / totalLength), "%")
145
+ }
146
+ }, /*#__PURE__*/_react.default.createElement("span", {
147
+ className: classProgressLabel
148
+ }, percentage, "%")));
149
+ }
150
+
151
+ return null;
152
+ };
153
+
154
+ var renderCode = function renderCode() {
155
+ var text = codeContainer;
156
+ var split = text.split('<br>');
157
+
158
+ if (split.length > 0) {
159
+ return split.map(function (line, ind) {
160
+ var newLine = line.replace(/ /g, "\xA0");
161
+ return /*#__PURE__*/_react.default.createElement("p", {
162
+ key: "line_".concat(ind)
163
+ }, newLine);
164
+ });
165
+ }
166
+
167
+ return /*#__PURE__*/_react.default.createElement("p", null, text);
168
+ };
169
+
170
+ var handleFinish = function handleFinish() {
171
+ emitEvent({
172
+ type: 'playSound',
173
+ payload: 'click-ui'
174
+ });
175
+ var rewards = solution.right.rewards;
176
+ emitEvent({
177
+ type: 'addPoints',
178
+ payload: rewards
179
+ });
180
+ };
181
+
182
+ (0, _react.useEffect)(function () {
183
+ if (finished) {
184
+ disableExit(true);
185
+ }
186
+ }, [finished]);
187
+ (0, _react.useEffect)(function () {
188
+ setResolveAction(function (resolve) {
189
+ setFinished(true);
190
+ setTimeout(function () {
191
+ resolve();
192
+ }, 4000);
193
+ });
194
+ }, [setResolveAction]);
195
+
196
+ var writeCode = function writeCode() {
197
+ if (_languages.default[type] && !finished) {
198
+ if (code.current) code.current.scrollTop = el.current.scrollHeight;
199
+ var lines = _languages.default[type];
200
+ var line = lines[currentLine];
201
+ var totalLength = lines.reduce(function (acc, current) {
202
+ return (acc.length ? acc.length : acc) + current.length;
203
+ });
204
+ var speed = writingSpeed > 0 ? writingSpeed : Math.floor(totalLength / 50) + currentLine;
205
+
206
+ if (line) {
207
+ var letters = line.split('');
208
+ var currentTextEnd = checkEnd(lettersGroup.end, letters);
209
+ var currentText = letters.slice(lettersGroup.start, currentTextEnd);
210
+ var text = codeContainer + currentText.join('');
211
+ setProgress(progress + currentText.join('').length);
212
+ setCodeContainer(text);
213
+
214
+ if (currentTextEnd === letters.length) {
215
+ if (currentLine + 1 >= lines.length) {
216
+ emitEvent({
217
+ type: 'playSound',
218
+ payload: 'finish-level'
219
+ });
220
+ setFinished(true);
221
+ } else {
222
+ setCurrentLine(currentLine + 1);
223
+ setCodeContainer("".concat(codeContainer + currentText.join(''), "<br>"));
224
+ setLettersGroup({
225
+ start: 0,
226
+ end: checkEnd(speed, letters)
227
+ });
228
+ }
229
+ } else {
230
+ setLettersGroup({
231
+ start: currentTextEnd,
232
+ end: checkEnd(currentTextEnd + speed, letters)
233
+ });
234
+ }
235
+ }
236
+ }
237
+ };
238
+
239
+ var handleKeyPress = function handleKeyPress(event) {
240
+ event.preventDefault();
241
+ writeCode();
242
+ };
243
+
244
+ return /*#__PURE__*/_react.default.createElement("div", {
245
+ tabIndex: "0",
246
+ "data-testid": "hacker",
247
+ ref: el,
248
+ onKeyPress: handleKeyPress,
249
+ onTouchStart: handleKeyPress,
250
+ className: "puzzle--hacker__container background-hacker-".concat(currentTheme.bg)
251
+ }, /*#__PURE__*/_react.default.createElement("div", {
252
+ className: "puzzle--hacker__header"
253
+ }, /*#__PURE__*/_react.default.createElement("span", {
254
+ className: "title"
255
+ }, "Console")), /*#__PURE__*/_react.default.createElement("div", {
256
+ className: "puzzle--hacker__body color-hacker-".concat(currentTheme.color, " typography-hacker-").concat(currentTheme.typo)
257
+ }, /*#__PURE__*/_react.default.createElement("div", {
258
+ className: "puzzle--hacker__code",
259
+ ref: code
260
+ }, renderCode(), finished && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactTypist.default, {
261
+ avgTypingDelay: 110,
262
+ onCharacterTyped: function onCharacterTyped() {
263
+ if (code.current) code.current.scrollTop = el.current.scrollHeight;
264
+ },
265
+ cursor: {
266
+ hideWhenDone: true
267
+ },
268
+ className: "puzzle--hacker__result"
269
+ }, /*#__PURE__*/_react.default.createElement(_reactTypist.default.Delay, {
270
+ ms: 300
271
+ }), /*#__PURE__*/_react.default.createElement("span", null, "".concat(hackerPuzzleCompleted)), /*#__PURE__*/_react.default.createElement("br", null), solution.right.desc ? solution.right.desc : ''))), renderProgressBar()), finished && /*#__PURE__*/_react.default.createElement("div", {
272
+ className: "position--absolute bottom center"
273
+ }, /*#__PURE__*/_react.default.createElement("button", {
274
+ type: "button",
275
+ className: "gat--btn gat--btn__primary gat--btn__cracker",
276
+ onClick: handleFinish()
277
+ }, translate('screens.continue'))));
278
+ };
279
+
280
+ HackerPuzzleComponent.defaultProps = {
281
+ type: '',
282
+ writingSpeed: 0,
283
+ context: {},
284
+ info: {},
285
+ themeNumber: 1
286
+ };
287
+ HackerPuzzleComponent.propTypes = {
288
+ type: _propTypes.default.string,
289
+ writingSpeed: _propTypes.default.number,
290
+ themeNumber: _propTypes.default.number,
291
+ info: _propTypes.default.shape({})
292
+ };
293
+ var _default = HackerPuzzleComponent;
294
+ exports.default = _default;