@gamelearn/arcade-components 0.4.0 → 0.4.2-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 (71) hide show
  1. package/dist/components/arcade-render/element/AnimateElement.js +6 -2
  2. package/dist/components/arcade-render/element/index.js +10 -18
  3. package/dist/components/arcade-render/loading/LoadingLogic.js +28 -1
  4. package/dist/components/arcade-render/mocks/index.js +3 -3
  5. package/dist/components/chained-image-click-puzzle-component/components/ChainedImageClickPuzzleComponent.js +73 -0
  6. package/dist/components/chained-image-click-puzzle-component/components/CurrentImagePuzzle.js +155 -0
  7. package/dist/components/chained-image-click-puzzle-component/index.js +13 -0
  8. package/dist/components/chained-image-click-puzzle-component/mocks/mockForStory.js +163 -0
  9. package/dist/components/comic-component/mocks/mockForStory.js +4 -4
  10. package/dist/components/conversational-pro-component/components/scene/Panel.js +3 -0
  11. package/dist/components/conversational-pro-component/mocks/mockForStory.js +20 -20
  12. package/dist/components/drag-item-puzzle-component/components/DragItemPuzzleComponent.js +329 -0
  13. package/dist/components/drag-item-puzzle-component/components/Messages.js +55 -0
  14. package/dist/components/drag-item-puzzle-component/index.js +13 -0
  15. package/dist/components/drag-item-puzzle-component/mocks/mockForStory.js +79 -0
  16. package/dist/components/hanged-puzzle-component/mocks/mockForStory.js +1 -1
  17. package/dist/components/image-click-wrapper-component/components/Area/index.js +1 -1
  18. package/dist/components/image-click-wrapper-component/components/Feedback/index.js +4 -5
  19. package/dist/components/image-click-wrapper-component/components/ImageClickWrapperComponent.js +31 -17
  20. package/dist/components/image-component/mocks/mockForStory.js +3 -3
  21. package/dist/components/index.js +40 -0
  22. package/dist/components/inventory-item/components/InventoryItem.js +2 -1
  23. package/dist/components/keyboard-puzzle-component/mocks/mockForStory.js +1 -1
  24. package/dist/components/login-puzzle-component/mocks/mockForStory.js +3 -3
  25. package/dist/components/pdf-component/components/PdfComponent.js +40 -7
  26. package/dist/components/pdf-component/components/PdfVisor.js +86 -33
  27. package/dist/components/pdf-component/mocks/mockForProps.js +21 -5
  28. package/dist/components/terminal-puzzle-component/components/FilesGroup/Item.js +32 -0
  29. package/dist/components/terminal-puzzle-component/components/FilesGroup/index.js +74 -0
  30. package/dist/components/terminal-puzzle-component/components/Image/index.js +26 -0
  31. package/dist/components/terminal-puzzle-component/components/TerminalPuzzleComponent.js +163 -0
  32. package/dist/components/terminal-puzzle-component/components/Visor/index.js +133 -0
  33. package/dist/components/terminal-puzzle-component/components/utils/index.js +29 -0
  34. package/dist/components/terminal-puzzle-component/index.js +13 -0
  35. package/dist/components/terminal-puzzle-component/mocks/mockForStory.js +190 -0
  36. package/dist/components/video-component/mocks/mockForStory.js +5 -5
  37. package/dist/components/video-visor/mocks/mockForStory.js +4 -4
  38. package/dist/components/web-builder-puzzle-component/Popups/PopupColorComponent/index.js +99 -0
  39. package/dist/components/web-builder-puzzle-component/Popups/PopupImageComponent/index.js +113 -0
  40. package/dist/components/web-builder-puzzle-component/Popups/PopupTextComponent/index.js +122 -0
  41. package/dist/components/web-builder-puzzle-component/Popups/index.js +31 -0
  42. package/dist/components/web-builder-puzzle-component/Templates/Bank.js +98 -0
  43. package/dist/components/web-builder-puzzle-component/Templates/Facebook.js +39 -0
  44. package/dist/components/web-builder-puzzle-component/Templates/resourcePath.js +9 -0
  45. package/dist/components/web-builder-puzzle-component/components/EditButton/index.js +28 -0
  46. package/dist/components/web-builder-puzzle-component/components/Feedback/index.js +38 -0
  47. package/dist/components/web-builder-puzzle-component/components/PublishButton/index.js +29 -0
  48. package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/BankBody.js +124 -0
  49. package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/FacebookBody.js +154 -0
  50. package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/index.js +32 -0
  51. package/dist/components/web-builder-puzzle-component/components/WebBuilderFront/index.js +98 -0
  52. package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/BankHeader.js +92 -0
  53. package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/FacebookHeader.js +50 -0
  54. package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/index.js +47 -0
  55. package/dist/components/web-builder-puzzle-component/components/WebBuilderPuzzleComponent.js +337 -0
  56. package/dist/components/web-builder-puzzle-component/components/WebBuilderTopBar/index.js +36 -0
  57. package/dist/components/web-builder-puzzle-component/index.js +13 -0
  58. package/dist/components/web-builder-puzzle-component/mocks/mockForStory.js +29 -0
  59. package/dist/components/writer-puzzle-component/components/ElectionComponent.js +89 -0
  60. package/dist/components/writer-puzzle-component/components/FeedbackComponent.js +138 -0
  61. package/dist/components/writer-puzzle-component/components/FeedbackElement.js +40 -0
  62. package/dist/components/writer-puzzle-component/components/FinishedTextComponent.js +36 -0
  63. package/dist/components/writer-puzzle-component/components/FixedComponent.js +166 -0
  64. package/dist/components/writer-puzzle-component/components/Rewards.js +203 -0
  65. package/dist/components/writer-puzzle-component/components/SingleElection.js +141 -0
  66. package/dist/components/writer-puzzle-component/components/WriterPuzzleComponent.js +552 -0
  67. package/dist/components/writer-puzzle-component/index.js +13 -0
  68. package/dist/components/writer-puzzle-component/mocks/mockForStory.js +861 -0
  69. package/dist/helpers/drawLOD.js +35 -47
  70. package/dist/helpers/useGLB.js +22 -8
  71. package/package.json +6 -14
@@ -0,0 +1,36 @@
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
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _htmlReactParser = _interopRequireDefault(require("html-react-parser"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ var FinishedTextComponent = function FinishedTextComponent(_ref) {
17
+ var textToPrint = _ref.textToPrint,
18
+ correct = _ref.correct;
19
+ var splittedText = textToPrint.split('<p>');
20
+ splittedText.shift();
21
+ var hasMultipleP = splittedText.length > 1;
22
+ return /*#__PURE__*/_react.default.createElement("span", {
23
+ className: "writer-inline ".concat(hasMultipleP ? 'multiple' : '', " ").concat(correct)
24
+ }, (0, _htmlReactParser.default)(textToPrint));
25
+ };
26
+
27
+ FinishedTextComponent.defaultProps = {
28
+ correct: '',
29
+ textToPrint: ''
30
+ };
31
+ FinishedTextComponent.propTypes = {
32
+ correct: _propTypes.default.string,
33
+ textToPrint: _propTypes.default.string
34
+ };
35
+ var _default = FinishedTextComponent;
36
+ exports.default = _default;
@@ -0,0 +1,166 @@
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 _htmlReactParser = _interopRequireDefault(require("html-react-parser"));
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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
25
+
26
+ 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."); }
27
+
28
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
29
+
30
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
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 Fakecursor = function Fakecursor() {
45
+ return /*#__PURE__*/_react.default.createElement("span", {
46
+ className: "fakecursor"
47
+ }, "|");
48
+ };
49
+
50
+ var FixedComponent = function FixedComponent(_ref) {
51
+ var delay = _ref.delay,
52
+ index = _ref.index,
53
+ length = _ref.length,
54
+ textToPrint = _ref.textToPrint,
55
+ setDoneTyping = _ref.setDoneTyping,
56
+ nextParagraphType = _ref.nextParagraphType,
57
+ isWriting = _ref.isWriting;
58
+
59
+ var _useState = (0, _react.useState)(true),
60
+ _useState2 = _slicedToArray(_useState, 2),
61
+ isWritingLetters = _useState2[0],
62
+ setIsWritingLetters = _useState2[1];
63
+
64
+ var _useState3 = (0, _react.useState)(''),
65
+ _useState4 = _slicedToArray(_useState3, 2),
66
+ newtext = _useState4[0],
67
+ setNewText = _useState4[1];
68
+
69
+ var _useState5 = (0, _react.useState)(false),
70
+ _useState6 = _slicedToArray(_useState5, 2),
71
+ isLast = _useState6[0],
72
+ setIsLast = _useState6[1];
73
+
74
+ (0, _react.useEffect)(function () {
75
+ setIsLast(index === length - 1);
76
+ }, [index, length]);
77
+
78
+ var stripHtmlTags = function stripHtmlTags(str) {
79
+ if (!str || !str.length) return '';
80
+ var strTemp = str.replace(/<script.*?>.*?<\/script>/gim, '');
81
+ var tmp = document.createElement('DIV');
82
+ tmp.innerHTML = strTemp;
83
+ return tmp.textContent || tmp.innerText || '';
84
+ };
85
+
86
+ (0, _react.useEffect)(function () {
87
+ var separateTextAndMarkIt = function separateTextAndMarkIt() {
88
+ var arrayWords = textToPrint.trim().split(' ');
89
+ var last = replaceLastWordHtml(arrayWords, arrayWords.length - 1);
90
+ return last.join(' ');
91
+ };
92
+
93
+ var replaceLastWordHtml = function replaceLastWordHtml(arrayWords, indexWord) {
94
+ if (indexWord < 0) return [''];
95
+
96
+ var arrayCopy = _toConsumableArray(arrayWords);
97
+
98
+ if (stripHtmlTags(arrayWords[indexWord]).length !== 0) {
99
+ var lastWord = arrayWords[indexWord];
100
+ arrayCopy[indexWord] = "<span class=\"lastWord\" >".concat(lastWord, "</span>");
101
+ return arrayCopy;
102
+ }
103
+
104
+ return replaceLastWordHtml(arrayWords, indexWord - 1);
105
+ };
106
+
107
+ if (nextParagraphType === 'election') {
108
+ setNewText(separateTextAndMarkIt());
109
+ } else {
110
+ setTimeout(function () {
111
+ setNewText(textToPrint);
112
+ }, 200);
113
+ }
114
+ }, [nextParagraphType, textToPrint]);
115
+
116
+ var typingDone = function typingDone() {
117
+ setDoneTyping(true);
118
+ setIsWritingLetters(false);
119
+ };
120
+
121
+ var splittedText = textToPrint.split('<p>');
122
+ splittedText.shift();
123
+ var hasMultipleP = splittedText.length > 1;
124
+
125
+ if (isWritingLetters && textToPrint !== '' && newtext !== '') {
126
+ return /*#__PURE__*/_react.default.createElement("span", {
127
+ className: "writer-inline ".concat(hasMultipleP ? 'multiple' : '', " ").concat(isLast ? 'Typist' : ''),
128
+ "data-testid": "result-".concat(index)
129
+ }, /*#__PURE__*/_react.default.createElement(_reactTypist.default, {
130
+ startDelay: 300,
131
+ avgTypingDelay: delay,
132
+ stdTypingDelay: 10,
133
+ onCharacterTyped: isWriting,
134
+ onTypingDone: typingDone,
135
+ cursor: {
136
+ hideWhenDone: true,
137
+ hideWhenDoneDelay: 200
138
+ },
139
+ blink: true
140
+ }, (0, _htmlReactParser.default)(textToPrint)));
141
+ }
142
+
143
+ return /*#__PURE__*/_react.default.createElement("span", {
144
+ className: "writer-inline ".concat(hasMultipleP ? 'multiple' : '', " ").concat(isLast ? 'Typist' : ''),
145
+ "data-testid": "result-".concat(index)
146
+ }, (0, _htmlReactParser.default)(newtext), nextParagraphType === 'election' && isLast && /*#__PURE__*/_react.default.createElement(Fakecursor, null));
147
+ };
148
+
149
+ FixedComponent.defaultProps = {
150
+ delay: 0,
151
+ textToPrint: '',
152
+ setDoneTyping: function setDoneTyping() {},
153
+ nextParagraphType: '',
154
+ isWriting: function isWriting() {}
155
+ };
156
+ FixedComponent.propTypes = {
157
+ delay: _propTypes.default.number,
158
+ index: _propTypes.default.number.isRequired,
159
+ length: _propTypes.default.number.isRequired,
160
+ textToPrint: _propTypes.default.string,
161
+ setDoneTyping: _propTypes.default.func,
162
+ nextParagraphType: _propTypes.default.string,
163
+ isWriting: _propTypes.default.func
164
+ };
165
+ var _default = FixedComponent;
166
+ 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,141 @@
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 _htmlReactParser = _interopRequireDefault(require("html-react-parser"));
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
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
23
+
24
+ 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."); }
25
+
26
+ 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); }
27
+
28
+ 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; }
29
+
30
+ 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; }
31
+
32
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
33
+
34
+ var useHover = function useHover() {
35
+ var ref = (0, _react.useRef)();
36
+
37
+ var _useState = (0, _react.useState)(false),
38
+ _useState2 = _slicedToArray(_useState, 2),
39
+ hovered = _useState2[0],
40
+ setHovered = _useState2[1];
41
+
42
+ var enter = function enter() {
43
+ return setHovered(true);
44
+ };
45
+
46
+ var leave = function leave() {
47
+ return setHovered(false);
48
+ };
49
+
50
+ (0, _react.useEffect)(function () {
51
+ var current = ref.current;
52
+ current.addEventListener('mouseenter', enter);
53
+ current.addEventListener('mouseleave', leave);
54
+ return function () {
55
+ current.removeEventListener('mouseenter', enter);
56
+ current.removeEventListener('mouseleave', leave);
57
+ };
58
+ }, [ref]);
59
+ return [ref, hovered];
60
+ };
61
+
62
+ var SingleElection = function SingleElection(_ref) {
63
+ var option = _ref.option,
64
+ setCurrentDecisionSelected = _ref.setCurrentDecisionSelected,
65
+ index = _ref.index,
66
+ setCurrentDecisionHovered = _ref.setCurrentDecisionHovered;
67
+
68
+ var _useHover = useHover(),
69
+ _useHover2 = _slicedToArray(_useHover, 2),
70
+ ref = _useHover2[0],
71
+ hovered = _useHover2[1];
72
+
73
+ var useText = function useText(opt) {
74
+ if (opt.previewText !== '') {
75
+ return (0, _htmlReactParser.default)(opt.previewText);
76
+ }
77
+
78
+ return (0, _htmlReactParser.default)(opt.fullText);
79
+ };
80
+
81
+ var fullTextIcon = function fullTextIcon(opt) {
82
+ if (opt.previewText !== '') {
83
+ return 'icon-eye'; // Icon only appears if there is fullText to show
84
+ }
85
+
86
+ return '';
87
+ };
88
+
89
+ var selectOption = function selectOption() {
90
+ setCurrentDecisionSelected(index);
91
+ };
92
+
93
+ var moveEyeArrow = function moveEyeArrow() {
94
+ setCurrentDecisionHovered("pos".concat(index + 1));
95
+ };
96
+
97
+ var changeEyeBack = function changeEyeBack(e) {
98
+ e.target.style.background = '';
99
+ setCurrentDecisionHovered('');
100
+ };
101
+
102
+ return /*#__PURE__*/_react.default.createElement("div", {
103
+ className: "single-election"
104
+ }, /*#__PURE__*/_react.default.createElement("div", {
105
+ className: "single-election__cta"
106
+ }, /*#__PURE__*/_react.default.createElement("button", {
107
+ className: "single-election__btn",
108
+ type: "button",
109
+ onClick: function onClick() {
110
+ return selectOption();
111
+ }
112
+ }, useText(option)), /*#__PURE__*/_react.default.createElement("div", {
113
+ onMouseOver: moveEyeArrow,
114
+ onFocus: moveEyeArrow,
115
+ onMouseLeave: changeEyeBack,
116
+ ref: ref,
117
+ className: fullTextIcon(option)
118
+ })), hovered && /*#__PURE__*/_react.default.createElement("div", {
119
+ className: "single-election__complete"
120
+ }, /*#__PURE__*/_react.default.createElement("div", null, (0, _htmlReactParser.default)(option.fullText))));
121
+ };
122
+
123
+ SingleElection.defaultProps = {
124
+ setCurrentDecisionSelected: function setCurrentDecisionSelected() {},
125
+ setCurrentDecisionHovered: function setCurrentDecisionHovered() {},
126
+ option: {},
127
+ index: 0
128
+ };
129
+ SingleElection.propTypes = {
130
+ setCurrentDecisionSelected: _propTypes.default.func,
131
+ setCurrentDecisionHovered: _propTypes.default.func,
132
+ index: _propTypes.default.number,
133
+ option: _propTypes.default.shape({
134
+ previewText: _propTypes.default.string,
135
+ correct: _propTypes.default.bool,
136
+ fullText: _propTypes.default.string,
137
+ feedback: _propTypes.default.shape({})
138
+ })
139
+ };
140
+ var _default = SingleElection;
141
+ exports.default = _default;