@gamelearn/arcade-components 1.16.2 → 1.17.1

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.
@@ -164,9 +164,10 @@ var HangedPuzzleComponent = function HangedPuzzleComponent(_ref4) {
164
164
  };
165
165
  });
166
166
  var extraPool = [];
167
+ var analysis = (0, _utils.analyzeChars)(answerPanel);
167
168
 
168
169
  while (extraPool.length < MAX_EXTRA_LETTERS) {
169
- var char = (0, _utils.makeChar)();
170
+ var char = (0, _utils.makeChar)(analysis);
170
171
  extraPool = [].concat(_toConsumableArray(extraPool), [{
171
172
  char: char
172
173
  }]);
@@ -3,11 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.sortChar = exports.restrictCharacters = exports.makeChar = void 0;
7
-
8
- var _LangIsRtl = _interopRequireDefault(require("../../helpers/LangIsRtl"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
+ exports.sortChar = exports.restrictCharacters = exports.makeChar = exports.analyzeChars = void 0;
7
+ var ARABIC = /[\u0600-\u06FF]/;
11
8
 
12
9
  var restrictCharacters = function restrictCharacters(char, operator) {
13
10
  var restrictedChar = false;
@@ -39,10 +36,49 @@ var sortChar = function sortChar(a, b) {
39
36
 
40
37
  exports.sortChar = sortChar;
41
38
 
42
- var makeChar = function makeChar() {
43
- var characters = (0, _LangIsRtl.default)() ? 'شزذيثبلاهتنمورخحضثقسفعدصطغظ' : 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
44
- var charactersLength = characters.length;
45
- return characters.charAt(Math.floor(Math.random() * charactersLength));
39
+ var analyzeChars = function analyzeChars(letters) {
40
+ var result = {
41
+ anyArabic: false,
42
+ anyNumber: false,
43
+ anyWestern: false
44
+ };
45
+
46
+ for (var i = 0; i < letters.length; i += 1) {
47
+ var ascii = letters[i].charCodeAt(0);
48
+
49
+ if (ascii >= 65 && ascii <= 90) {
50
+ result.anyWestern = true;
51
+ } else if (ascii >= 48 && ascii <= 57) {
52
+ result.anyNumber = true;
53
+ } else if (ARABIC.test(letters[i])) {
54
+ result.anyArabic = true;
55
+ }
56
+ }
57
+
58
+ return result;
59
+ };
60
+
61
+ exports.analyzeChars = analyzeChars;
62
+
63
+ var makeChar = function makeChar(analysis) {
64
+ var arabic = 'شزذيثبلاهتنمورخحضثقسفعدصطغظ';
65
+ var western = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
66
+ var numbers = '0123456789';
67
+ var characters = '';
68
+
69
+ if (analysis.anyWestern) {
70
+ characters += western;
71
+ }
72
+
73
+ if (analysis.anyNumber) {
74
+ characters += numbers;
75
+ }
76
+
77
+ if (analysis.anyArabic) {
78
+ characters += arabic;
79
+ }
80
+
81
+ return characters.charAt(Math.floor(Math.random() * characters.length));
46
82
  };
47
83
 
48
84
  exports.makeChar = makeChar;
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.16.2",
5
+ "version": "1.17.1",
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.7",
16
+ "@gamelearn/arcade-styles": "0.11.8",
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",