@gamelearn/arcade-components 1.13.0 → 1.15.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.
@@ -11,7 +11,7 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _useTimeout2 = _interopRequireDefault(require("../../../helpers/useTimeout"));
13
13
 
14
- var _useEkho2 = _interopRequireDefault(require("../../../helpers/useEkho"));
14
+ var _useEkho = _interopRequireDefault(require("../../../helpers/useEkho"));
15
15
 
16
16
  var _Slide = _interopRequireDefault(require("./Slide"));
17
17
 
@@ -99,40 +99,41 @@ var ComicComponent = function ComicComponent(_ref) {
99
99
  goToPreviousSlide();
100
100
  };
101
101
 
102
- var _useEkho = (0, _useEkho2.default)({
102
+ (0, _useEkho.default)({
103
103
  audioType: slides === null || slides === void 0 ? void 0 : (_slides$slideCount = slides[slideCount]) === null || _slides$slideCount === void 0 ? void 0 : _slides$slideCount.audioType,
104
104
  voice: slides === null || slides === void 0 ? void 0 : (_slides$slideCount2 = slides[slideCount]) === null || _slides$slideCount2 === void 0 ? void 0 : _slides$slideCount2.voice,
105
105
  text: slides === null || slides === void 0 ? void 0 : (_slides$slideCount3 = slides[slideCount]) === null || _slides$slideCount3 === void 0 ? void 0 : (_slides$slideCount3$v = _slides$slideCount3.vignettes[0].textData) === null || _slides$slideCount3$v === void 0 ? void 0 : _slides$slideCount3$v.text,
106
106
  audio: slides === null || slides === void 0 ? void 0 : (_slides$slideCount4 = slides[slideCount]) === null || _slides$slideCount4 === void 0 ? void 0 : _slides$slideCount4.audio,
107
107
  soundActions: soundActions,
108
- emitEvent: emitEvent
109
- }),
110
- onFinish = _useEkho.onFinish;
108
+ emitEvent: emitEvent,
109
+ onFinish: function onFinish() {
110
+ var _slides$slideCount5;
111
111
 
112
+ if (automatic && (slides === null || slides === void 0 ? void 0 : (_slides$slideCount5 = slides[slideCount]) === null || _slides$slideCount5 === void 0 ? void 0 : _slides$slideCount5.audioType) !== 'none') {
113
+ goToNextSlide();
114
+ }
115
+ }
116
+ });
112
117
  (0, _react.useEffect)(function () {
113
118
  var slide = slides === null || slides === void 0 ? void 0 : slides[slideCount];
114
119
 
115
- if (automatic) {
116
- if (!Object.keys(slide.voice || {}).length) {
117
- var _slide$vignettes$, _slide$vignettes$$tex;
120
+ if (automatic && ((slide === null || slide === void 0 ? void 0 : slide.audioType) === 'none' || !(slide !== null && slide !== void 0 && slide.audioType))) {
121
+ var _slide$vignettes$, _slide$vignettes$$tex;
118
122
 
119
- var time = characterMs * ((slide === null || slide === void 0 ? void 0 : (_slide$vignettes$ = slide.vignettes[0]) === null || _slide$vignettes$ === void 0 ? void 0 : (_slide$vignettes$$tex = _slide$vignettes$.textData) === null || _slide$vignettes$$tex === void 0 ? void 0 : _slide$vignettes$$tex.text.length) || 0);
120
- start(goToNextSlide, time < 1400 ? 1400 : time);
121
- } else {
122
- onFinish(goToNextSlide);
123
- }
123
+ var time = characterMs * ((slide === null || slide === void 0 ? void 0 : (_slide$vignettes$ = slide.vignettes[0]) === null || _slide$vignettes$ === void 0 ? void 0 : (_slide$vignettes$$tex = _slide$vignettes$.textData) === null || _slide$vignettes$$tex === void 0 ? void 0 : _slide$vignettes$$tex.text.length) || 0);
124
+ start(goToNextSlide, time < 1400 ? 1400 : time);
124
125
  }
125
126
 
126
127
  return function () {
127
128
  stop();
128
129
  };
129
- }, [automatic, goToNextSlide, onFinish, slideCount, slides, start, stop]);
130
+ }, [automatic, goToNextSlide, slideCount, slides, start, stop]);
130
131
  if (!(slides !== null && slides !== void 0 && slides.length)) return null;
131
132
  return /*#__PURE__*/_react.default.createElement("div", {
132
133
  className: "comic component growIn-animation"
133
134
  }, /*#__PURE__*/_react.default.createElement("div", {
134
135
  className: "comic--slider"
135
- }, /*#__PURE__*/_react.default.createElement(_Slide.default, {
136
+ }, slides[slideCount] && /*#__PURE__*/_react.default.createElement(_Slide.default, {
136
137
  key: "comic page ".concat(slides[slideCount].slideOrder),
137
138
  slide: slides[slideCount],
138
139
  transition: slideTransition,
@@ -277,17 +277,23 @@ var ConversationProViewer = function ConversationProViewer(_ref) {
277
277
  handleClickBack();
278
278
  };
279
279
 
280
+ var autoplayCond = automatic && !isDecision;
280
281
  (0, _useEkho.default)({
281
282
  audioType: currentLineData === null || currentLineData === void 0 ? void 0 : currentLineData.audioType,
282
283
  voice: currentLineData === null || currentLineData === void 0 ? void 0 : currentLineData.voice,
283
284
  text: currentMessage === null || currentMessage === void 0 ? void 0 : currentMessage.text,
284
285
  audio: currentLineData === null || currentLineData === void 0 ? void 0 : currentLineData.audio,
285
286
  soundActions: soundActions,
286
- emitEvent: emitEvent
287
+ emitEvent: emitEvent,
288
+ onFinish: function onFinish() {
289
+ if (autoplayCond && (currentLineData === null || currentLineData === void 0 ? void 0 : currentLineData.audioType) !== 'none') {
290
+ handleClickNext();
291
+ }
292
+ }
287
293
  }); // Autoplay logic
288
294
 
289
295
  (0, _react.useEffect)(function () {
290
- if (automatic && !isDecision) {
296
+ if (autoplayCond && (currentLineData === null || currentLineData === void 0 ? void 0 : currentLineData.audioType) === 'none') {
291
297
  var _currentMessage$text;
292
298
 
293
299
  var time = characterMs * ((currentMessage === null || currentMessage === void 0 ? void 0 : (_currentMessage$text = currentMessage.text) === null || _currentMessage$text === void 0 ? void 0 : _currentMessage$text.length) || 0);
@@ -297,7 +303,7 @@ var ConversationProViewer = function ConversationProViewer(_ref) {
297
303
  return function () {
298
304
  stop();
299
305
  };
300
- }, [currentMessage, automatic, isDecision, start, stop, handleClickNext]);
306
+ }, [currentMessage, start, stop, handleClickNext, currentLineData === null || currentLineData === void 0 ? void 0 : currentLineData.audioType, autoplayCond]);
301
307
 
302
308
  var decisionPayload = _objectSpread(_objectSpread({}, currentLineData.payload), {}, {
303
309
  required: !isBranched,
@@ -437,7 +437,8 @@ var DialogComponent = function DialogComponent(_ref) {
437
437
  });
438
438
  }
439
439
  }
440
- }, [actors, camera, currentLine, zoomInActor, getCurrentVisible, translate, getAvatarURL, loadEmotion, resetCameraView, isDecision, isVoiceOver]); // Sound logic
440
+ }, [actors, camera, currentLine, zoomInActor, getCurrentVisible, translate, getAvatarURL, loadEmotion, resetCameraView, isDecision, isVoiceOver]);
441
+ var autoPlayCond = automatic && currentMessage.show && !currentLine.decision; // Sound logic
441
442
 
442
443
  (0, _useEkho.default)({
443
444
  audioType: currentLine === null || currentLine === void 0 ? void 0 : currentLine.audioType,
@@ -445,11 +446,16 @@ var DialogComponent = function DialogComponent(_ref) {
445
446
  text: currentMessage === null || currentMessage === void 0 ? void 0 : currentMessage.text,
446
447
  audio: currentLine === null || currentLine === void 0 ? void 0 : currentLine.audio,
447
448
  soundActions: soundActions,
448
- emitEvent: emitEvent
449
+ emitEvent: emitEvent,
450
+ onFinish: function onFinish() {
451
+ if (autoPlayCond && (currentLine === null || currentLine === void 0 ? void 0 : currentLine.audioType) !== 'none') {
452
+ nextLine();
453
+ }
454
+ }
449
455
  }); // Autoplay logic
450
456
 
451
457
  (0, _react.useEffect)(function () {
452
- if (automatic && currentMessage.show && !currentLine.decision) {
458
+ if (autoPlayCond && (currentLine === null || currentLine === void 0 ? void 0 : currentLine.audioType) === 'none') {
453
459
  var _currentMessage$text;
454
460
 
455
461
  var time = characterMs * ((currentMessage === null || currentMessage === void 0 ? void 0 : (_currentMessage$text = currentMessage.text) === null || _currentMessage$text === void 0 ? void 0 : _currentMessage$text.length) || 0);
@@ -459,7 +465,7 @@ var DialogComponent = function DialogComponent(_ref) {
459
465
  return function () {
460
466
  stop();
461
467
  };
462
- }, [currentMessage, nextLine, automatic, currentLine.decision, start, stop]); // Positioning logic
468
+ }, [currentMessage, nextLine, start, stop, currentLine === null || currentLine === void 0 ? void 0 : currentLine.audioType, autoPlayCond]); // Positioning logic
463
469
 
464
470
  var checkBubblePosition = (0, _react.useCallback)(function () {
465
471
  if (bubbleRef.current && currentLine.slots) {
@@ -15,6 +15,8 @@ var _feedbackComponent = _interopRequireDefault(require("../../feedback-componen
15
15
 
16
16
  var _utils = require("../utils");
17
17
 
18
+ var _LangIsRtl = _interopRequireDefault(require("../../../helpers/LangIsRtl"));
19
+
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
21
 
20
22
  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); }
@@ -416,7 +418,8 @@ var TextClickPuzzleComponent = function TextClickPuzzleComponent(_ref) {
416
418
  }, /*#__PURE__*/_react.default.createElement("div", {
417
419
  className: "text-click__body"
418
420
  }, /*#__PURE__*/_react.default.createElement("div", {
419
- className: "text-click__scroll"
421
+ className: "text-click__scroll",
422
+ dir: (0, _LangIsRtl.default)() ? 'rtl' : 'auto'
420
423
  }, parsedText.current)))), showFrames && /*#__PURE__*/_react.default.createElement("div", {
421
424
  className: "text-click__paginator"
422
425
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -46,6 +46,8 @@ var getRecursiveJSX = function getRecursiveJSX(jsx) {
46
46
 
47
47
 
48
48
  if (jsx.props['data-text-id']) {
49
+ props.dir = 'auto';
50
+
49
51
  props.onClick = function (e) {
50
52
  return onClick(e, props['data-text-id'] || -1);
51
53
  };
@@ -85,6 +87,7 @@ var getRecursiveJSX = function getRecursiveJSX(jsx) {
85
87
  return word !== '';
86
88
  }).map(function (word) {
87
89
  return /*#__PURE__*/_react.default.createElement("span", {
90
+ dir: "auto",
88
91
  key: word
89
92
  }, word);
90
93
  });
@@ -75,7 +75,10 @@ var PopupTextComponent = function PopupTextComponent(_ref) {
75
75
  className: "puzzle--webBuilder__select"
76
76
  }, /*#__PURE__*/_react.default.createElement("div", {
77
77
  className: "puzzle--webBuilder__select--label"
78
- }, /*#__PURE__*/_react.default.createElement("span", null, translate('webbuilder.textSelect.title'))), /*#__PURE__*/_react.default.createElement("div", {
78
+ }, /*#__PURE__*/_react.default.createElement("div", {
79
+ dir: "auto"
80
+ }, translate('webbuilder.textSelect.title'))), /*#__PURE__*/_react.default.createElement("div", {
81
+ dir: "auto",
79
82
  className: classDropDown,
80
83
  onClick: function onClick() {
81
84
  return toggleDropdown();
@@ -17,6 +17,7 @@ var FeedbackResult = function FeedbackResult(_ref) {
17
17
  var title = success ? translate('webbuilder.feedback.successTitle') : translate('webbuilder.feedback.failTitle');
18
18
  var desc = success ? translate('webbuilder.feedback.success') : translate('webbuilder.feedback.fail');
19
19
  return /*#__PURE__*/_react.default.createElement("div", {
20
+ dir: "auto",
20
21
  className: "puzzle--webBuilder__feedback bottom ".concat(success ? 'success' : 'failed'),
21
22
  style: success ? {
22
23
  zIndex: '11'
@@ -60,6 +60,7 @@ var BankBody = function BankBody(_ref) {
60
60
  });
61
61
  }
62
62
  }) : null)), /*#__PURE__*/_react.default.createElement("div", {
63
+ dir: "auto",
63
64
  className: "bank--sidebar"
64
65
  }, /*#__PURE__*/_react.default.createElement("div", {
65
66
  className: "bank--form"
@@ -25,7 +25,8 @@ var FacebookBody = function FacebookBody(_ref) {
25
25
  var home = showingReference ? usingTemplate.body.home : body.home;
26
26
  var mail = showingReference ? usingTemplate.body.mail : body.mail;
27
27
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("ul", {
28
- className: "facebook--sidebar"
28
+ className: "facebook--sidebar",
29
+ dir: "auto"
29
30
  }, /*#__PURE__*/_react.default.createElement("li", {
30
31
  className: "facebook--sidebar__item ".concat(work || showingReference ? 'selected' : '')
31
32
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -221,6 +221,11 @@ var WebBuilderPuzzleComponent = function WebBuilderPuzzleComponent(_ref) {
221
221
  exist = _checkCorrect.exist,
222
222
  equal = _checkCorrect.equal;
223
223
 
224
+ emitEvent({
225
+ type: 'hidePuzzleButtons',
226
+ payload: true
227
+ });
228
+
224
229
  if (exist && !equal) {
225
230
  if (showPublish) {
226
231
  setShowPublish(false);
@@ -23,7 +23,10 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
23
23
 
24
24
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
25
25
 
26
+ var noop = function noop() {};
26
27
  /** Custom hook for use TTS and audio in the components */
28
+
29
+
27
30
  var useEkho = function useEkho(_ref) {
28
31
  var voice = _ref.voice,
29
32
  text = _ref.text,
@@ -32,7 +35,11 @@ var useEkho = function useEkho(_ref) {
32
35
  loop = _ref$loop === void 0 ? false : _ref$loop,
33
36
  audio = _ref.audio,
34
37
  soundActions = _ref.soundActions,
35
- emitEvent = _ref.emitEvent;
38
+ emitEvent = _ref.emitEvent,
39
+ _ref$onFinish = _ref.onFinish,
40
+ onFinish = _ref$onFinish === void 0 ? noop : _ref$onFinish,
41
+ _ref$onStart = _ref.onStart,
42
+ onStart = _ref$onStart === void 0 ? noop : _ref$onStart;
36
43
 
37
44
  var _soundActions = _slicedToArray(soundActions, 2),
38
45
  playSound = _soundActions[0],
@@ -54,15 +61,7 @@ var useEkho = function useEkho(_ref) {
54
61
  type: 'translate',
55
62
  payload: id
56
63
  });
57
- }, [emitEvent]);
58
- var finishCallback = (0, _react.useRef)(function () {});
59
- var startCallback = (0, _react.useRef)(function () {});
60
- var onStartAudio = (0, _react.useCallback)(function (fn) {
61
- startCallback.current = fn;
62
- }, []);
63
- var onFinishAudio = (0, _react.useCallback)(function (fn) {
64
- finishCallback.current = fn;
65
- }, []); // Setted when is mounted
64
+ }, [emitEvent]); // Setted when is mounted
66
65
 
67
66
  (0, _react.useEffect)(function () {
68
67
  setIsMounted(true);
@@ -101,12 +100,12 @@ var useEkho = function useEkho(_ref) {
101
100
  url: url,
102
101
  cc: cc
103
102
  };
104
- startCallback.current({
103
+ onStart({
105
104
  url: url,
106
105
  cc: cc
107
106
  });
108
- playSound(url, cc, loop, 0.5, finishCallback.current);
109
- }, [playSound, loop]);
107
+ playSound(url, cc, loop, 0.5, onFinish);
108
+ }, [onStart, playSound, loop, onFinish]);
110
109
  var playSpeech = (0, _react.useCallback)( /*#__PURE__*/function () {
111
110
  var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(payload) {
112
111
  var url;
@@ -159,10 +158,6 @@ var useEkho = function useEkho(_ref) {
159
158
  }
160
159
  }
161
160
  }, [getVoice, playSpeech, isMounted, voice, text, audioType, audio === null || audio === void 0 ? void 0 : audio.url, audio, setCurrentPlaying]);
162
- return {
163
- onStart: onStartAudio,
164
- onFinish: onFinishAudio
165
- };
166
161
  };
167
162
 
168
163
  var _default = useEkho;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@gamelearn/arcade-components",
3
3
  "author": "Gamelearn",
4
4
  "license": "unlicense",
5
- "version": "1.13.0",
5
+ "version": "1.15.0",
6
6
  "main": "dist/index.js",
7
7
  "files": [
8
8
  "dist",
@@ -13,7 +13,7 @@
13
13
  "url": "https://github.com/gamelearn/arcade-components"
14
14
  },
15
15
  "dependencies": {
16
- "@gamelearn/arcade-styles": "0.11.1",
16
+ "@gamelearn/arcade-styles": "0.11.3",
17
17
  "@gamelearn/arcade-three-core": "1.1.15",
18
18
  "@react-three/drei": "8.8.1",
19
19
  "@react-three/fiber": "7.0.25",