@gamelearn/arcade-components 2.28.0 → 2.29.3
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.
- package/dist/components/animation-component/components/AnimationComponent.js +9 -4
- package/dist/components/cartel-component/components/CartelComponent.js +4 -3
- package/dist/components/comic-component/components/ComicComponent.js +10 -19
- package/dist/components/decision-component/components/DecisionBody.js +7 -4
- package/dist/components/feedback-component/components/FeedbackComponent.js +18 -11
- package/dist/components/lectures-component/components/LectureButtons.js +8 -5
- package/dist/helpers/index.js +3 -5
- package/dist/helpers/useStateMachine.js +8 -6
- package/package.json +1 -1
|
@@ -64,13 +64,18 @@ var AnimationComponent = function AnimationComponent(_ref) {
|
|
|
64
64
|
loader.load(animation.url, function (gltf) {
|
|
65
65
|
var mixer = object.userData.mixer;
|
|
66
66
|
var defaultAnim = object.userData.defaultAnim;
|
|
67
|
+
if (!object.userData.actionList) object.userData.actionList = {};
|
|
68
|
+
var actionList = object.userData.actionList;
|
|
69
|
+
if (!actionList.idle) {
|
|
70
|
+
var action = mixer.existingAction(defaultAnim, object);
|
|
71
|
+
actionList.idle = action;
|
|
72
|
+
}
|
|
67
73
|
var currentAction = mixer.clipAction(gltf.animations[0], object);
|
|
68
|
-
var oldAction = mixer.clipAction(defaultAnim, object);
|
|
69
74
|
currentAction.setLoop(_three.LoopRepeat, loopTimes);
|
|
70
|
-
|
|
71
|
-
(0, _helpers.executeCrossFade)(
|
|
75
|
+
(0, _helpers.activateAction)(currentAction, 0);
|
|
76
|
+
(0, _helpers.executeCrossFade)(actionList.idle, currentAction);
|
|
72
77
|
var finishCallback = function finishCallback() {
|
|
73
|
-
(0, _helpers.executeCrossFade)(currentAction,
|
|
78
|
+
(0, _helpers.executeCrossFade)(currentAction, actionList.idle);
|
|
74
79
|
if (canInteract) emitEvent({
|
|
75
80
|
type: 'success'
|
|
76
81
|
});
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _useEkho = _interopRequireDefault(require("../../../helpers/useEkho"));
|
|
10
|
+
var _LangIsRtl = _interopRequireDefault(require("../../../helpers/LangIsRtl"));
|
|
10
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
12
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
13
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; }
|
|
@@ -105,16 +106,16 @@ var CartelComponent = function CartelComponent(_ref) {
|
|
|
105
106
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
106
107
|
className: "cartel__text"
|
|
107
108
|
}, /*#__PURE__*/_react.default.createElement("span", null, text))) : null)), /*#__PURE__*/_react.default.createElement("div", {
|
|
108
|
-
className: "position--absolute
|
|
109
|
+
className: "position--absolute center right"
|
|
109
110
|
}, /*#__PURE__*/_react.default.createElement("button", {
|
|
110
111
|
type: "button",
|
|
111
|
-
className: "gat--btn__round
|
|
112
|
+
className: "gat--btn__round",
|
|
112
113
|
onClick: function onClick() {
|
|
113
114
|
return close();
|
|
114
115
|
},
|
|
115
116
|
"aria-label": translate('storylines.misc.closePiece')
|
|
116
117
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
117
|
-
className:
|
|
118
|
+
className: (0, _LangIsRtl.default)() ? 'icon-back' : 'icon-next'
|
|
118
119
|
}))));
|
|
119
120
|
};
|
|
120
121
|
var _default = CartelComponent;
|
|
@@ -174,31 +174,22 @@ var ComicComponent = function ComicComponent(_ref) {
|
|
|
174
174
|
"aria-label": (0, _LangIsRtl.default)() ? translate('comic.next') : translate('comic.previous')
|
|
175
175
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
176
176
|
className: (0, _LangIsRtl.default)() ? 'icon-next' : 'icon-back'
|
|
177
|
-
})), slideCount
|
|
177
|
+
})), slideCount < slides.length && /*#__PURE__*/_react.default.createElement("button", {
|
|
178
178
|
type: "button",
|
|
179
179
|
className: "comic-control comic-control--right gat--btn__round",
|
|
180
180
|
"data-testid": "btn-nxt",
|
|
181
|
-
onClick: handleManualNext,
|
|
182
|
-
"aria-label": (0, _LangIsRtl.default)() ? translate('comic.previous') : translate('comic.next')
|
|
183
|
-
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
184
|
-
className: (0, _LangIsRtl.default)() ? 'icon-back' : 'icon-next'
|
|
185
|
-
})), slideCount + 1 >= slides.length && /*#__PURE__*/_react.default.createElement("div", {
|
|
186
|
-
className: "position--absolute top right",
|
|
187
|
-
role: "heading",
|
|
188
|
-
"aria-level": "1",
|
|
189
|
-
"aria-label": "heading"
|
|
190
|
-
}, /*#__PURE__*/_react.default.createElement("button", {
|
|
191
|
-
type: "button",
|
|
192
|
-
className: "gat--btn__round gat--btn__close",
|
|
193
|
-
"data-testid": "btn-cls",
|
|
194
181
|
onClick: function onClick() {
|
|
195
|
-
|
|
196
|
-
|
|
182
|
+
if (slideCount + 1 < slides.length) {
|
|
183
|
+
handleManualNext();
|
|
184
|
+
} else {
|
|
185
|
+
play('click-ui');
|
|
186
|
+
close();
|
|
187
|
+
}
|
|
197
188
|
},
|
|
198
|
-
"aria-label": translate('
|
|
189
|
+
"aria-label": (0, _LangIsRtl.default)() ? translate('comic.previous') : translate('comic.next')
|
|
199
190
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
200
|
-
className:
|
|
201
|
-
}))))
|
|
191
|
+
className: (0, _LangIsRtl.default)() ? 'icon-back' : 'icon-next'
|
|
192
|
+
}))));
|
|
202
193
|
};
|
|
203
194
|
var _default = ComicComponent;
|
|
204
195
|
exports.default = _default;
|
|
@@ -74,11 +74,14 @@ var DecisionBody = function DecisionBody(_ref) {
|
|
|
74
74
|
className: "popup--buttons"
|
|
75
75
|
}, (required ? !failed : selectedChoice.id !== undefined) ? /*#__PURE__*/_react.default.createElement("button", {
|
|
76
76
|
type: "button",
|
|
77
|
-
className: "gat--
|
|
77
|
+
className: "gat--btn__navigation ".concat(selectedChoice.id !== undefined ? '' : 'disabled'),
|
|
78
78
|
onClick: function onClick() {
|
|
79
|
-
return onNext(selectedChoice);
|
|
80
|
-
}
|
|
81
|
-
|
|
79
|
+
return selectedChoice.id !== undefined && onNext(selectedChoice);
|
|
80
|
+
},
|
|
81
|
+
"aria-label": translate('storylines.misc.closePiece')
|
|
82
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
83
|
+
className: (0, _LangIsRtl.default)() ? 'icon-back' : 'icon-next'
|
|
84
|
+
})) : null));
|
|
82
85
|
};
|
|
83
86
|
var ComplexDecision = function ComplexDecision() {
|
|
84
87
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _LangIsRtl = _interopRequireDefault(require("../../../helpers/LangIsRtl"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
11
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
10
12
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; }
|
|
11
13
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
@@ -83,16 +85,7 @@ var FeedbackComponent = function FeedbackComponent(_ref) {
|
|
|
83
85
|
}, !text || !shortText ? /*#__PURE__*/_react.default.createElement("div", {
|
|
84
86
|
title: translate("tooltip.".concat(success ? 'correct' : 'incorrect')),
|
|
85
87
|
className: "".concat(statusIcon())
|
|
86
|
-
}) : text),
|
|
87
|
-
type: "button",
|
|
88
|
-
className: "feedback-layer__closeX",
|
|
89
|
-
onClick: function onClick() {
|
|
90
|
-
return functionOnClose();
|
|
91
|
-
},
|
|
92
|
-
"aria-label": translate('storylines.misc.closePiece')
|
|
93
|
-
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
94
|
-
className: "icon-close"
|
|
95
|
-
})), shortText && /*#__PURE__*/_react.default.createElement("button", {
|
|
88
|
+
}) : text), shortText && /*#__PURE__*/_react.default.createElement("button", {
|
|
96
89
|
type: "button",
|
|
97
90
|
className: "feedback-layer__closeX",
|
|
98
91
|
onClick: function onClick() {
|
|
@@ -107,7 +100,21 @@ var FeedbackComponent = function FeedbackComponent(_ref) {
|
|
|
107
100
|
className: "feedback-layer__explain"
|
|
108
101
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
109
102
|
dir: "auto"
|
|
110
|
-
}, text)
|
|
103
|
+
}, text), text && functionOnClose && explain && /*#__PURE__*/_react.default.createElement("button", {
|
|
104
|
+
type: "button",
|
|
105
|
+
className: "gat--btn__navigation",
|
|
106
|
+
onClick: function onClick() {
|
|
107
|
+
return functionOnClose();
|
|
108
|
+
},
|
|
109
|
+
"aria-label": translate('storylines.misc.closePiece'),
|
|
110
|
+
style: {
|
|
111
|
+
display: 'flex',
|
|
112
|
+
margin: 'auto',
|
|
113
|
+
marginTop: '24px'
|
|
114
|
+
}
|
|
115
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
116
|
+
className: (0, _LangIsRtl.default)() ? 'icon-back' : 'icon-next'
|
|
117
|
+
}))))));
|
|
111
118
|
};
|
|
112
119
|
FeedbackComponent.defaultProps = {
|
|
113
120
|
text: '',
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _LangIsRtl = _interopRequireDefault(require("../../../helpers/LangIsRtl"));
|
|
8
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
10
|
var LectureButtons = function LectureButtons(_ref) {
|
|
10
11
|
var goToLecture = _ref.goToLecture,
|
|
@@ -16,11 +17,14 @@ var LectureButtons = function LectureButtons(_ref) {
|
|
|
16
17
|
className: "readings--buttons"
|
|
17
18
|
}, goToLecture ? /*#__PURE__*/_react.default.createElement("button", {
|
|
18
19
|
type: "button",
|
|
19
|
-
className: "gat--
|
|
20
|
+
className: "gat--btn__navigation",
|
|
20
21
|
onClick: function onClick() {
|
|
21
22
|
return close();
|
|
22
|
-
}
|
|
23
|
-
|
|
23
|
+
},
|
|
24
|
+
"aria-label": btnText
|
|
25
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
26
|
+
className: (0, _LangIsRtl.default)() ? 'icon-back' : 'icon-next'
|
|
27
|
+
})) : /*#__PURE__*/_react.default.createElement("button", {
|
|
24
28
|
type: "button",
|
|
25
29
|
className: "gat--btn__count",
|
|
26
30
|
"data-testid": "countdown"
|
|
@@ -30,8 +34,7 @@ LectureButtons.defaultProps = {
|
|
|
30
34
|
goToLecture: false,
|
|
31
35
|
close: function close() {},
|
|
32
36
|
minutes: 0,
|
|
33
|
-
seconds: 0
|
|
34
|
-
btnText: 'continue'
|
|
37
|
+
seconds: 0
|
|
35
38
|
};
|
|
36
39
|
var _default = LectureButtons;
|
|
37
40
|
exports.default = _default;
|
package/dist/helpers/index.js
CHANGED
|
@@ -159,11 +159,9 @@ function prepareCrossfade(root, startAction, endAction) {
|
|
|
159
159
|
}
|
|
160
160
|
function syncCrossfade(mixer, startAction, endAction) {
|
|
161
161
|
mixer.addEventListener('loop', onLoopFinished);
|
|
162
|
-
function onLoopFinished(
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
executeCrossFade(startAction, endAction);
|
|
166
|
-
}
|
|
162
|
+
function onLoopFinished() {
|
|
163
|
+
mixer.removeEventListener('loop', onLoopFinished);
|
|
164
|
+
executeCrossFade(startAction, endAction);
|
|
167
165
|
}
|
|
168
166
|
}
|
|
169
167
|
function resetActions(mixer, active) {
|
|
@@ -70,14 +70,17 @@ function useStateMachine(lines) {
|
|
|
70
70
|
_step2;
|
|
71
71
|
try {
|
|
72
72
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
73
|
+
var _slot$character3;
|
|
73
74
|
var slot = _step2.value;
|
|
74
75
|
if (!slot.uid) continue;
|
|
75
76
|
if (!urls[slot.uid]) {
|
|
76
|
-
|
|
77
|
+
var _slot$character;
|
|
78
|
+
urls[slot.uid] = _defineProperty({}, slot.emotion, (_slot$character = slot.character) === null || _slot$character === void 0 ? void 0 : _slot$character.resource.animations[slot.emotion].url);
|
|
77
79
|
} else {
|
|
78
|
-
|
|
80
|
+
var _slot$character2;
|
|
81
|
+
urls[slot.uid] = _objectSpread(_objectSpread({}, urls[slot.uid]), {}, _defineProperty({}, slot.emotion, (_slot$character2 = slot.character) === null || _slot$character2 === void 0 ? void 0 : _slot$character2.resource.animations[slot.emotion].url));
|
|
79
82
|
}
|
|
80
|
-
urls[slot.uid].talking = slot.character.resource.animations.talking.url;
|
|
83
|
+
urls[slot.uid].talking = (_slot$character3 = slot.character) === null || _slot$character3 === void 0 ? void 0 : _slot$character3.resource.animations.talking.url;
|
|
81
84
|
}
|
|
82
85
|
} catch (err) {
|
|
83
86
|
_iterator2.e(err);
|
|
@@ -95,7 +98,6 @@ function useStateMachine(lines) {
|
|
|
95
98
|
var resetActives = function resetActives() {
|
|
96
99
|
Object.keys(active).forEach(function (uid) {
|
|
97
100
|
startAnimation(uid, 'idle');
|
|
98
|
-
setActive(uid, 'idle');
|
|
99
101
|
});
|
|
100
102
|
};
|
|
101
103
|
(0, _react.useEffect)(function () {
|
|
@@ -122,11 +124,12 @@ function useStateMachine(lines) {
|
|
|
122
124
|
mixer = _root$userData.mixer,
|
|
123
125
|
actionList = _root$userData.actionList;
|
|
124
126
|
var currentActive = active[uid];
|
|
127
|
+
if (emotion === currentActive) return;
|
|
125
128
|
var startAction = actionList[currentActive];
|
|
126
129
|
var endAction = actionList[emotion];
|
|
130
|
+
setActive(uid, emotion);
|
|
127
131
|
(0, _.resetActions)(mixer, startAction);
|
|
128
132
|
(0, _.executeCrossFade)(startAction, endAction);
|
|
129
|
-
setActive(uid, emotion);
|
|
130
133
|
}
|
|
131
134
|
}, [scene, loaded, active, setActive]);
|
|
132
135
|
var processAnimations = (0, _react.useCallback)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
|
|
@@ -154,7 +157,6 @@ function useStateMachine(lines) {
|
|
|
154
157
|
if (!actionList.idle) {
|
|
155
158
|
defaultAction = mixer.existingAction(defaultAnim, root);
|
|
156
159
|
actionList.idle = defaultAction;
|
|
157
|
-
(0, _.activateAction)(defaultAction, 1);
|
|
158
160
|
setActive(uid, 'idle');
|
|
159
161
|
}
|
|
160
162
|
loadEmotion = /*#__PURE__*/function () {
|