@gamelearn/arcade-components 0.2.0 → 0.4.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 (30) hide show
  1. package/dist/components/arcade-render/background/scene-elements/index.js +4 -2
  2. package/dist/components/arcade-render/element/AnimateElement.js +9 -15
  3. package/dist/components/arcade-render/element/index.js +15 -5
  4. package/dist/components/arcade-render/elements-list/index.js +4 -2
  5. package/dist/components/arcade-render/light/useLight.js +1 -0
  6. package/dist/components/arcade-render/loading/Loading.js +3 -4
  7. package/dist/components/arcade-render/loading/LoadingLogic.js +4 -31
  8. package/dist/components/arcade-render/scene/index.js +8 -8
  9. package/dist/components/conversational-pro-component/components/scene/Panel.js +0 -8
  10. package/dist/components/hacker-puzzle-component/components/Area/index.js +150 -0
  11. package/dist/components/hacker-puzzle-component/components/Feedback/index.js +72 -0
  12. package/dist/components/hacker-puzzle-component/components/KonvaMapper/index.js +230 -0
  13. package/dist/components/hanged-puzzle-component/components/HangedPuzzleComponent.js +429 -0
  14. package/dist/components/{pikachu-component → hanged-puzzle-component}/index.js +2 -2
  15. package/dist/components/hanged-puzzle-component/mocks/mockForStory.js +54 -0
  16. package/dist/components/hanged-puzzle-component/utils.js +36 -0
  17. package/dist/components/image-click-puzzle-component/components/ImageClickPuzzleComponent.js +23 -0
  18. package/dist/components/image-click-puzzle-component/index.js +13 -0
  19. package/dist/components/image-click-puzzle-component/mocks/mockForStory.js +423 -0
  20. package/dist/components/image-click-wrapper-component/components/Area/index.js +150 -0
  21. package/dist/components/image-click-wrapper-component/components/Feedback/index.js +51 -0
  22. package/dist/components/image-click-wrapper-component/components/ImageClickWrapperComponent.js +351 -0
  23. package/dist/components/image-click-wrapper-component/components/KonvaMapper/index.js +230 -0
  24. package/dist/components/image-click-wrapper-component/index.js +13 -0
  25. package/dist/components/image-click-wrapper-component/mocks/mockForStory.js +307 -0
  26. package/dist/components/index.js +16 -0
  27. package/dist/helpers/useGLB.js +9 -22
  28. package/package.json +16 -3
  29. package/dist/components/pikachu-component/components/PikachuComponent.js +0 -24
  30. package/dist/components/pikachu-component/mocks/mockForStory.js +0 -15
@@ -40,7 +40,9 @@ var SceneElements = function SceneElements(_ref) {
40
40
  scene.fog = new _three.FogExp2(fog.color, fog.density);
41
41
  }
42
42
 
43
- return objects.map(function (_ref2, i) {
43
+ return /*#__PURE__*/_react.default.createElement("group", {
44
+ name: "BACKGROUND"
45
+ }, objects.map(function (_ref2, i) {
44
46
  var _object$userData, _object$userData2, _object$userData3;
45
47
 
46
48
  var material = _ref2.material,
@@ -83,7 +85,7 @@ var SceneElements = function SceneElements(_ref) {
83
85
  }
84
86
 
85
87
  return null;
86
- });
88
+ }));
87
89
  };
88
90
 
89
91
  var _default = SceneElements;
@@ -11,10 +11,6 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _drei = require("@react-three/drei");
13
13
 
14
- var _useGLB2 = _interopRequireDefault(require("../../../helpers/useGLB"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
14
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
19
15
 
20
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; }
@@ -32,22 +28,20 @@ var AnimateElement = function AnimateElement(_ref) {
32
28
  animationUrl = _ref.animationUrl,
33
29
  props = _objectWithoutProperties(_ref, ["model", "position", "rotation", "animationUrl"]);
34
30
 
35
- var _useGLB = (0, _useGLB2.default)(animationUrl),
36
- animations = _useGLB.animations;
31
+ var _useGLTF = (0, _drei.useGLTF)(animationUrl),
32
+ animations = _useGLTF.animations;
37
33
 
38
34
  var _useAnimations = (0, _drei.useAnimations)(animations),
39
35
  ref = _useAnimations.ref,
40
- mixer = _useAnimations.mixer;
41
-
42
- var _useProgress = (0, _drei.useProgress)(),
43
- progress = _useProgress.progress;
36
+ mixer = _useAnimations.mixer,
37
+ actions = _useAnimations.actions;
44
38
 
45
39
  (0, _react.useEffect)(function () {
46
- if (progress >= 100) {
47
- mixer.stopAllAction();
48
- mixer.clipAction(animations[0], model).play();
49
- }
50
- }, [animations, model, mixer, progress]);
40
+ var _Object$values;
41
+
42
+ mixer.stopAllAction();
43
+ (_Object$values = Object.values(actions)) === null || _Object$values === void 0 ? void 0 : _Object$values[0].play();
44
+ }, [actions, model, mixer]);
51
45
  return /*#__PURE__*/_react.default.createElement("primitive", _extends({
52
46
  ref: ref,
53
47
  object: model,
@@ -19,7 +19,7 @@ var _three = require("three");
19
19
 
20
20
  var _Projection = _interopRequireDefault(require("./Projection"));
21
21
 
22
- var _useGLB2 = _interopRequireDefault(require("../../../helpers/useGLB"));
22
+ var _drei = require("@react-three/drei");
23
23
 
24
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
25
 
@@ -45,6 +45,9 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
45
45
 
46
46
  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; }
47
47
 
48
+ // const whiteImage = new Image();
49
+ // whiteImage.src =
50
+ // 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=';
48
51
  var Element = function Element(_ref) {
49
52
  var url = _ref.url,
50
53
  animationUrl = _ref.animationUrl,
@@ -62,8 +65,8 @@ var Element = function Element(_ref) {
62
65
  onLoad = _ref$onLoad === void 0 ? function () {} : _ref$onLoad,
63
66
  props = _objectWithoutProperties(_ref, ["url", "animationUrl", "position", "rotation", "scale", "size", "material", "layers", "onLoad"]);
64
67
 
65
- var _useGLB = (0, _useGLB2.default)(url),
66
- scene = _useGLB.scene;
68
+ var _useGLTF = (0, _drei.useGLTF)(url),
69
+ scene = _useGLTF.scene;
67
70
 
68
71
  var model = (0, _react.useMemo)(function () {
69
72
  return _SkeletonUtils.SkeletonUtils.clone(scene);
@@ -103,11 +106,18 @@ var Element = function Element(_ref) {
103
106
 
104
107
  if (layers > 0) {
105
108
  node.layers.set(layers);
106
- }
109
+ } // const keys = Object.keys(node.material);
110
+ // keys.forEach((key) => {
111
+ // const value = node.material[key];
112
+ // if (value && value.isTexture) {
113
+ // node.material[key].image = whiteImage;
114
+ // }
115
+ // });
116
+
107
117
 
108
118
  if (node.material.map) node.material.map.encoding = _three.sRGBEncoding;
109
119
  if (node.material.emissiveMap) node.material.emissiveMap.encoding = _three.sRGBEncoding;
110
- if (node.material.map || node.material.emissiveMap) node.material.needsUpdate = true;
120
+ node.material.needsUpdate = true;
111
121
  }
112
122
  });
113
123
  onLoad(model, currentScene, camera);
@@ -69,7 +69,9 @@ var ElementsList = function ElementsList(_ref) {
69
69
  (0, _react.useLayoutEffect)(function () {
70
70
  camera.layers.enableAll();
71
71
  }, [camera]);
72
- return elements === null || elements === void 0 ? void 0 : elements.map(function (_ref3) {
72
+ return /*#__PURE__*/_react.default.createElement("group", {
73
+ name: "CLICKABLE_ELEMENTS"
74
+ }, elements === null || elements === void 0 ? void 0 : elements.map(function (_ref3) {
73
75
  var id = _ref3.id,
74
76
  element = _objectWithoutProperties(_ref3, ["id"]);
75
77
 
@@ -145,7 +147,7 @@ var ElementsList = function ElementsList(_ref) {
145
147
  return null;
146
148
  }
147
149
  }
148
- });
150
+ }));
149
151
  };
150
152
 
151
153
  var _default = ElementsList;
@@ -31,6 +31,7 @@ var useLight = function useLight(type, _ref) {
31
31
  return new currentType();
32
32
  }, [currentType]);
33
33
  (0, _fiber.applyProps)(light, props);
34
+ light.color.set(props.color);
34
35
 
35
36
  if (shadow && light.shadow) {
36
37
  var shadowMap = Object.assign({}, shadow);
@@ -19,10 +19,9 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
19
19
 
20
20
  function Loading(_ref) {
21
21
  var text = _ref.text;
22
-
23
- var _useProgress = (0, _drei.useProgress)(),
24
- progress = _useProgress.progress;
25
-
22
+ var progress = (0, _drei.useProgress)(function (state) {
23
+ return state.progress;
24
+ });
26
25
  var html = (0, _react.useRef)();
27
26
  var percentage = Math.floor(progress);
28
27
  (0, _react.useEffect)(function () {
@@ -9,44 +9,17 @@ var _react = require("react");
9
9
 
10
10
  var _drei = require("@react-three/drei");
11
11
 
12
- var _fiber = require("@react-three/fiber");
13
-
14
- var _drawLOD = _interopRequireDefault(require("../../../helpers/drawLOD"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
19
-
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."); }
21
-
22
- 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); }
23
-
24
- 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; }
25
-
26
- 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; }
27
-
28
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
29
-
30
12
  function LoadingLogic(_ref) {
31
13
  var onFinish = _ref.onFinish;
32
-
33
- var _useProgress = (0, _drei.useProgress)(),
34
- progress = _useProgress.progress;
35
-
36
- var _useThree = (0, _fiber.useThree)(function (state) {
37
- return [state.scene, state.camera];
38
- }),
39
- _useThree2 = _slicedToArray(_useThree, 2),
40
- scene = _useThree2[0],
41
- camera = _useThree2[1];
42
-
14
+ var progress = (0, _drei.useProgress)(function (state) {
15
+ return state.progress;
16
+ });
43
17
  var percentage = Math.floor(progress);
44
18
  (0, _react.useEffect)(function () {
45
19
  if (percentage === 100) {
46
20
  onFinish();
47
- (0, _drawLOD.default)(scene);
48
21
  }
49
- }, [onFinish, percentage, scene, camera]);
22
+ }, [onFinish, percentage]);
50
23
  return null;
51
24
  }
52
25
 
@@ -19,8 +19,6 @@ var _background = _interopRequireDefault(require("../background"));
19
19
 
20
20
  var _loading = _interopRequireWildcard(require("../loading"));
21
21
 
22
- var _LodController = _interopRequireDefault(require("../../../helpers/LodController"));
23
-
24
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
23
 
26
24
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
@@ -62,11 +60,6 @@ var ConfigController = function ConfigController(_ref) {
62
60
  }, 1);
63
61
  (0, _react.useEffect)(function () {
64
62
  gl.shadowMap.enabled = current.shadows;
65
- scene.traverse(function (child) {
66
- if (child.isMesh) {
67
- child.material.needsUpdate = true;
68
- }
69
- });
70
63
 
71
64
  if (!current.animate) {
72
65
  invalidate();
@@ -100,6 +93,10 @@ var Scene = function Scene(_ref3) {
100
93
  var gl = _ref4.gl,
101
94
  raycaster = _ref4.raycaster;
102
95
  raycaster.layers.set(1);
96
+ gl.outputEncoding = 3001;
97
+ gl.gammaFactor = 2.2;
98
+ gl.setClearColor(0xcccccc);
99
+ gl.setPixelRatio(window.devicePixelRatio);
103
100
  gl.physicallyCorrectLights = true;
104
101
  };
105
102
 
@@ -114,7 +111,9 @@ var Scene = function Scene(_ref3) {
114
111
  setShowLoad(true);
115
112
  }, [backgroundData, elements]);
116
113
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_fiber.Canvas, {
114
+ className: "main-canvas",
117
115
  style: {
116
+ width: '100%',
118
117
  height: '100vh'
119
118
  },
120
119
  resize: {
@@ -124,7 +123,8 @@ var Scene = function Scene(_ref3) {
124
123
  flat: true,
125
124
  shadows: toggleShadows,
126
125
  frameloop: "demand",
127
- onCreated: handleOnCreate
126
+ onCreated: handleOnCreate,
127
+ tabIndex: 0
128
128
  }, /*#__PURE__*/_react.default.createElement(ConfigController, {
129
129
  current: {
130
130
  shadows: toggleShadows,
@@ -21,8 +21,6 @@ var _helpers = require("../../../../helpers");
21
21
 
22
22
  var _LightSet = _interopRequireDefault(require("../../../../helpers/LightSet"));
23
23
 
24
- var _drawLOD = _interopRequireDefault(require("../../../../helpers/drawLOD"));
25
-
26
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
25
 
28
26
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
@@ -36,7 +34,6 @@ function Panel(_ref) {
36
34
  active = _ref.active;
37
35
  var cameraRef = (0, _react.useRef)(null);
38
36
  var sceneRef = (0, _react.useRef)(null);
39
- var cache = (0, _react.useRef)({});
40
37
  var isCharacter = character.type === 'character';
41
38
  var emotion = isCharacter ? character.resource.animations[character.emotion || 'neutral'] : {};
42
39
  var onLoadElement = (0, _react.useCallback)(function (model) {
@@ -57,11 +54,6 @@ function Panel(_ref) {
57
54
  }
58
55
 
59
56
  cameraRef.current.updateProjectionMatrix();
60
-
61
- if (!cache.current[character.uid]) {
62
- cache.current[character.uid] = true;
63
- (0, _drawLOD.default)(sceneRef.current);
64
- }
65
57
  }
66
58
  }, [character]);
67
59
  (0, _fiber.useFrame)(function (_ref2) {
@@ -0,0 +1,150 @@
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 _reactKonva = require("react-konva");
13
+
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
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 Area = function Area(_ref) {
23
+ var area = _ref.area,
24
+ finished = _ref.finished,
25
+ isClicked = _ref.isClicked,
26
+ isBad = _ref.isBad,
27
+ hasHighlights = _ref.hasHighlights,
28
+ completed = _ref.completed,
29
+ onClick = _ref.onClick,
30
+ onClickOutside = _ref.onClickOutside;
31
+ var areaRef = (0, _react.useRef)();
32
+ var fillColor = isBad ? 'rgba(255, 99, 77, 0.32)' : 'rgba(75, 215, 169, 0.32)';
33
+ var strokeColor = isBad ? '#ff634d' : '#4bd7a9';
34
+
35
+ var mouseEnterArea = function mouseEnterArea() {
36
+ if (hasHighlights && !completed && !isClicked) {
37
+ areaRef.current.setAttr('fill', 'rgba(130, 134, 142, 0.4)');
38
+ areaRef.current.setAttr('stroke', 'rgba(255, 255, 255, 0.3)');
39
+ areaRef.current.to({
40
+ duration: 0.25,
41
+ opacity: 1
42
+ });
43
+ }
44
+ };
45
+
46
+ var mouseLeaveArea = function mouseLeaveArea() {
47
+ if (hasHighlights && !completed && !isClicked) {
48
+ areaRef.current.to({
49
+ duration: 0.25,
50
+ opacity: 0
51
+ });
52
+ }
53
+ };
54
+
55
+ (0, _react.useEffect)(function () {
56
+ if (completed && !finished) {
57
+ if (!isBad) {
58
+ areaRef.current.to({
59
+ duration: 0.25,
60
+ opacity: 1
61
+ });
62
+ areaRef.current.globalCompositeOperation('destination-out');
63
+ } else {
64
+ areaRef.current.to({
65
+ duration: 0.25,
66
+ opacity: 0
67
+ });
68
+ }
69
+ }
70
+ }, [completed]);
71
+
72
+ var clickArea = function clickArea() {
73
+ if (!completed) {
74
+ if (isBad) {
75
+ onClickOutside();
76
+ } else {
77
+ onClick(area);
78
+ }
79
+
80
+ areaRef.current.setAttr('fill', fillColor);
81
+ areaRef.current.setAttr('stroke', strokeColor);
82
+ }
83
+ };
84
+
85
+ var scaleX = area.scaleX ? area.scaleX : 1;
86
+ var scaleY = area.scaleY ? area.scaleY : 1;
87
+ return /*#__PURE__*/_react.default.createElement(_reactKonva.Line, {
88
+ name: area.id,
89
+ ref: areaRef,
90
+ onFocus: function onFocus() {
91
+ return mouseEnterArea(area);
92
+ },
93
+ onMouseOver: function onMouseOver() {
94
+ return mouseEnterArea(area);
95
+ },
96
+ onMouseLeave: mouseLeaveArea,
97
+ onClick: function onClick() {
98
+ return clickArea();
99
+ },
100
+ onTap: function onTap() {
101
+ return clickArea();
102
+ },
103
+ x: area.x,
104
+ y: area.y,
105
+ scale: {
106
+ x: scaleX,
107
+ y: scaleY
108
+ },
109
+ skew: {
110
+ x: area.skewX,
111
+ y: area.skewY
112
+ },
113
+ rotation: area.rotation,
114
+ shape: "poly",
115
+ points: area.points,
116
+ fill: finished ? '' : fillColor,
117
+ stroke: finished || isClicked ? strokeColor : '',
118
+ strokeWidth: 2,
119
+ opacity: finished || isClicked ? 1 : 0,
120
+ closed: true
121
+ });
122
+ };
123
+
124
+ Area.defaultProps = {
125
+ finished: false,
126
+ isBad: false,
127
+ isClicked: false,
128
+ hasHighlights: false,
129
+ completed: false,
130
+ onClick: function onClick() {},
131
+ onClickOutside: function onClickOutside() {}
132
+ };
133
+ Area.propTypes = {
134
+ area: _propTypes.default.shape({
135
+ index: _propTypes.default.number,
136
+ x: _propTypes.default.number,
137
+ y: _propTypes.default.number,
138
+ points: _propTypes.default.arrayOf(_propTypes.default.number),
139
+ name: _propTypes.default.string
140
+ }).isRequired,
141
+ onClick: _propTypes.default.func,
142
+ onClickOutside: _propTypes.default.func,
143
+ finished: _propTypes.default.bool,
144
+ hasHighlights: _propTypes.default.bool,
145
+ completed: _propTypes.default.bool,
146
+ isBad: _propTypes.default.bool,
147
+ isClicked: _propTypes.default.bool
148
+ };
149
+ var _default = Area;
150
+ exports.default = _default;
@@ -0,0 +1,72 @@
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 _utilsCore = require("@gamelearn/utils-core");
15
+
16
+ var _uiComponentsCore = require("@gamelearn/ui-components-core");
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 Feedback = function Feedback(_ref) {
37
+ var text = _ref.text,
38
+ success = _ref.success;
39
+
40
+ var _useHowler = (0, _uiComponentsCore.useHowler)(success ? 'correct_01' : 'incorrect_01'),
41
+ _useHowler2 = _slicedToArray(_useHowler, 1),
42
+ howler = _useHowler2[0];
43
+
44
+ (0, _react.useEffect)(function () {
45
+ if (text) {
46
+ howler.play();
47
+ }
48
+ }, [howler, text]);
49
+
50
+ if (!text) {
51
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
52
+ }
53
+
54
+ return /*#__PURE__*/_react.default.createElement("div", {
55
+ className: "puzzle--image__result ".concat(success ? 'success' : 'failed')
56
+ }, /*#__PURE__*/_react.default.createElement("span", {
57
+ className: "title"
58
+ }, /*#__PURE__*/_react.default.createElement(_utilsCore.FormatData, {
59
+ id: text
60
+ })));
61
+ };
62
+
63
+ Feedback.defaultProps = {
64
+ text: '',
65
+ success: false
66
+ };
67
+ Feedback.propTypes = {
68
+ text: _propTypes.default.string,
69
+ success: _propTypes.default.bool
70
+ };
71
+ var _default = Feedback;
72
+ exports.default = _default;