@gamelearn/arcade-components 0.4.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 (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
@@ -21,15 +21,14 @@ var Feedback = function Feedback(_ref) {
21
21
  var text = _ref.text,
22
22
  success = _ref.success,
23
23
  playSound = _ref.playSound;
24
- var play = playSound(success ? 'score' : 'fail');
25
24
  (0, _react.useEffect)(function () {
26
- if (text) {
27
- play();
25
+ if (text && playSound) {
26
+ playSound(success ? 'score' : 'fail');
28
27
  }
29
- }, [play, text]);
28
+ }, [playSound, success, text]);
30
29
 
31
30
  if (!text) {
32
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
31
+ return null;
33
32
  }
34
33
 
35
34
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -105,7 +105,12 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
105
105
  var _useState7 = (0, _react.useState)(false),
106
106
  _useState8 = _slicedToArray(_useState7, 2),
107
107
  showWrongFeedback = _useState8[0],
108
- setShowWrongFeedback = _useState8[1]; // Common config
108
+ setShowWrongFeedback = _useState8[1];
109
+
110
+ var _useState9 = (0, _react.useState)(false),
111
+ _useState10 = _slicedToArray(_useState9, 2),
112
+ disableClick = _useState10[0],
113
+ setDisableClick = _useState10[1]; // Common config
109
114
 
110
115
 
111
116
  var soundActions = props.soundActions,
@@ -122,10 +127,8 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
122
127
  defaultCompleted = props.defaultCompleted,
123
128
  isLast = props.isLast,
124
129
  hideContinue = props.hideContinue,
125
- className = props.className;
126
-
127
- var _soundActions = _slicedToArray(soundActions, 1),
128
- playSound = _soundActions[0];
130
+ className = props.className,
131
+ emitFinish = props.emitFinish;
129
132
 
130
133
  var translate = function translate(id) {
131
134
  return emitEvent({
@@ -134,9 +137,11 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
134
137
  });
135
138
  };
136
139
 
137
- var solution = info.solution;
138
- var imageUrl = image.img.url || defaultImg; // Image Click Puzzle
140
+ var _soundActions = _slicedToArray(soundActions, 1),
141
+ playSound = _soundActions[0];
139
142
 
143
+ var solution = info.solution;
144
+ var imageUrl = image.img.url || defaultImg;
140
145
  var areasList = areas.map(function (area, index) {
141
146
  return _objectSpread({
142
147
  index: index,
@@ -151,11 +156,16 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
151
156
  });
152
157
  var handleFinish = (0, _react.useCallback)(function () {
153
158
  var rewards = solution.right.rewards;
154
- emitEvent({
155
- type: 'addPoints',
156
- payload: rewards
157
- });
158
- }, [emitEvent, solution.right]);
159
+
160
+ if (emitFinish) {
161
+ emitFinish(rewards);
162
+ } else {
163
+ emitEvent({
164
+ type: 'addPoints',
165
+ payload: rewards
166
+ });
167
+ }
168
+ }, [emitEvent, emitFinish, solution.right]);
159
169
  (0, _react.useEffect)(function () {
160
170
  if (completed) {
161
171
  disableExit(true);
@@ -169,6 +179,7 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
169
179
 
170
180
  if (areas.length === clickedZones.length) {
171
181
  setCompleted(true);
182
+ setDisableClick(true);
172
183
 
173
184
  if (hideContinue) {
174
185
  timeout = setTimeout(function () {
@@ -198,7 +209,7 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
198
209
  }, [finished, disableExit]);
199
210
 
200
211
  var handleClickOutSide = function handleClickOutSide() {
201
- if (!defaultCompleted) {
212
+ if (!disableClick && !defaultCompleted) {
202
213
  var _solution$wrong = solution.wrong,
203
214
  wrongRewards = _solution$wrong.rewards,
204
215
  feedback = _solution$wrong.desc;
@@ -212,7 +223,8 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
212
223
  } else {
213
224
  emitEvent({
214
225
  type: 'addPoints',
215
- payload: wrongRewards
226
+ payload: wrongRewards,
227
+ finish: false
216
228
  });
217
229
  }
218
230
  }
@@ -221,7 +233,7 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
221
233
  var handleAreaClick = function handleAreaClick(area) {
222
234
  if (!clickedZones.some(function (zone) {
223
235
  return zone.index === area.index;
224
- }) && !defaultCompleted && !showWrongFeedback) {
236
+ }) && !defaultCompleted && !showWrongFeedback && !disableClick) {
225
237
  var updatedClickedZones = [].concat(_toConsumableArray(clickedZones), [area]);
226
238
 
227
239
  if (hasClickOrder && area.index === clickedZones.length || !hasClickOrder) {
@@ -238,7 +250,8 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
238
250
  } else {
239
251
  emitEvent({
240
252
  type: 'addPoints',
241
- payload: wrongRewards
253
+ payload: wrongRewards,
254
+ finish: false
242
255
  });
243
256
  }
244
257
  }
@@ -253,7 +266,8 @@ var ImageClickWrapperComponent = function ImageClickWrapperComponent(props) {
253
266
  setShowWrongFeedback(false);
254
267
  emitEvent({
255
268
  type: 'addPoints',
256
- payload: info.solution.wrong.rewards
269
+ payload: info.solution.wrong.rewards,
270
+ finish: false
257
271
  });
258
272
  },
259
273
  text: info.solution.wrong.desc
@@ -13,7 +13,7 @@ var mockProps = {
13
13
  emitEvent: emitEvent,
14
14
  img: {
15
15
  imgId: 'alfalfa',
16
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/58dccfba26561500117caf53/image/603fb8b1901f3e001238e297/gif.gif',
16
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/image/603fb8b1901f3e001238e297/gif.gif',
17
17
  resourceId: '5e79e0c8f5b3a6000fd81472'
18
18
  },
19
19
  imgName: 'Hand gif',
@@ -26,7 +26,7 @@ var mockWithNotVisible = {
26
26
  emitEvent: emitEvent,
27
27
  img: {
28
28
  imgId: 'alfalfa2',
29
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/58dccfba26561500117caf53/image/603fb8b1901f3e001238e297/gif.gif',
29
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/image/603fb8b1901f3e001238e297/gif.gif',
30
30
  resourceId: '5e79e0c8f5b3a6000fd81472'
31
31
  },
32
32
  imgName: 'Hand gif',
@@ -39,7 +39,7 @@ var mockWithImageNotViewed = {
39
39
  emitEvent: emitEvent,
40
40
  img: {
41
41
  imgId: 'alfalfa2',
42
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/58dccfba26561500117caf53/image/603fb8b1901f3e001238e297/gif.gif',
42
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/image/603fb8b1901f3e001238e297/gif.gif',
43
43
  resourceId: '5e79e0c8f5b3a6000fd81472'
44
44
  },
45
45
  imgName: 'Hand gif',
@@ -131,6 +131,36 @@ Object.defineProperty(exports, "HangedPuzzleComponent", {
131
131
  return _hangedPuzzleComponent.default;
132
132
  }
133
133
  });
134
+ Object.defineProperty(exports, "ChainedImageClickPuzzleComponent", {
135
+ enumerable: true,
136
+ get: function get() {
137
+ return _chainedImageClickPuzzleComponent.default;
138
+ }
139
+ });
140
+ Object.defineProperty(exports, "WebBuilderPuzzleComponent", {
141
+ enumerable: true,
142
+ get: function get() {
143
+ return _webBuilderPuzzleComponent.default;
144
+ }
145
+ });
146
+ Object.defineProperty(exports, "WriterPuzzleComponent", {
147
+ enumerable: true,
148
+ get: function get() {
149
+ return _writerPuzzleComponent.default;
150
+ }
151
+ });
152
+ Object.defineProperty(exports, "TerminalPuzzleComponent", {
153
+ enumerable: true,
154
+ get: function get() {
155
+ return _terminalPuzzleComponent.default;
156
+ }
157
+ });
158
+ Object.defineProperty(exports, "DragItemPuzzleComponent", {
159
+ enumerable: true,
160
+ get: function get() {
161
+ return _dragItemPuzzleComponent.default;
162
+ }
163
+ });
134
164
 
135
165
  var _scene = _interopRequireDefault(require("./arcade-render/scene"));
136
166
 
@@ -172,6 +202,16 @@ var _crackerPuzzleComponent = _interopRequireDefault(require("./cracker-puzzle-c
172
202
 
173
203
  var _hangedPuzzleComponent = _interopRequireDefault(require("./hanged-puzzle-component"));
174
204
 
205
+ var _chainedImageClickPuzzleComponent = _interopRequireDefault(require("./chained-image-click-puzzle-component"));
206
+
207
+ var _webBuilderPuzzleComponent = _interopRequireDefault(require("./web-builder-puzzle-component"));
208
+
209
+ var _writerPuzzleComponent = _interopRequireDefault(require("./writer-puzzle-component"));
210
+
211
+ var _terminalPuzzleComponent = _interopRequireDefault(require("./terminal-puzzle-component"));
212
+
213
+ var _dragItemPuzzleComponent = _interopRequireDefault(require("./drag-item-puzzle-component"));
214
+
175
215
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
176
216
 
177
217
  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; }
@@ -47,11 +47,12 @@ var InventoryItem = function InventoryItem(_ref) {
47
47
  var onLoad = function onLoad(model, scene, camera) {
48
48
  if (model && orbit.current) {
49
49
  model.position.set(0, 0, 0);
50
+ scene.add(camera);
50
51
  camera.position.z += 10;
51
52
  camera.fov = 35;
52
53
  camera.updateProjectionMatrix();
53
54
  (0, _helpers.cameraFitAnyObject)(model, camera, null, orbit.current);
54
- (0, _drawLOD.default)(scene);
55
+ (0, _drawLOD.default)(scene, camera);
55
56
  }
56
57
  };
57
58
 
@@ -17,7 +17,7 @@ var mockProps = {
17
17
  keyboard: [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['*', '0', '#']],
18
18
  image: {
19
19
  img: {
20
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/58dccfba26561500117caf53/image/60508f84901f3e00123a0796/holamundo.jpg'
20
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/image/60508f84901f3e00123a0796/holamundo.jpg'
21
21
  }
22
22
  },
23
23
  info: {
@@ -16,8 +16,8 @@ var emitEvent = function emitEvent(_ref) {
16
16
 
17
17
  var mockProps = {
18
18
  emitEvent: emitEvent,
19
- user: "pepe",
20
- password: "1234",
19
+ user: 'pepe',
20
+ password: '1234',
21
21
  login: true,
22
22
  info: {
23
23
  solution: {
@@ -31,7 +31,7 @@ var mockProps = {
31
31
  },
32
32
  image: {
33
33
  img: {
34
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/development/clients/58dccfba26561500117caf53/image/60508f84901f3e00123a0796/holamundo.jpg'
34
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/image/60508f84901f3e00123a0796/holamundo.jpg'
35
35
  }
36
36
  }
37
37
  };
@@ -17,6 +17,18 @@ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return
17
17
 
18
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
19
 
20
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
21
+
22
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
23
+
24
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
25
+
26
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
27
+
28
+ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
29
+
30
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
31
+
20
32
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
21
33
 
22
34
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
@@ -25,15 +37,28 @@ var PdfComponent = function PdfComponent(_ref) {
25
37
  var emitEvent = _ref.emitEvent,
26
38
  documentType = _ref.documentType,
27
39
  name = _ref.name,
40
+ required = _ref.required,
28
41
  viewed = _ref.viewed,
29
42
  visible = _ref.visible,
30
- props = _objectWithoutProperties(_ref, ["emitEvent", "documentType", "name", "viewed", "visible"]);
43
+ props = _objectWithoutProperties(_ref, ["emitEvent", "documentType", "name", "required", "viewed", "visible"]);
44
+
45
+ var translate = function translate(id) {
46
+ return emitEvent({
47
+ type: 'translate',
48
+ payload: id
49
+ });
50
+ };
31
51
 
32
52
  var documentFile = props.document;
33
53
 
34
54
  var _ref2 = documentFile || '',
35
55
  url = _ref2.url;
36
56
 
57
+ var _useState = (0, _react.useState)(false),
58
+ _useState2 = _slicedToArray(_useState, 2),
59
+ closeVisible = _useState2[0],
60
+ setcloseVisible = _useState2[1];
61
+
37
62
  var item = (0, _react.useMemo)(function () {
38
63
  return {
39
64
  documentType: documentType,
@@ -52,17 +77,23 @@ var PdfComponent = function PdfComponent(_ref) {
52
77
  if (!visible) {
53
78
  emitFinish();
54
79
  }
80
+
81
+ if (!required) {
82
+ setcloseVisible(true);
83
+ }
55
84
  }, [visible, emitFinish]);
56
85
 
57
86
  if (!visible) {
58
87
  return null;
59
88
  }
60
89
 
90
+ var endPdf = function endPdf() {
91
+ setcloseVisible(true);
92
+ };
93
+
61
94
  return /*#__PURE__*/_react.default.createElement("div", {
62
- className: "".concat(viewed ? 'notes--results' : 'readings--container')
63
- }, /*#__PURE__*/_react.default.createElement("div", {
64
- className: viewed ? 'notes--results__text' : 'readings pdf--type'
65
- }, !viewed && /*#__PURE__*/_react.default.createElement("div", {
95
+ className: "".concat(viewed ? 'notes--results' : '')
96
+ }, !viewed && closeVisible && /*#__PURE__*/_react.default.createElement("div", {
66
97
  className: "position--absolute top right z-index1"
67
98
  }, /*#__PURE__*/_react.default.createElement("button", {
68
99
  type: "button",
@@ -71,8 +102,10 @@ var PdfComponent = function PdfComponent(_ref) {
71
102
  }, /*#__PURE__*/_react.default.createElement("span", {
72
103
  className: "icon-close"
73
104
  }))), url && /*#__PURE__*/_react.default.createElement(_PdfVisor.default, {
74
- url: url
75
- })));
105
+ url: url,
106
+ endPdf: endPdf,
107
+ translate: translate
108
+ }));
76
109
  };
77
110
 
78
111
  var _default = PdfComponent;
@@ -15,8 +15,6 @@ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return
15
15
 
16
16
  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; }
17
17
 
18
- 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); }
19
-
20
18
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
21
19
 
22
20
  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."); }
@@ -30,40 +28,50 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
30
28
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
31
29
 
32
30
  _reactPdf.pdfjs.GlobalWorkerOptions.workerSrc = "//cdnjs.cloudflare.com/ajax/libs/pdf.js/".concat(_reactPdf.pdfjs.version, "/pdf.worker.js");
33
- ;
34
-
35
- var PageList = function PageList(_ref) {
36
- var pages = _ref.pages;
37
- var isMobile = (0, _react.useMemo)(function () {
38
- return navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(android)|(webOS)/i);
39
- }, []);
40
-
41
- if (pages === 1) {
42
- return /*#__PURE__*/_react.default.createElement(_reactPdf.Page, {
43
- pageNumber: pages
44
- });
45
- }
46
-
47
- return Array(pages).fill(1).map(function (_, i) {
48
- return /*#__PURE__*/_react.default.createElement(_reactPdf.Page, {
49
- renderTextLayer: false,
50
- key: i,
51
- pageNumber: i + 1,
52
- scale: isMobile ? 1 : 2
53
- });
54
- });
55
- };
56
31
 
57
- var PdfVisor = function PdfVisor(_ref2) {
58
- var url = _ref2.url;
32
+ var PdfVisor = function PdfVisor(_ref) {
33
+ var url = _ref.url,
34
+ endPdf = _ref.endPdf,
35
+ translate = _ref.translate;
36
+ var scrollElement = (0, _react.useRef)();
59
37
 
60
- var _useState = (0, _react.useState)(0),
38
+ var _useState = (0, _react.useState)(1),
61
39
  _useState2 = _slicedToArray(_useState, 2),
62
40
  pages = _useState2[0],
63
41
  setPages = _useState2[1];
64
42
 
43
+ var _useState3 = (0, _react.useState)(true),
44
+ _useState4 = _slicedToArray(_useState3, 2),
45
+ overlay = _useState4[0],
46
+ setOverlay = _useState4[1];
47
+
48
+ var _useState5 = (0, _react.useState)(),
49
+ _useState6 = _slicedToArray(_useState5, 2),
50
+ currentPage = _useState6[0],
51
+ setCurrentPage = _useState6[1];
52
+
53
+ var isMobile = (0, _react.useMemo)(function () {
54
+ return navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(android)|(webOS)/i);
55
+ }, []);
56
+ var scale = isMobile ? 1 : 2;
65
57
  var handleLoadSucess = (0, _react.useCallback)(function (pdf) {
66
58
  setPages(pdf.numPages);
59
+
60
+ var timeOut = function timeOut() {
61
+ setTimeout(function () {
62
+ if (scrollElement.current.scrollHeight <= scrollElement.current.offsetHeight) {
63
+ setOverlay(false);
64
+ }
65
+ }, 1000);
66
+ return function () {
67
+ if (timeOut) clearTimeout(timeOut);
68
+ };
69
+ };
70
+
71
+ timeOut();
72
+ }, []);
73
+ (0, _react.useEffect)(function () {
74
+ setCurrentPage(1);
67
75
  }, []);
68
76
  var documentProps = {
69
77
  file: url,
@@ -73,11 +81,56 @@ var PdfVisor = function PdfVisor(_ref2) {
73
81
  return console.log(error);
74
82
  }
75
83
  };
76
- return /*#__PURE__*/_react.default.createElement(_reactPdf.Document, _extends({
77
- className: "readings--pdf"
78
- }, documentProps), /*#__PURE__*/_react.default.createElement(PageList, {
79
- pages: pages
80
- }));
84
+
85
+ var turnPage = function turnPage(value) {
86
+ scrollElement.current.scrollTo(0, 0);
87
+ setOverlay(false);
88
+ setCurrentPage(currentPage + value);
89
+
90
+ if (currentPage === pages - 1) {
91
+ endPdf();
92
+ }
93
+ };
94
+
95
+ var removeOverlay = function removeOverlay() {
96
+ setOverlay(false);
97
+ };
98
+
99
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
100
+ className: "pdf-box"
101
+ }, /*#__PURE__*/_react.default.createElement("div", {
102
+ className: "pdf-box__scrollwrap"
103
+ }, /*#__PURE__*/_react.default.createElement("div", {
104
+ onScroll: removeOverlay,
105
+ ref: scrollElement,
106
+ className: "pdf-box__scroll ".concat(overlay ? 'pdf-box__scroll--overlay' : '')
107
+ }, /*#__PURE__*/_react.default.createElement(_reactPdf.Document, documentProps, /*#__PURE__*/_react.default.createElement(_reactPdf.Page, {
108
+ renderTextLayer: false,
109
+ scale: scale,
110
+ pageNumber: currentPage
111
+ })), /*#__PURE__*/_react.default.createElement("div", {
112
+ className: "pdf-box__mouse icon-scroll-down-black"
113
+ })), pages > 1 && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
114
+ className: "pdf-box__paginator"
115
+ }, /*#__PURE__*/_react.default.createElement("span", null, translate('storylines.misc.page'), " ", currentPage, ' ', translate('storylines.misc.of'), " ", pages)))), pages > 1 && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("button", {
116
+ className: "pdf-box__arrow pdf-box__arrow--left gat--btn__round ".concat(currentPage === 1 ? 'pdf-box__arrow--hidden' : ''),
117
+ type: "button",
118
+ disabled: currentPage === 1,
119
+ onClick: function onClick() {
120
+ return turnPage(-1);
121
+ }
122
+ }, /*#__PURE__*/_react.default.createElement("span", {
123
+ className: "icon-back"
124
+ })), /*#__PURE__*/_react.default.createElement("button", {
125
+ className: "pdf-box__arrow pdf-box__arrow--right gat--btn__round ".concat(currentPage === pages ? 'disabled' : ''),
126
+ type: "button",
127
+ disabled: currentPage === pages,
128
+ onClick: function onClick() {
129
+ return turnPage(1);
130
+ }
131
+ }, /*#__PURE__*/_react.default.createElement("span", {
132
+ className: "icon-next"
133
+ })))));
81
134
  };
82
135
 
83
136
  var _default = PdfVisor;
@@ -5,19 +5,35 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.mockProps = void 0;
7
7
 
8
- var emitEvent = function emitEvent() {
8
+ var emitEvent = function emitEvent(action) {
9
9
  console.log('Emit event called');
10
+
11
+ if (action.type === 'translate') {
12
+ return action.payload;
13
+ }
10
14
  };
11
15
 
12
- var mockProps = {
16
+ var mockProps = [{
13
17
  emitEvent: emitEvent,
14
18
  documentType: 'lesson',
15
19
  name: 'pdf',
20
+ required: false,
16
21
  document: {
17
- url: 'https://s3-eu-west-1.amazonaws.com/gl-lms-storage/stag/clients/58dccfba26561500117caf53/documents/01.%20Demo%20Presentacion%20DE.pdf?',
18
- resourceId: "test"
22
+ url: 'https://min.int.gamelearn.io/cooked.gl-lms-storage/clients/58dccfba26561500117caf53/pdf/60af606c6deb7a0011201fd6/diploma_2100_minio.pdf',
23
+ resourceId: 'test'
19
24
  },
20
25
  visible: true,
21
26
  viewed: false
22
- };
27
+ }, {
28
+ emitEvent: emitEvent,
29
+ documentType: 'lesson',
30
+ name: 'pdf',
31
+ required: true,
32
+ document: {
33
+ url: 'https://min.gamelearn.io/cooked.gl-lms-storage/clients/5981fca94d82290bcbe957fe/pdf/602e36b777cf020011920783/ZULU%CC%81-PDF%20Cromo%202md.pdf',
34
+ resourceId: 'test'
35
+ },
36
+ visible: true,
37
+ viewed: false
38
+ }];
23
39
  exports.mockProps = mockProps;
@@ -0,0 +1,32 @@
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 _utils = require("../utils");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ var Item = function Item(_ref) {
15
+ var item = _ref.item,
16
+ selectItem = _ref.selectItem;
17
+ var filename = item.name;
18
+ return /*#__PURE__*/_react.default.createElement("li", {
19
+ className: "puzzle--terminal__folder__list--item"
20
+ }, /*#__PURE__*/_react.default.createElement("div", {
21
+ title: filename,
22
+ className: "puzzle--terminal__item id-".concat(item.id),
23
+ onClick: function onClick() {
24
+ return !item.fixed ? selectItem(item) : null;
25
+ }
26
+ }, /*#__PURE__*/_react.default.createElement("span", {
27
+ className: "puzzle--terminal__icon ".concat(_utils.ICONS[item.type])
28
+ }), /*#__PURE__*/_react.default.createElement("span", null, filename)));
29
+ };
30
+
31
+ var _default = Item;
32
+ exports.default = _default;
@@ -0,0 +1,74 @@
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 _Item = _interopRequireDefault(require("./Item"));
11
+
12
+ var _utils = require("../utils");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ var FilesGroup = function FilesGroup(_ref) {
17
+ var initFile = _ref.initFile,
18
+ backFile = _ref.backFile,
19
+ file = _ref.file,
20
+ closeFolder = _ref.closeFolder,
21
+ selectItem = _ref.selectItem;
22
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, file.id === 'init' ? /*#__PURE__*/_react.default.createElement("ul", {
23
+ className: "puzzle--terminal__folder__list desktop"
24
+ }, file.children.map(function (item) {
25
+ return /*#__PURE__*/_react.default.createElement(_Item.default, {
26
+ key: item.id,
27
+ selectItem: selectItem,
28
+ item: item
29
+ });
30
+ })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("ul", {
31
+ className: "puzzle--terminal__folder__list desktop"
32
+ }, initFile.children.map(function (item) {
33
+ return /*#__PURE__*/_react.default.createElement(_Item.default, {
34
+ key: item.id,
35
+ selectItem: selectItem,
36
+ item: item
37
+ });
38
+ })), /*#__PURE__*/_react.default.createElement("div", {
39
+ className: "puzzle--terminal__folder"
40
+ }, /*#__PURE__*/_react.default.createElement("div", {
41
+ className: "puzzle--terminal__folder--head"
42
+ }, /*#__PURE__*/_react.default.createElement("span", {
43
+ onClick: function onClick() {
44
+ return backFile();
45
+ },
46
+ className: "puzzle--terminal__folder--back"
47
+ }, /*#__PURE__*/_react.default.createElement("span", {
48
+ className: "icon-back"
49
+ })), /*#__PURE__*/_react.default.createElement("span", {
50
+ className: "puzzle--terminal__folder--head__icon ".concat(_utils.ICONS[file.type])
51
+ }), /*#__PURE__*/_react.default.createElement("span", {
52
+ className: "text"
53
+ }, file.name), /*#__PURE__*/_react.default.createElement("span", {
54
+ onClick: function onClick() {
55
+ return closeFolder();
56
+ },
57
+ className: "puzzle--terminal__folder--close"
58
+ }, /*#__PURE__*/_react.default.createElement("span", {
59
+ className: "icon-close"
60
+ }))), /*#__PURE__*/_react.default.createElement("div", {
61
+ className: "puzzle--terminal__folder--body"
62
+ }, /*#__PURE__*/_react.default.createElement("ul", {
63
+ className: "puzzle--terminal__folder__list"
64
+ }, file.children.map(function (item) {
65
+ return /*#__PURE__*/_react.default.createElement(_Item.default, {
66
+ key: item.id,
67
+ selectItem: selectItem,
68
+ item: item
69
+ });
70
+ }))))));
71
+ };
72
+
73
+ var _default = FilesGroup;
74
+ exports.default = _default;