@scrabble-solver/scrabble-solver 2.12.1 → 2.12.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.
Files changed (97) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +14 -14
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/eslint/.cache_8dgz12 +1 -1
  5. package/.next/cache/next-server.js.nft.json +1 -1
  6. package/.next/cache/webpack/client-production/0.pack +0 -0
  7. package/.next/cache/webpack/client-production/index.pack +0 -0
  8. package/.next/cache/webpack/edge-server-production/0.pack +0 -0
  9. package/.next/cache/webpack/edge-server-production/index.pack +0 -0
  10. package/.next/cache/webpack/server-production/0.pack +0 -0
  11. package/.next/cache/webpack/server-production/index.pack +0 -0
  12. package/.next/next-server.js.nft.json +1 -1
  13. package/.next/prerender-manifest.json +1 -1
  14. package/.next/required-server-files.json +1 -1
  15. package/.next/routes-manifest.json +1 -1
  16. package/.next/server/chunks/131.js +478 -106
  17. package/.next/server/chunks/277.js +1202 -1013
  18. package/.next/server/chunks/44.js +36 -6
  19. package/.next/server/chunks/675.js +35 -13
  20. package/.next/server/chunks/859.js +21 -4
  21. package/.next/server/chunks/865.js +478 -106
  22. package/.next/server/chunks/911.js +894 -773
  23. package/.next/server/middleware-build-manifest.js +1 -1
  24. package/.next/server/pages/404.html +1 -1
  25. package/.next/server/pages/404.js.nft.json +1 -1
  26. package/.next/server/pages/500.html +1 -1
  27. package/.next/server/pages/_app.js +3 -1
  28. package/.next/server/pages/_app.js.nft.json +1 -1
  29. package/.next/server/pages/api/dictionary/[locale]/[word].js +4 -2
  30. package/.next/server/pages/api/solve.js +51 -20
  31. package/.next/server/pages/api/verify.js +8 -5
  32. package/.next/server/pages/index.html +1 -1
  33. package/.next/server/pages/index.js +55 -65
  34. package/.next/server/pages/index.js.nft.json +1 -1
  35. package/.next/server/pages/index.json +1 -1
  36. package/.next/server/pages-manifest.json +2 -2
  37. package/.next/static/chunks/{framework-2c5cac93e8c637b5.js → framework-2c29dc3cd933590b.js} +2 -2
  38. package/.next/static/chunks/main-4dcb7f9b52833aba.js +1 -0
  39. package/.next/static/chunks/pages/_app-e7f3d1c9c09c8f91.js +32 -0
  40. package/.next/static/chunks/pages/index-82b2939158c7729f.js +1 -0
  41. package/.next/static/css/4e8b47fe382a8a8f.css +2 -0
  42. package/.next/static/css/cfae5256f1689f57.css +1 -0
  43. package/.next/static/{_yG9K-PD5kWT_p4sMdCSV → wNIKOJJzkMSJYb2nOL21o}/_buildManifest.js +1 -1
  44. package/.next/trace +51 -52
  45. package/package.json +14 -14
  46. package/src/components/Board/Board.module.scss +33 -0
  47. package/src/components/Board/Board.tsx +3 -0
  48. package/src/components/Board/BoardPure.tsx +25 -1
  49. package/src/components/Board/components/Cell/Cell.module.scss +4 -12
  50. package/src/components/Board/components/Cell/Cell.tsx +4 -0
  51. package/src/components/Board/components/InputPrompt/InputPrompt.tsx +1 -0
  52. package/src/components/Board/hooks/useBackgroundImage.tsx +24 -6
  53. package/src/components/PlainTiles/lib/createPlainTile.ts +4 -4
  54. package/src/components/Rack/components/InputPrompt/InputPrompt.tsx +1 -0
  55. package/src/components/Radio/Radio.module.scss +4 -0
  56. package/src/components/Radio/Radio.tsx +1 -0
  57. package/src/components/SeoMessage/SeoMessage.tsx +3 -3
  58. package/src/hooks/useAppLayout.ts +1 -2
  59. package/src/hooks/useLocalStorage.ts +5 -5
  60. package/src/i18n/constants.ts +31 -61
  61. package/src/lib/extractCharacters.test.ts +3 -3
  62. package/src/lib/extractCharactersByCase.test.ts +3 -3
  63. package/src/lib/getCellSize.ts +2 -2
  64. package/src/modals/MenuModal/MenuModal.module.scss +0 -1
  65. package/src/modals/MenuModal/MenuModal.tsx +3 -3
  66. package/src/modals/SettingsModal/SettingsModal.tsx +7 -3
  67. package/src/modals/SettingsModal/components/ConfigSetting/ConfigSetting.tsx +16 -7
  68. package/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.module.scss +1 -4
  69. package/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.tsx +8 -8
  70. package/src/pages/_app.tsx +3 -1
  71. package/src/pages/api/dictionary/[locale]/[word].ts +6 -3
  72. package/src/pages/api/solve.ts +11 -7
  73. package/src/pages/api/verify.ts +11 -7
  74. package/src/pages/index.module.scss +0 -1
  75. package/src/parameters/index.ts +4 -6
  76. package/src/sdk/solve.ts +3 -3
  77. package/src/sdk/verify.ts +3 -3
  78. package/src/service-worker/routeSolveRequests.ts +3 -3
  79. package/src/state/localStorage.ts +6 -6
  80. package/src/state/sagas.ts +18 -7
  81. package/src/state/selectors.ts +10 -10
  82. package/src/state/slices/boardInitialState.ts +3 -3
  83. package/src/state/slices/boardSlice.ts +20 -6
  84. package/src/state/slices/settingsInitialState.ts +3 -4
  85. package/src/state/slices/settingsSlice.ts +5 -5
  86. package/src/styles/variables.scss +0 -9
  87. package/.next/static/chunks/main-0ecb9ccfcb6c9b24.js +0 -1
  88. package/.next/static/chunks/pages/_app-bea4539a6b8042de.js +0 -32
  89. package/.next/static/chunks/pages/index-4e8566409753e1c3.js +0 -1
  90. package/.next/static/css/58053f9594647860.css +0 -2
  91. package/.next/static/css/60e8258da7362a1a.css +0 -1
  92. package/src/i18n/i18n.module.scss +0 -27
  93. package/src/modals/SettingsModal/components/ConfigSetting/options.ts +0 -19
  94. package/src/modals/SettingsModal/components/ConfigSetting/types.ts +0 -9
  95. package/src/modals/SettingsModal/components/InputModeSetting/types.ts +0 -7
  96. package/src/modals/SettingsModal/components/LocaleSetting/types.ts +0 -9
  97. /package/.next/static/{_yG9K-PD5kWT_p4sMdCSV → wNIKOJJzkMSJYb2nOL21o}/_ssgManifest.js +0 -0
@@ -2,7 +2,7 @@ exports.id = 277;
2
2
  exports.ids = [277];
3
3
  exports.modules = {
4
4
 
5
- /***/ 57079:
5
+ /***/ 34928:
6
6
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
7
7
 
8
8
  "use strict";
@@ -11,598 +11,923 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
11
11
  return (mod && mod.__esModule) ? mod : { "default": mod };
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", ({ value: true }));
14
- const literaki_1 = __importDefault(__webpack_require__(63432));
15
- const scrabble_1 = __importDefault(__webpack_require__(8964));
16
- const configs = [literaki_1.default, scrabble_1.default];
17
- const getConfig = (configId) => {
18
- const config = configs.find(({ id }) => id === configId);
19
- if (!config) {
20
- throw new Error(`Invalid "configId" parameter: not one of ${configs.map(({ id }) => id).join('/')}`);
21
- }
22
- return config;
23
- };
24
- exports["default"] = getConfig;
14
+ exports.superScrabble = exports.scrabble = exports.literaki = void 0;
15
+ var literaki_1 = __webpack_require__(31078);
16
+ Object.defineProperty(exports, "literaki", ({ enumerable: true, get: function () { return __importDefault(literaki_1).default; } }));
17
+ var scrabble_1 = __webpack_require__(41128);
18
+ Object.defineProperty(exports, "scrabble", ({ enumerable: true, get: function () { return __importDefault(scrabble_1).default; } }));
19
+ var superScrabble_1 = __webpack_require__(74454);
20
+ Object.defineProperty(exports, "superScrabble", ({ enumerable: true, get: function () { return __importDefault(superScrabble_1).default; } }));
25
21
 
26
22
 
27
23
  /***/ }),
28
24
 
29
- /***/ 53632:
30
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
25
+ /***/ 31078:
26
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
31
27
 
32
28
  "use strict";
33
29
 
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
30
  Object.defineProperty(exports, "__esModule", ({ value: true }));
38
- const getConfig_1 = __importDefault(__webpack_require__(57079));
39
- const getLocaleConfig = (configId, locale) => {
40
- return (0, getConfig_1.default)(configId)[locale];
41
- };
42
- exports["default"] = getLocaleConfig;
43
-
44
-
45
- /***/ }),
46
-
47
- /***/ 89418:
48
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
49
-
50
- "use strict";
51
-
52
- var __importDefault = (this && this.__importDefault) || function (mod) {
53
- return (mod && mod.__esModule) ? mod : { "default": mod };
31
+ const constants_1 = __webpack_require__(7618);
32
+ const types_1 = __webpack_require__(34046);
33
+ const literaki = {
34
+ allTilesBonusScore: 50,
35
+ blankScore: 0,
36
+ blanksCount: 2,
37
+ boardHeight: 15,
38
+ boardWidth: 15,
39
+ game: types_1.Game.Literaki,
40
+ maximumCharactersCount: 7,
41
+ name: 'Literaki',
42
+ bonuses: [
43
+ { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 0, y: 0 },
44
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 2, y: 0 },
45
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 0 },
46
+ { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 7, y: 0 },
47
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 0 },
48
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 12, y: 0 },
49
+ { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 14, y: 0 },
50
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 1 },
51
+ { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 6, y: 1 },
52
+ { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 8, y: 1 },
53
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 1 },
54
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 2 },
55
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 2 },
56
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 2 },
57
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 7, y: 2 },
58
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 2 },
59
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 2 },
60
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 2 },
61
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 3 },
62
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 3 },
63
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 6, y: 3 },
64
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 8, y: 3 },
65
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 3 },
66
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 3 },
67
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 1, y: 4 },
68
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 4 },
69
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 5, y: 4 },
70
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 9, y: 4 },
71
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 4 },
72
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 13, y: 4 },
73
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 5 },
74
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 5 },
75
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 4, y: 5 },
76
+ { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 7, y: 5 },
77
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 10, y: 5 },
78
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 5 },
79
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 5 },
80
+ { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 1, y: 6 },
81
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 3, y: 6 },
82
+ { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 6, y: 6 },
83
+ { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 6 },
84
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 11, y: 6 },
85
+ { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 13, y: 6 },
86
+ { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 0, y: 7 },
87
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 2, y: 7 },
88
+ { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 7 },
89
+ { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 7, y: 7 },
90
+ { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 7 },
91
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 12, y: 7 },
92
+ { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 14, y: 7 },
93
+ { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 1, y: 8 },
94
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 3, y: 8 },
95
+ { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 6, y: 8 },
96
+ { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 8 },
97
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 11, y: 8 },
98
+ { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 13, y: 8 },
99
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 9 },
100
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 9 },
101
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 4, y: 9 },
102
+ { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 7, y: 9 },
103
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 10, y: 9 },
104
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 9 },
105
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 9 },
106
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 1, y: 10 },
107
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 10 },
108
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 5, y: 10 },
109
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 9, y: 10 },
110
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 10 },
111
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 13, y: 10 },
112
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 11 },
113
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 11 },
114
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 6, y: 11 },
115
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 8, y: 11 },
116
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 11 },
117
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 11 },
118
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 12 },
119
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 12 },
120
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 12 },
121
+ { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 7, y: 12 },
122
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 12 },
123
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 12 },
124
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 12 },
125
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 13 },
126
+ { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 6, y: 13 },
127
+ { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 8, y: 13 },
128
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 13 },
129
+ { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 0, y: 14 },
130
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 2, y: 14 },
131
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 14 },
132
+ { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 7, y: 14 },
133
+ { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 14 },
134
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 12, y: 14 },
135
+ { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 14, y: 14 },
136
+ ],
54
137
  };
55
- Object.defineProperty(exports, "__esModule", ({ value: true }));
56
- exports.scrabble = exports.literaki = exports.isConfigId = exports.getLocaleConfig = exports.getConfig = void 0;
57
- var getConfig_1 = __webpack_require__(57079);
58
- Object.defineProperty(exports, "getConfig", ({ enumerable: true, get: function () { return __importDefault(getConfig_1).default; } }));
59
- var getLocaleConfig_1 = __webpack_require__(53632);
60
- Object.defineProperty(exports, "getLocaleConfig", ({ enumerable: true, get: function () { return __importDefault(getLocaleConfig_1).default; } }));
61
- var isConfigId_1 = __webpack_require__(65582);
62
- Object.defineProperty(exports, "isConfigId", ({ enumerable: true, get: function () { return __importDefault(isConfigId_1).default; } }));
63
- var literaki_1 = __webpack_require__(63432);
64
- Object.defineProperty(exports, "literaki", ({ enumerable: true, get: function () { return __importDefault(literaki_1).default; } }));
65
- var scrabble_1 = __webpack_require__(8964);
66
- Object.defineProperty(exports, "scrabble", ({ enumerable: true, get: function () { return __importDefault(scrabble_1).default; } }));
138
+ exports["default"] = literaki;
67
139
 
68
140
 
69
141
  /***/ }),
70
142
 
71
- /***/ 65582:
72
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
143
+ /***/ 41128:
144
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
73
145
 
74
146
  "use strict";
75
147
 
76
- var __importDefault = (this && this.__importDefault) || function (mod) {
77
- return (mod && mod.__esModule) ? mod : { "default": mod };
78
- };
79
148
  Object.defineProperty(exports, "__esModule", ({ value: true }));
80
- const literaki_1 = __importDefault(__webpack_require__(63432));
81
- const scrabble_1 = __importDefault(__webpack_require__(8964));
82
- const configs = [literaki_1.default, scrabble_1.default];
83
- const isConfigId = (configId) => {
84
- return configs.some(({ id }) => id === configId);
149
+ const constants_1 = __webpack_require__(7618);
150
+ const types_1 = __webpack_require__(34046);
151
+ const scrabble = {
152
+ allTilesBonusScore: 50,
153
+ blankScore: 0,
154
+ blanksCount: 2,
155
+ boardHeight: 15,
156
+ boardWidth: 15,
157
+ game: types_1.Game.Scrabble,
158
+ maximumCharactersCount: 7,
159
+ name: 'Scrabble',
160
+ bonuses: [
161
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 0 },
162
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 0 },
163
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 7, y: 0 },
164
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 0 },
165
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 0 },
166
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 1 },
167
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 1 },
168
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 1 },
169
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 13, y: 1 },
170
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 2 },
171
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 2 },
172
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 2 },
173
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 2 },
174
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 3 },
175
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 3 },
176
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 7, y: 3 },
177
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 3 },
178
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 3 },
179
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 4 },
180
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 4 },
181
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 5 },
182
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 5 },
183
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 5 },
184
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 13, y: 5 },
185
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 6 },
186
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 6 },
187
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 6 },
188
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 6 },
189
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 7 },
190
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 7 },
191
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 7, y: 7 },
192
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 7 },
193
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 7 },
194
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 8 },
195
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 8 },
196
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 8 },
197
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 8 },
198
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 9 },
199
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 9 },
200
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 9 },
201
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 13, y: 9 },
202
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 10 },
203
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 10 },
204
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 11 },
205
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 11 },
206
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 7, y: 11 },
207
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 11 },
208
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 11 },
209
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 12 },
210
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 12 },
211
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 12 },
212
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 12 },
213
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 13 },
214
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 13 },
215
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 13 },
216
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 13, y: 13 },
217
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 14 },
218
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 14 },
219
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 7, y: 14 },
220
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 14 },
221
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 14 },
222
+ ],
85
223
  };
86
- exports["default"] = isConfigId;
224
+ exports["default"] = scrabble;
87
225
 
88
226
 
89
227
  /***/ }),
90
228
 
91
- /***/ 72376:
229
+ /***/ 74454:
92
230
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
93
231
 
94
232
  "use strict";
95
233
 
96
234
  Object.defineProperty(exports, "__esModule", ({ value: true }));
97
235
  const constants_1 = __webpack_require__(7618);
98
- const bonuses = [
99
- { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 0, y: 0 },
100
- { multiplier: 3, type: constants_1.BONUS_WORD, x: 2, y: 0 },
101
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 0 },
102
- { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 7, y: 0 },
103
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 0 },
104
- { multiplier: 3, type: constants_1.BONUS_WORD, x: 12, y: 0 },
105
- { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 14, y: 0 },
106
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 1 },
107
- { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 6, y: 1 },
108
- { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 8, y: 1 },
109
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 1 },
110
- { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 2 },
111
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 2 },
112
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 2 },
113
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 7, y: 2 },
114
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 2 },
115
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 2 },
116
- { multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 2 },
117
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 3 },
118
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 3 },
119
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 6, y: 3 },
120
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 8, y: 3 },
121
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 3 },
122
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 3 },
123
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 1, y: 4 },
124
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 4 },
125
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 5, y: 4 },
126
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 9, y: 4 },
127
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 4 },
128
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 13, y: 4 },
129
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 5 },
130
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 5 },
131
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 4, y: 5 },
132
- { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 7, y: 5 },
133
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 10, y: 5 },
134
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 5 },
135
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 5 },
136
- { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 1, y: 6 },
137
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 3, y: 6 },
138
- { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 6, y: 6 },
139
- { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 6 },
140
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 11, y: 6 },
141
- { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 13, y: 6 },
142
- { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 0, y: 7 },
143
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 2, y: 7 },
144
- { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 7 },
145
- { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 7, y: 7 },
146
- { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 7 },
147
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 12, y: 7 },
148
- { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 14, y: 7 },
149
- { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 1, y: 8 },
150
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 3, y: 8 },
151
- { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 6, y: 8 },
152
- { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 8 },
153
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 11, y: 8 },
154
- { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 13, y: 8 },
155
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 9 },
156
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 9 },
157
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 4, y: 9 },
158
- { multiplier: 3, score: 3, type: constants_1.BONUS_CHARACTER, x: 7, y: 9 },
159
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 10, y: 9 },
160
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 9 },
161
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 9 },
162
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 1, y: 10 },
163
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 10 },
164
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 5, y: 10 },
165
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 9, y: 10 },
166
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 10 },
167
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 13, y: 10 },
168
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 11 },
169
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 11 },
170
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 6, y: 11 },
171
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 8, y: 11 },
172
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 11 },
173
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 11 },
174
- { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 12 },
175
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 12 },
176
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 12 },
177
- { multiplier: 3, score: 1, type: constants_1.BONUS_CHARACTER, x: 7, y: 12 },
178
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 12 },
179
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 12 },
180
- { multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 12 },
181
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 4, y: 13 },
182
- { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 6, y: 13 },
183
- { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 8, y: 13 },
184
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 13 },
185
- { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 0, y: 14 },
186
- { multiplier: 3, type: constants_1.BONUS_WORD, x: 2, y: 14 },
187
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 14 },
188
- { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 7, y: 14 },
189
- { multiplier: 3, score: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 14 },
190
- { multiplier: 3, type: constants_1.BONUS_WORD, x: 12, y: 14 },
191
- { multiplier: 3, score: 5, type: constants_1.BONUS_CHARACTER, x: 14, y: 14 },
192
- ];
193
- exports["default"] = bonuses;
236
+ const types_1 = __webpack_require__(34046);
237
+ const scrabble = {
238
+ allTilesBonusScore: 50,
239
+ blankScore: 0,
240
+ blanksCount: 4,
241
+ boardHeight: 21,
242
+ boardWidth: 21,
243
+ game: types_1.Game.SuperScrabble,
244
+ maximumCharactersCount: 7,
245
+ name: 'Super Scrabble',
246
+ bonuses: [
247
+ { multiplier: 4, type: constants_1.BONUS_WORD, x: 0, y: 0 },
248
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 0 },
249
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 7, y: 0 },
250
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 0 },
251
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 13, y: 0 },
252
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 17, y: 0 },
253
+ { multiplier: 4, type: constants_1.BONUS_WORD, x: 20, y: 0 },
254
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 1 },
255
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 4, y: 1 },
256
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 8, y: 1 },
257
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 1 },
258
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 16, y: 1 },
259
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 19, y: 1 },
260
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 2 },
261
+ { multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 5, y: 2 },
262
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 2 },
263
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 2 },
264
+ { multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 15, y: 2 },
265
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 18, y: 2 },
266
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 3 },
267
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 3, y: 3 },
268
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 3 },
269
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 10, y: 3 },
270
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 3 },
271
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 17, y: 3 },
272
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 20, y: 3 },
273
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 4 },
274
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 4 },
275
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 4 },
276
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 12, y: 4 },
277
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 16, y: 4 },
278
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 19, y: 4 },
279
+ { multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 2, y: 5 },
280
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 5 },
281
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 5 },
282
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 5 },
283
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 15, y: 5 },
284
+ { multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 18, y: 5 },
285
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 6 },
286
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 6, y: 6 },
287
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 6 },
288
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 14, y: 6 },
289
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 17, y: 6 },
290
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 7 },
291
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 7, y: 7 },
292
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 13, y: 7 },
293
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 20, y: 7 },
294
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 8 },
295
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 4, y: 8 },
296
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 8 },
297
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 12, y: 8 },
298
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 16, y: 8 },
299
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 19, y: 8 },
300
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 9 },
301
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 9 },
302
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 9 },
303
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 9 },
304
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 15, y: 9 },
305
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 18, y: 9 },
306
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 10 },
307
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 3, y: 10 },
308
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 10 },
309
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 10 },
310
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 17, y: 10 },
311
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 20, y: 10 },
312
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 11 },
313
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 5, y: 11 },
314
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 11 },
315
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 11 },
316
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 15, y: 11 },
317
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 18, y: 11 },
318
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 12 },
319
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 4, y: 12 },
320
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 12 },
321
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 12, y: 12 },
322
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 16, y: 12 },
323
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 19, y: 12 },
324
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 13 },
325
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 7, y: 13 },
326
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 13, y: 13 },
327
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 20, y: 13 },
328
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 14 },
329
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 6, y: 14 },
330
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 14 },
331
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 14, y: 14 },
332
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 17, y: 14 },
333
+ { multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 2, y: 15 },
334
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 5, y: 15 },
335
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 9, y: 15 },
336
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 15 },
337
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 15, y: 15 },
338
+ { multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 18, y: 15 },
339
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 16 },
340
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 16 },
341
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 8, y: 16 },
342
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 12, y: 16 },
343
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 16, y: 16 },
344
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 19, y: 16 },
345
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 17 },
346
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 3, y: 17 },
347
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 17 },
348
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 10, y: 17 },
349
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 17 },
350
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 17, y: 17 },
351
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 20, y: 17 },
352
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 18 },
353
+ { multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 5, y: 18 },
354
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 9, y: 18 },
355
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 18 },
356
+ { multiplier: 4, type: constants_1.BONUS_CHARACTER, x: 15, y: 18 },
357
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 18, y: 18 },
358
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 19 },
359
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 4, y: 19 },
360
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 8, y: 19 },
361
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 19 },
362
+ { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 16, y: 19 },
363
+ { multiplier: 2, type: constants_1.BONUS_WORD, x: 19, y: 19 },
364
+ { multiplier: 4, type: constants_1.BONUS_WORD, x: 0, y: 20 },
365
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 20 },
366
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 7, y: 20 },
367
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 10, y: 20 },
368
+ { multiplier: 3, type: constants_1.BONUS_WORD, x: 13, y: 20 },
369
+ { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 17, y: 20 },
370
+ { multiplier: 4, type: constants_1.BONUS_WORD, x: 20, y: 20 },
371
+ ],
372
+ };
373
+ exports["default"] = scrabble;
194
374
 
195
375
 
196
376
  /***/ }),
197
377
 
198
- /***/ 63432:
378
+ /***/ 57079:
199
379
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
200
380
 
201
381
  "use strict";
202
382
 
203
- var __importDefault = (this && this.__importDefault) || function (mod) {
204
- return (mod && mod.__esModule) ? mod : { "default": mod };
383
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
384
+ if (k2 === undefined) k2 = k;
385
+ var desc = Object.getOwnPropertyDescriptor(m, k);
386
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
387
+ desc = { enumerable: true, get: function() { return m[k]; } };
388
+ }
389
+ Object.defineProperty(o, k2, desc);
390
+ }) : (function(o, m, k, k2) {
391
+ if (k2 === undefined) k2 = k;
392
+ o[k2] = m[k];
393
+ }));
394
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
395
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
396
+ }) : function(o, v) {
397
+ o["default"] = v;
398
+ });
399
+ var __importStar = (this && this.__importStar) || function (mod) {
400
+ if (mod && mod.__esModule) return mod;
401
+ var result = {};
402
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
403
+ __setModuleDefault(result, mod);
404
+ return result;
205
405
  };
206
406
  Object.defineProperty(exports, "__esModule", ({ value: true }));
207
- exports["default"] = void 0;
208
- var literaki_1 = __webpack_require__(34477);
209
- Object.defineProperty(exports, "default", ({ enumerable: true, get: function () { return __importDefault(literaki_1).default; } }));
407
+ const locales = __importStar(__webpack_require__(41331));
408
+ const getConfig = (game, locale) => {
409
+ const configs = Object.values(locales).flat();
410
+ const localeConfig = configs.find((config) => config.game === game && config.locale === locale);
411
+ if (typeof localeConfig === 'undefined') {
412
+ throw new Error(`No game "${game}" in "${locale}"`);
413
+ }
414
+ return localeConfig;
415
+ };
416
+ exports["default"] = getConfig;
210
417
 
211
418
 
212
419
  /***/ }),
213
420
 
214
- /***/ 34477:
421
+ /***/ 76908:
215
422
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
216
423
 
217
424
  "use strict";
218
425
 
219
- var __importDefault = (this && this.__importDefault) || function (mod) {
220
- return (mod && mod.__esModule) ? mod : { "default": mod };
426
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
427
+ if (k2 === undefined) k2 = k;
428
+ var desc = Object.getOwnPropertyDescriptor(m, k);
429
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
430
+ desc = { enumerable: true, get: function() { return m[k]; } };
431
+ }
432
+ Object.defineProperty(o, k2, desc);
433
+ }) : (function(o, m, k, k2) {
434
+ if (k2 === undefined) k2 = k;
435
+ o[k2] = m[k];
436
+ }));
437
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
438
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
439
+ }) : function(o, v) {
440
+ o["default"] = v;
441
+ });
442
+ var __importStar = (this && this.__importStar) || function (mod) {
443
+ if (mod && mod.__esModule) return mod;
444
+ var result = {};
445
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
446
+ __setModuleDefault(result, mod);
447
+ return result;
221
448
  };
222
449
  Object.defineProperty(exports, "__esModule", ({ value: true }));
223
- const types_1 = __webpack_require__(34046);
224
- const bonuses_1 = __importDefault(__webpack_require__(72376));
225
- const tiles_1 = __webpack_require__(87529);
226
- const base = {
227
- allTilesBonusScore: 50,
228
- blankScore: 0,
229
- blanksCount: 2,
230
- boardHeight: 15,
231
- boardWidth: 15,
232
- bonuses: bonuses_1.default,
233
- id: 'literaki',
234
- maximumCharactersCount: 7,
235
- name: 'Literaki',
450
+ const locales = __importStar(__webpack_require__(41331));
451
+ const hasConfig = (game, locale) => {
452
+ const configs = Object.values(locales).flat();
453
+ return configs.some((config) => config.game === game && config.locale === locale);
236
454
  };
237
- const literaki = {
238
- id: base.id,
239
- name: base.name,
240
- [types_1.Locale.DE_DE]: types_1.Config.fromJson({ ...base, locale: types_1.Locale.EN_GB, tiles: tiles_1.tilesDe }),
241
- [types_1.Locale.EN_GB]: types_1.Config.fromJson({ ...base, locale: types_1.Locale.DE_DE, tiles: tiles_1.tilesEn }),
242
- [types_1.Locale.EN_US]: types_1.Config.fromJson({ ...base, locale: types_1.Locale.EN_US, tiles: tiles_1.tilesEn }),
243
- [types_1.Locale.ES_ES]: types_1.Config.fromJson({ ...base, locale: types_1.Locale.ES_ES, tiles: tiles_1.tilesEs }),
244
- [types_1.Locale.FA_IR]: types_1.Config.fromJson({ ...base, locale: types_1.Locale.FA_IR, tiles: tiles_1.tilesFa }),
245
- [types_1.Locale.FR_FR]: types_1.Config.fromJson({ ...base, locale: types_1.Locale.FR_FR, tiles: tiles_1.tilesFr }),
246
- [types_1.Locale.PL_PL]: types_1.Config.fromJson({ ...base, locale: types_1.Locale.PL_PL, tiles: tiles_1.tilesPl }),
247
- };
248
- exports["default"] = literaki;
455
+ exports["default"] = hasConfig;
249
456
 
250
457
 
251
458
  /***/ }),
252
459
 
253
- /***/ 87529:
460
+ /***/ 89418:
254
461
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
255
462
 
256
463
  "use strict";
257
464
 
465
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
466
+ if (k2 === undefined) k2 = k;
467
+ var desc = Object.getOwnPropertyDescriptor(m, k);
468
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
469
+ desc = { enumerable: true, get: function() { return m[k]; } };
470
+ }
471
+ Object.defineProperty(o, k2, desc);
472
+ }) : (function(o, m, k, k2) {
473
+ if (k2 === undefined) k2 = k;
474
+ o[k2] = m[k];
475
+ }));
476
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
477
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
478
+ }) : function(o, v) {
479
+ o["default"] = v;
480
+ });
481
+ var __importStar = (this && this.__importStar) || function (mod) {
482
+ if (mod && mod.__esModule) return mod;
483
+ var result = {};
484
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
485
+ __setModuleDefault(result, mod);
486
+ return result;
487
+ };
258
488
  var __importDefault = (this && this.__importDefault) || function (mod) {
259
489
  return (mod && mod.__esModule) ? mod : { "default": mod };
260
490
  };
261
491
  Object.defineProperty(exports, "__esModule", ({ value: true }));
262
- exports.tilesDe = exports.tilesPl = exports.tilesFr = exports.tilesFa = exports.tilesEs = exports.tilesEn = void 0;
263
- var tilesEn_1 = __webpack_require__(17910);
264
- Object.defineProperty(exports, "tilesEn", ({ enumerable: true, get: function () { return __importDefault(tilesEn_1).default; } }));
265
- var tilesEs_1 = __webpack_require__(63029);
266
- Object.defineProperty(exports, "tilesEs", ({ enumerable: true, get: function () { return __importDefault(tilesEs_1).default; } }));
267
- var tilesFa_1 = __webpack_require__(35366);
268
- Object.defineProperty(exports, "tilesFa", ({ enumerable: true, get: function () { return __importDefault(tilesFa_1).default; } }));
269
- var tilesFr_1 = __webpack_require__(59541);
270
- Object.defineProperty(exports, "tilesFr", ({ enumerable: true, get: function () { return __importDefault(tilesFr_1).default; } }));
271
- var tilesPl_1 = __webpack_require__(2647);
272
- Object.defineProperty(exports, "tilesPl", ({ enumerable: true, get: function () { return __importDefault(tilesPl_1).default; } }));
273
- var tilesDe_1 = __webpack_require__(57911);
274
- Object.defineProperty(exports, "tilesDe", ({ enumerable: true, get: function () { return __importDefault(tilesDe_1).default; } }));
275
-
276
-
277
- /***/ }),
278
-
279
- /***/ 57911:
280
- /***/ ((__unused_webpack_module, exports) => {
281
-
282
- "use strict";
283
-
284
- Object.defineProperty(exports, "__esModule", ({ value: true }));
285
- const tilesDe = [
286
- { character: 'a', count: 5, score: 1 },
287
- { character: 'ä', count: 1, score: 6 },
288
- { character: 'b', count: 2, score: 3 },
289
- { character: 'c', count: 2, score: 4 },
290
- { character: 'd', count: 4, score: 1 },
291
- { character: 'e', count: 15, score: 1 },
292
- { character: 'f', count: 2, score: 4 },
293
- { character: 'g', count: 3, score: 2 },
294
- { character: 'h', count: 4, score: 2 },
295
- { character: 'i', count: 6, score: 1 },
296
- { character: 'j', count: 1, score: 6 },
297
- { character: 'k', count: 2, score: 4 },
298
- { character: 'l', count: 3, score: 2 },
299
- { character: 'm', count: 4, score: 3 },
300
- { character: 'n', count: 9, score: 1 },
301
- { character: 'o', count: 3, score: 2 },
302
- { character: 'ö', count: 1, score: 8 },
303
- { character: 'p', count: 1, score: 4 },
304
- { character: 'q', count: 1, score: 10 },
305
- { character: 'r', count: 6, score: 1 },
306
- { character: 's', count: 7, score: 1 },
307
- { character: 't', count: 6, score: 1 },
308
- { character: 'u', count: 6, score: 1 },
309
- { character: 'ü', count: 1, score: 6 },
310
- { character: 'v', count: 1, score: 6 },
311
- { character: 'w', count: 1, score: 3 },
312
- { character: 'x', count: 1, score: 8 },
313
- { character: 'y', count: 1, score: 10 },
314
- { character: 'z', count: 1, score: 3 },
315
- ];
316
- exports["default"] = tilesDe;
492
+ exports.localesMap = exports.locales = exports.games = exports.hasConfig = exports.getConfig = void 0;
493
+ const games = __importStar(__webpack_require__(34928));
494
+ exports.games = games;
495
+ const locales = __importStar(__webpack_require__(41331));
496
+ exports.locales = locales;
497
+ const localesMap = Object.fromEntries(Object.values(locales).map((configs) => [configs[0].locale, configs]));
498
+ exports.localesMap = localesMap;
499
+ var getConfig_1 = __webpack_require__(57079);
500
+ Object.defineProperty(exports, "getConfig", ({ enumerable: true, get: function () { return __importDefault(getConfig_1).default; } }));
501
+ var hasConfig_1 = __webpack_require__(76908);
502
+ Object.defineProperty(exports, "hasConfig", ({ enumerable: true, get: function () { return __importDefault(hasConfig_1).default; } }));
317
503
 
318
504
 
319
505
  /***/ }),
320
506
 
321
- /***/ 17910:
322
- /***/ ((__unused_webpack_module, exports) => {
507
+ /***/ 57304:
508
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
323
509
 
324
510
  "use strict";
325
511
 
326
512
  Object.defineProperty(exports, "__esModule", ({ value: true }));
327
- const tilesEn = [
328
- { character: 'a', count: 9, score: 1 },
329
- { character: 'b', count: 2, score: 3 },
330
- { character: 'c', count: 2, score: 3 },
331
- { character: 'd', count: 4, score: 2 },
332
- { character: 'e', count: 12, score: 1 },
333
- { character: 'f', count: 2, score: 4 },
334
- { character: 'g', count: 3, score: 2 },
335
- { character: 'h', count: 2, score: 4 },
336
- { character: 'i', count: 9, score: 1 },
337
- { character: 'j', count: 1, score: 8 },
338
- { character: 'k', count: 1, score: 5 },
339
- { character: 'l', count: 4, score: 1 },
340
- { character: 'm', count: 2, score: 3 },
341
- { character: 'n', count: 6, score: 1 },
342
- { character: 'o', count: 8, score: 1 },
343
- { character: 'p', count: 2, score: 3 },
344
- { character: 'q', count: 1, score: 10 },
345
- { character: 'r', count: 6, score: 1 },
346
- { character: 's', count: 4, score: 1 },
347
- { character: 't', count: 6, score: 1 },
348
- { character: 'u', count: 4, score: 1 },
349
- { character: 'v', count: 2, score: 4 },
350
- { character: 'w', count: 2, score: 4 },
351
- { character: 'x', count: 1, score: 8 },
352
- { character: 'y', count: 2, score: 4 },
353
- { character: 'z', count: 1, score: 10 },
513
+ const types_1 = __webpack_require__(34046);
514
+ const games_1 = __webpack_require__(34928);
515
+ const deDe = [
516
+ new types_1.Config({
517
+ ...games_1.scrabble,
518
+ locale: types_1.Locale.DE_DE,
519
+ tiles: [
520
+ { character: 'a', count: 5, score: 1 },
521
+ { character: 'ä', count: 1, score: 6 },
522
+ { character: 'b', count: 2, score: 3 },
523
+ { character: 'c', count: 2, score: 4 },
524
+ { character: 'd', count: 4, score: 1 },
525
+ { character: 'e', count: 15, score: 1 },
526
+ { character: 'f', count: 2, score: 4 },
527
+ { character: 'g', count: 3, score: 2 },
528
+ { character: 'h', count: 4, score: 2 },
529
+ { character: 'i', count: 6, score: 1 },
530
+ { character: 'j', count: 1, score: 6 },
531
+ { character: 'k', count: 2, score: 4 },
532
+ { character: 'l', count: 3, score: 2 },
533
+ { character: 'm', count: 4, score: 3 },
534
+ { character: 'n', count: 9, score: 1 },
535
+ { character: 'o', count: 3, score: 2 },
536
+ { character: 'ö', count: 1, score: 8 },
537
+ { character: 'p', count: 1, score: 4 },
538
+ { character: 'q', count: 1, score: 10 },
539
+ { character: 'r', count: 6, score: 1 },
540
+ { character: 's', count: 7, score: 1 },
541
+ { character: 't', count: 6, score: 1 },
542
+ { character: 'u', count: 6, score: 1 },
543
+ { character: 'ü', count: 1, score: 6 },
544
+ { character: 'v', count: 1, score: 6 },
545
+ { character: 'w', count: 1, score: 3 },
546
+ { character: 'x', count: 1, score: 8 },
547
+ { character: 'y', count: 1, score: 10 },
548
+ { character: 'z', count: 1, score: 3 },
549
+ ],
550
+ }),
354
551
  ];
355
- exports["default"] = tilesEn;
552
+ exports["default"] = deDe;
356
553
 
357
554
 
358
555
  /***/ }),
359
556
 
360
- /***/ 63029:
361
- /***/ ((__unused_webpack_module, exports) => {
557
+ /***/ 81435:
558
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
362
559
 
363
560
  "use strict";
364
561
 
365
562
  Object.defineProperty(exports, "__esModule", ({ value: true }));
366
- const tilesEs = [
367
- { character: 'a', count: 12, score: 1 },
368
- { character: 'b', count: 2, score: 3 },
369
- { character: 'c', count: 4, score: 3 },
370
- { character: 'ch', count: 1, score: 5 },
371
- { character: 'd', count: 5, score: 2 },
372
- { character: 'e', count: 12, score: 1 },
373
- { character: 'f', count: 1, score: 4 },
374
- { character: 'g', count: 2, score: 2 },
375
- { character: 'h', count: 2, score: 4 },
376
- { character: 'i', count: 6, score: 1 },
377
- { character: 'j', count: 1, score: 8 },
378
- { character: 'll', count: 1, score: 8 },
379
- { character: 'l', count: 4, score: 1 },
380
- { character: 'm', count: 2, score: 3 },
381
- { character: 'n', count: 5, score: 1 },
382
- { character: 'ñ', count: 1, score: 8 },
383
- { character: 'o', count: 9, score: 1 },
384
- { character: 'p', count: 2, score: 3 },
385
- { character: 'q', count: 1, score: 5 },
386
- { character: 'r', count: 5, score: 1 },
387
- { character: 'rr', count: 1, score: 8 },
388
- { character: 's', count: 6, score: 1 },
389
- { character: 't', count: 4, score: 1 },
390
- { character: 'u', count: 5, score: 1 },
391
- { character: 'v', count: 1, score: 4 },
392
- { character: 'x', count: 1, score: 8 },
393
- { character: 'y', count: 1, score: 4 },
394
- { character: 'z', count: 1, score: 10 },
563
+ const types_1 = __webpack_require__(34046);
564
+ const games_1 = __webpack_require__(34928);
565
+ const enGb = [
566
+ new types_1.Config({
567
+ ...games_1.scrabble,
568
+ locale: types_1.Locale.EN_GB,
569
+ tiles: [
570
+ { character: 'a', count: 9, score: 1 },
571
+ { character: 'b', count: 2, score: 3 },
572
+ { character: 'c', count: 2, score: 3 },
573
+ { character: 'd', count: 4, score: 2 },
574
+ { character: 'e', count: 12, score: 1 },
575
+ { character: 'f', count: 2, score: 4 },
576
+ { character: 'g', count: 3, score: 2 },
577
+ { character: 'h', count: 2, score: 4 },
578
+ { character: 'i', count: 9, score: 1 },
579
+ { character: 'j', count: 1, score: 8 },
580
+ { character: 'k', count: 1, score: 5 },
581
+ { character: 'l', count: 4, score: 1 },
582
+ { character: 'm', count: 2, score: 3 },
583
+ { character: 'n', count: 6, score: 1 },
584
+ { character: 'o', count: 8, score: 1 },
585
+ { character: 'p', count: 2, score: 3 },
586
+ { character: 'q', count: 1, score: 10 },
587
+ { character: 'r', count: 6, score: 1 },
588
+ { character: 's', count: 4, score: 1 },
589
+ { character: 't', count: 6, score: 1 },
590
+ { character: 'u', count: 4, score: 1 },
591
+ { character: 'v', count: 2, score: 4 },
592
+ { character: 'w', count: 2, score: 4 },
593
+ { character: 'x', count: 1, score: 8 },
594
+ { character: 'y', count: 2, score: 4 },
595
+ { character: 'z', count: 1, score: 10 },
596
+ ],
597
+ }),
598
+ new types_1.Config({
599
+ ...games_1.superScrabble,
600
+ locale: types_1.Locale.EN_GB,
601
+ tiles: [
602
+ { character: 'a', count: 16, score: 1 },
603
+ { character: 'b', count: 4, score: 3 },
604
+ { character: 'c', count: 6, score: 3 },
605
+ { character: 'd', count: 8, score: 2 },
606
+ { character: 'e', count: 24, score: 1 },
607
+ { character: 'f', count: 4, score: 4 },
608
+ { character: 'g', count: 5, score: 2 },
609
+ { character: 'h', count: 5, score: 4 },
610
+ { character: 'i', count: 13, score: 1 },
611
+ { character: 'j', count: 2, score: 8 },
612
+ { character: 'k', count: 2, score: 5 },
613
+ { character: 'l', count: 7, score: 1 },
614
+ { character: 'm', count: 6, score: 3 },
615
+ { character: 'n', count: 13, score: 1 },
616
+ { character: 'o', count: 15, score: 1 },
617
+ { character: 'p', count: 4, score: 3 },
618
+ { character: 'q', count: 2, score: 10 },
619
+ { character: 'r', count: 13, score: 1 },
620
+ { character: 's', count: 10, score: 1 },
621
+ { character: 't', count: 15, score: 1 },
622
+ { character: 'u', count: 7, score: 1 },
623
+ { character: 'v', count: 3, score: 4 },
624
+ { character: 'w', count: 4, score: 4 },
625
+ { character: 'x', count: 2, score: 8 },
626
+ { character: 'y', count: 4, score: 4 },
627
+ { character: 'z', count: 2, score: 10 },
628
+ ],
629
+ }),
630
+ new types_1.Config({
631
+ ...games_1.literaki,
632
+ locale: types_1.Locale.EN_GB,
633
+ name: 'Literaxx',
634
+ tiles: [
635
+ { character: 'a', count: 9, score: 1 },
636
+ { character: 'b', count: 2, score: 3 },
637
+ { character: 'c', count: 2, score: 3 },
638
+ { character: 'd', count: 4, score: 2 },
639
+ { character: 'e', count: 12, score: 1 },
640
+ { character: 'f', count: 2, score: 4 },
641
+ { character: 'g', count: 3, score: 2 },
642
+ { character: 'h', count: 2, score: 4 },
643
+ { character: 'i', count: 9, score: 1 },
644
+ { character: 'j', count: 1, score: 8 },
645
+ { character: 'k', count: 1, score: 5 },
646
+ { character: 'l', count: 4, score: 1 },
647
+ { character: 'm', count: 2, score: 3 },
648
+ { character: 'n', count: 6, score: 1 },
649
+ { character: 'o', count: 8, score: 1 },
650
+ { character: 'p', count: 2, score: 3 },
651
+ { character: 'q', count: 1, score: 10 },
652
+ { character: 'r', count: 6, score: 1 },
653
+ { character: 's', count: 4, score: 1 },
654
+ { character: 't', count: 6, score: 1 },
655
+ { character: 'u', count: 4, score: 1 },
656
+ { character: 'v', count: 2, score: 4 },
657
+ { character: 'w', count: 2, score: 4 },
658
+ { character: 'x', count: 1, score: 8 },
659
+ { character: 'y', count: 2, score: 4 },
660
+ { character: 'z', count: 1, score: 10 },
661
+ ],
662
+ }),
395
663
  ];
396
- exports["default"] = tilesEs;
664
+ exports["default"] = enGb;
397
665
 
398
666
 
399
667
  /***/ }),
400
668
 
401
- /***/ 35366:
402
- /***/ ((__unused_webpack_module, exports) => {
669
+ /***/ 61892:
670
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
403
671
 
404
672
  "use strict";
405
673
 
406
674
  Object.defineProperty(exports, "__esModule", ({ value: true }));
407
- const tilesFa = [
408
- { character: 'ا', count: 12, score: 1 },
409
- { character: 'ب', count: 4, score: 1 },
410
- { character: 'پ', count: 1, score: 6 },
411
- { character: 'ت', count: 4, score: 1 },
412
- { character: 'ث', count: 1, score: 10 },
413
- { character: 'ج', count: 2, score: 5 },
414
- { character: 'چ', count: 1, score: 6 },
415
- { character: 'ح', count: 1, score: 6 },
416
- { character: 'خ', count: 2, score: 5 },
417
- { character: 'د', count: 6, score: 1 },
418
- { character: 'ذ', count: 1, score: 10 },
419
- { character: 'ر', count: 7, score: 1 },
420
- { character: 'ز', count: 3, score: 4 },
421
- { character: 'ژ', count: 1, score: 10 },
422
- { character: 'س', count: 3, score: 2 },
423
- { character: 'ش', count: 3, score: 3 },
424
- { character: 'ص', count: 1, score: 6 },
425
- { character: 'ض', count: 1, score: 8 },
426
- { character: 'ط', count: 1, score: 8 },
427
- { character: 'ظ', count: 1, score: 10 },
428
- { character: 'ع', count: 2, score: 5 },
429
- { character: 'غ', count: 1, score: 8 },
430
- { character: 'ف', count: 2, score: 4 },
431
- { character: 'ق', count: 2, score: 5 },
432
- { character: 'ک', count: 3, score: 3 },
433
- { character: 'گ', count: 2, score: 4 },
434
- { character: 'ل', count: 3, score: 2 },
435
- { character: 'م', count: 5, score: 1 },
436
- { character: 'ن', count: 6, score: 1 },
437
- { character: 'و', count: 5, score: 1 },
438
- { character: 'ه', count: 5, score: 1 },
439
- { character: 'ی', count: 8, score: 1 },
675
+ const types_1 = __webpack_require__(34046);
676
+ const games_1 = __webpack_require__(34928);
677
+ const enUs = [
678
+ new types_1.Config({
679
+ ...games_1.scrabble,
680
+ locale: types_1.Locale.EN_US,
681
+ tiles: [
682
+ { character: 'a', count: 9, score: 1 },
683
+ { character: 'b', count: 2, score: 3 },
684
+ { character: 'c', count: 2, score: 3 },
685
+ { character: 'd', count: 4, score: 2 },
686
+ { character: 'e', count: 12, score: 1 },
687
+ { character: 'f', count: 2, score: 4 },
688
+ { character: 'g', count: 3, score: 2 },
689
+ { character: 'h', count: 2, score: 4 },
690
+ { character: 'i', count: 9, score: 1 },
691
+ { character: 'j', count: 1, score: 8 },
692
+ { character: 'k', count: 1, score: 5 },
693
+ { character: 'l', count: 4, score: 1 },
694
+ { character: 'm', count: 2, score: 3 },
695
+ { character: 'n', count: 6, score: 1 },
696
+ { character: 'o', count: 8, score: 1 },
697
+ { character: 'p', count: 2, score: 3 },
698
+ { character: 'q', count: 1, score: 10 },
699
+ { character: 'r', count: 6, score: 1 },
700
+ { character: 's', count: 4, score: 1 },
701
+ { character: 't', count: 6, score: 1 },
702
+ { character: 'u', count: 4, score: 1 },
703
+ { character: 'v', count: 2, score: 4 },
704
+ { character: 'w', count: 2, score: 4 },
705
+ { character: 'x', count: 1, score: 8 },
706
+ { character: 'y', count: 2, score: 4 },
707
+ { character: 'z', count: 1, score: 10 },
708
+ ],
709
+ }),
710
+ new types_1.Config({
711
+ ...games_1.superScrabble,
712
+ locale: types_1.Locale.EN_US,
713
+ tiles: [
714
+ { character: 'a', count: 16, score: 1 },
715
+ { character: 'b', count: 4, score: 3 },
716
+ { character: 'c', count: 6, score: 3 },
717
+ { character: 'd', count: 8, score: 2 },
718
+ { character: 'e', count: 24, score: 1 },
719
+ { character: 'f', count: 4, score: 4 },
720
+ { character: 'g', count: 5, score: 2 },
721
+ { character: 'h', count: 5, score: 4 },
722
+ { character: 'i', count: 13, score: 1 },
723
+ { character: 'j', count: 2, score: 8 },
724
+ { character: 'k', count: 2, score: 5 },
725
+ { character: 'l', count: 7, score: 1 },
726
+ { character: 'm', count: 6, score: 3 },
727
+ { character: 'n', count: 13, score: 1 },
728
+ { character: 'o', count: 15, score: 1 },
729
+ { character: 'p', count: 4, score: 3 },
730
+ { character: 'q', count: 2, score: 10 },
731
+ { character: 'r', count: 13, score: 1 },
732
+ { character: 's', count: 10, score: 1 },
733
+ { character: 't', count: 15, score: 1 },
734
+ { character: 'u', count: 7, score: 1 },
735
+ { character: 'v', count: 3, score: 4 },
736
+ { character: 'w', count: 4, score: 4 },
737
+ { character: 'x', count: 2, score: 8 },
738
+ { character: 'y', count: 4, score: 4 },
739
+ { character: 'z', count: 2, score: 10 },
740
+ ],
741
+ }),
742
+ new types_1.Config({
743
+ ...games_1.literaki,
744
+ locale: types_1.Locale.EN_US,
745
+ name: 'Literaxx',
746
+ tiles: [
747
+ { character: 'a', count: 9, score: 1 },
748
+ { character: 'b', count: 2, score: 3 },
749
+ { character: 'c', count: 2, score: 3 },
750
+ { character: 'd', count: 4, score: 2 },
751
+ { character: 'e', count: 12, score: 1 },
752
+ { character: 'f', count: 2, score: 4 },
753
+ { character: 'g', count: 3, score: 2 },
754
+ { character: 'h', count: 2, score: 4 },
755
+ { character: 'i', count: 9, score: 1 },
756
+ { character: 'j', count: 1, score: 8 },
757
+ { character: 'k', count: 1, score: 5 },
758
+ { character: 'l', count: 4, score: 1 },
759
+ { character: 'm', count: 2, score: 3 },
760
+ { character: 'n', count: 6, score: 1 },
761
+ { character: 'o', count: 8, score: 1 },
762
+ { character: 'p', count: 2, score: 3 },
763
+ { character: 'q', count: 1, score: 10 },
764
+ { character: 'r', count: 6, score: 1 },
765
+ { character: 's', count: 4, score: 1 },
766
+ { character: 't', count: 6, score: 1 },
767
+ { character: 'u', count: 4, score: 1 },
768
+ { character: 'v', count: 2, score: 4 },
769
+ { character: 'w', count: 2, score: 4 },
770
+ { character: 'x', count: 1, score: 8 },
771
+ { character: 'y', count: 2, score: 4 },
772
+ { character: 'z', count: 1, score: 10 },
773
+ ],
774
+ }),
440
775
  ];
441
- exports["default"] = tilesFa;
776
+ exports["default"] = enUs;
442
777
 
443
778
 
444
779
  /***/ }),
445
780
 
446
- /***/ 59541:
447
- /***/ ((__unused_webpack_module, exports) => {
781
+ /***/ 58230:
782
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
448
783
 
449
784
  "use strict";
450
785
 
451
786
  Object.defineProperty(exports, "__esModule", ({ value: true }));
452
- const tilesFr = [
453
- { character: 'a', count: 9, score: 1 },
454
- { character: 'b', count: 2, score: 3 },
455
- { character: 'c', count: 2, score: 3 },
456
- { character: 'd', count: 3, score: 2 },
457
- { character: 'e', count: 15, score: 1 },
458
- { character: 'f', count: 2, score: 1 },
459
- { character: 'g', count: 2, score: 2 },
460
- { character: 'h', count: 2, score: 4 },
461
- { character: 'i', count: 8, score: 1 },
462
- { character: 'j', count: 1, score: 8 },
463
- { character: 'k', count: 1, score: 10 },
464
- { character: 'l', count: 5, score: 1 },
465
- { character: 'm', count: 3, score: 2 },
466
- { character: 'n', count: 6, score: 1 },
467
- { character: 'o', count: 6, score: 1 },
468
- { character: 'p', count: 2, score: 3 },
469
- { character: 'q', count: 1, score: 8 },
470
- { character: 'r', count: 6, score: 1 },
471
- { character: 's', count: 6, score: 1 },
472
- { character: 't', count: 6, score: 1 },
473
- { character: 'u', count: 6, score: 1 },
474
- { character: 'v', count: 2, score: 4 },
475
- { character: 'w', count: 1, score: 10 },
476
- { character: 'x', count: 1, score: 10 },
477
- { character: 'y', count: 1, score: 10 },
478
- { character: 'z', count: 1, score: 10 },
787
+ const types_1 = __webpack_require__(34046);
788
+ const games_1 = __webpack_require__(34928);
789
+ const esEs = [
790
+ new types_1.Config({
791
+ ...games_1.scrabble,
792
+ locale: types_1.Locale.ES_ES,
793
+ tiles: [
794
+ { character: 'a', count: 12, score: 1 },
795
+ { character: 'b', count: 2, score: 3 },
796
+ { character: 'c', count: 4, score: 3 },
797
+ { character: 'ch', count: 1, score: 5 },
798
+ { character: 'd', count: 5, score: 2 },
799
+ { character: 'e', count: 12, score: 1 },
800
+ { character: 'f', count: 1, score: 4 },
801
+ { character: 'g', count: 2, score: 2 },
802
+ { character: 'h', count: 2, score: 4 },
803
+ { character: 'i', count: 6, score: 1 },
804
+ { character: 'j', count: 1, score: 8 },
805
+ { character: 'll', count: 1, score: 8 },
806
+ { character: 'l', count: 4, score: 1 },
807
+ { character: 'm', count: 2, score: 3 },
808
+ { character: 'n', count: 5, score: 1 },
809
+ { character: 'ñ', count: 1, score: 8 },
810
+ { character: 'o', count: 9, score: 1 },
811
+ { character: 'p', count: 2, score: 3 },
812
+ { character: 'q', count: 1, score: 5 },
813
+ { character: 'r', count: 5, score: 1 },
814
+ { character: 'rr', count: 1, score: 8 },
815
+ { character: 's', count: 6, score: 1 },
816
+ { character: 't', count: 4, score: 1 },
817
+ { character: 'u', count: 5, score: 1 },
818
+ { character: 'v', count: 1, score: 4 },
819
+ { character: 'x', count: 1, score: 8 },
820
+ { character: 'y', count: 1, score: 4 },
821
+ { character: 'z', count: 1, score: 10 },
822
+ ],
823
+ }),
479
824
  ];
480
- exports["default"] = tilesFr;
825
+ exports["default"] = esEs;
481
826
 
482
827
 
483
828
  /***/ }),
484
829
 
485
- /***/ 2647:
486
- /***/ ((__unused_webpack_module, exports) => {
830
+ /***/ 23113:
831
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
487
832
 
488
833
  "use strict";
489
834
 
490
835
  Object.defineProperty(exports, "__esModule", ({ value: true }));
491
- const tilesPl = [
492
- { character: 'a', count: 9, score: 1 },
493
- { character: 'ą', count: 1, score: 5 },
494
- { character: 'b', count: 2, score: 3 },
495
- { character: 'c', count: 3, score: 2 },
496
- { character: 'ć', count: 1, score: 5 },
497
- { character: 'd', count: 3, score: 2 },
498
- { character: 'e', count: 7, score: 1 },
499
- { character: 'ę', count: 1, score: 5 },
500
- { character: 'f', count: 1, score: 5 },
501
- { character: 'g', count: 2, score: 3 },
502
- { character: 'h', count: 2, score: 3 },
503
- { character: 'i', count: 8, score: 1 },
504
- { character: 'j', count: 2, score: 3 },
505
- { character: 'k', count: 3, score: 2 },
506
- { character: 'l', count: 3, score: 2 },
507
- { character: 'ł', count: 2, score: 3 },
508
- { character: 'm', count: 3, score: 2 },
509
- { character: 'n', count: 5, score: 1 },
510
- { character: 'ń', count: 1, score: 5 },
511
- { character: 'o', count: 6, score: 1 },
512
- { character: 'ó', count: 1, score: 5 },
513
- { character: 'p', count: 3, score: 2 },
514
- { character: 'r', count: 4, score: 1 },
515
- { character: 's', count: 4, score: 1 },
516
- { character: 'ś', count: 1, score: 5 },
517
- { character: 't', count: 3, score: 2 },
518
- { character: 'u', count: 2, score: 3 },
519
- { character: 'w', count: 4, score: 1 },
520
- { character: 'y', count: 4, score: 2 },
521
- { character: 'z', count: 5, score: 1 },
522
- { character: 'ź', count: 1, score: 5 },
523
- { character: 'ż', count: 1, score: 5 },
836
+ const types_1 = __webpack_require__(34046);
837
+ const games_1 = __webpack_require__(34928);
838
+ const faIr = [
839
+ new types_1.Config({
840
+ ...games_1.scrabble,
841
+ locale: types_1.Locale.FA_IR,
842
+ tiles: [
843
+ { character: 'ا', count: 12, score: 1 },
844
+ { character: 'ب', count: 4, score: 1 },
845
+ { character: 'پ', count: 1, score: 6 },
846
+ { character: 'ت', count: 4, score: 1 },
847
+ { character: 'ث', count: 1, score: 10 },
848
+ { character: 'ج', count: 2, score: 5 },
849
+ { character: 'چ', count: 1, score: 6 },
850
+ { character: 'ح', count: 1, score: 6 },
851
+ { character: 'خ', count: 2, score: 5 },
852
+ { character: 'د', count: 6, score: 1 },
853
+ { character: 'ذ', count: 1, score: 10 },
854
+ { character: 'ر', count: 7, score: 1 },
855
+ { character: 'ز', count: 3, score: 4 },
856
+ { character: 'ژ', count: 1, score: 10 },
857
+ { character: 'س', count: 3, score: 2 },
858
+ { character: 'ش', count: 3, score: 3 },
859
+ { character: 'ص', count: 1, score: 6 },
860
+ { character: 'ض', count: 1, score: 8 },
861
+ { character: 'ط', count: 1, score: 8 },
862
+ { character: 'ظ', count: 1, score: 10 },
863
+ { character: 'ع', count: 2, score: 5 },
864
+ { character: 'غ', count: 1, score: 8 },
865
+ { character: 'ف', count: 2, score: 4 },
866
+ { character: 'ق', count: 2, score: 5 },
867
+ { character: 'ک', count: 3, score: 3 },
868
+ { character: 'گ', count: 2, score: 4 },
869
+ { character: 'ل', count: 3, score: 2 },
870
+ { character: 'م', count: 5, score: 1 },
871
+ { character: 'ن', count: 6, score: 1 },
872
+ { character: 'و', count: 5, score: 1 },
873
+ { character: 'ه', count: 5, score: 1 },
874
+ { character: 'ی', count: 8, score: 1 },
875
+ ],
876
+ }),
524
877
  ];
525
- exports["default"] = tilesPl;
878
+ exports["default"] = faIr;
526
879
 
527
880
 
528
881
  /***/ }),
529
882
 
530
- /***/ 51551:
883
+ /***/ 1180:
531
884
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
532
885
 
533
886
  "use strict";
534
887
 
535
888
  Object.defineProperty(exports, "__esModule", ({ value: true }));
536
- const constants_1 = __webpack_require__(7618);
537
- const bonuses = [
538
- { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 0 },
539
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 0 },
540
- { multiplier: 3, type: constants_1.BONUS_WORD, x: 7, y: 0 },
541
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 0 },
542
- { multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 0 },
543
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 1 },
544
- { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 1 },
545
- { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 1 },
546
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 13, y: 1 },
547
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 2 },
548
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 2 },
549
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 2 },
550
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 2 },
551
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 3 },
552
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 3 },
553
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 7, y: 3 },
554
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 3 },
555
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 3 },
556
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 4 },
557
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 4 },
558
- { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 5 },
559
- { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 5 },
560
- { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 5 },
561
- { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 13, y: 5 },
562
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 6 },
563
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 6 },
564
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 6 },
565
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 6 },
566
- { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 7 },
567
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 7 },
568
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 7, y: 7 },
569
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 7 },
570
- { multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 7 },
571
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 2, y: 8 },
572
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 8 },
573
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 8 },
574
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 12, y: 8 },
575
- { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 1, y: 9 },
576
- { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 9 },
577
- { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 9 },
578
- { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 13, y: 9 },
579
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 4, y: 10 },
580
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 10, y: 10 },
581
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 0, y: 11 },
582
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 3, y: 11 },
583
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 7, y: 11 },
584
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 11, y: 11 },
585
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 14, y: 11 },
586
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 2, y: 12 },
587
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 6, y: 12 },
588
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 8, y: 12 },
589
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 12, y: 12 },
590
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 1, y: 13 },
591
- { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 5, y: 13 },
592
- { multiplier: 3, type: constants_1.BONUS_CHARACTER, x: 9, y: 13 },
593
- { multiplier: 2, type: constants_1.BONUS_WORD, x: 13, y: 13 },
594
- { multiplier: 3, type: constants_1.BONUS_WORD, x: 0, y: 14 },
595
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 3, y: 14 },
596
- { multiplier: 3, type: constants_1.BONUS_WORD, x: 7, y: 14 },
597
- { multiplier: 2, type: constants_1.BONUS_CHARACTER, x: 11, y: 14 },
598
- { multiplier: 3, type: constants_1.BONUS_WORD, x: 14, y: 14 },
889
+ const types_1 = __webpack_require__(34046);
890
+ const games_1 = __webpack_require__(34928);
891
+ const frFr = [
892
+ new types_1.Config({
893
+ ...games_1.scrabble,
894
+ locale: types_1.Locale.FR_FR,
895
+ tiles: [
896
+ { character: 'a', count: 9, score: 1 },
897
+ { character: 'b', count: 2, score: 3 },
898
+ { character: 'c', count: 2, score: 3 },
899
+ { character: 'd', count: 3, score: 2 },
900
+ { character: 'e', count: 15, score: 1 },
901
+ { character: 'f', count: 2, score: 4 },
902
+ { character: 'g', count: 2, score: 2 },
903
+ { character: 'h', count: 2, score: 4 },
904
+ { character: 'i', count: 8, score: 1 },
905
+ { character: 'j', count: 1, score: 8 },
906
+ { character: 'k', count: 1, score: 10 },
907
+ { character: 'l', count: 5, score: 1 },
908
+ { character: 'm', count: 3, score: 2 },
909
+ { character: 'n', count: 6, score: 1 },
910
+ { character: 'o', count: 6, score: 1 },
911
+ { character: 'p', count: 2, score: 3 },
912
+ { character: 'q', count: 1, score: 8 },
913
+ { character: 'r', count: 6, score: 1 },
914
+ { character: 's', count: 6, score: 1 },
915
+ { character: 't', count: 6, score: 1 },
916
+ { character: 'u', count: 6, score: 1 },
917
+ { character: 'v', count: 2, score: 4 },
918
+ { character: 'w', count: 1, score: 10 },
919
+ { character: 'x', count: 1, score: 10 },
920
+ { character: 'y', count: 1, score: 10 },
921
+ { character: 'z', count: 1, score: 10 },
922
+ ],
923
+ }),
599
924
  ];
600
- exports["default"] = bonuses;
925
+ exports["default"] = frFr;
601
926
 
602
927
 
603
928
  /***/ }),
604
929
 
605
- /***/ 8964:
930
+ /***/ 41331:
606
931
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
607
932
 
608
933
  "use strict";
@@ -611,325 +936,112 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
611
936
  return (mod && mod.__esModule) ? mod : { "default": mod };
612
937
  };
613
938
  Object.defineProperty(exports, "__esModule", ({ value: true }));
614
- exports["default"] = void 0;
615
- var scrabble_1 = __webpack_require__(97192);
616
- Object.defineProperty(exports, "default", ({ enumerable: true, get: function () { return __importDefault(scrabble_1).default; } }));
617
-
618
-
619
- /***/ }),
620
-
621
- /***/ 97192:
622
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
939
+ exports.plPl = exports.frFr = exports.faIr = exports.esEs = exports.enUs = exports.enGb = exports.deDe = void 0;
940
+ var deDe_1 = __webpack_require__(57304);
941
+ Object.defineProperty(exports, "deDe", ({ enumerable: true, get: function () { return __importDefault(deDe_1).default; } }));
942
+ var enGb_1 = __webpack_require__(81435);
943
+ Object.defineProperty(exports, "enGb", ({ enumerable: true, get: function () { return __importDefault(enGb_1).default; } }));
944
+ var enUs_1 = __webpack_require__(61892);
945
+ Object.defineProperty(exports, "enUs", ({ enumerable: true, get: function () { return __importDefault(enUs_1).default; } }));
946
+ var esEs_1 = __webpack_require__(58230);
947
+ Object.defineProperty(exports, "esEs", ({ enumerable: true, get: function () { return __importDefault(esEs_1).default; } }));
948
+ var faIr_1 = __webpack_require__(23113);
949
+ Object.defineProperty(exports, "faIr", ({ enumerable: true, get: function () { return __importDefault(faIr_1).default; } }));
950
+ var frFr_1 = __webpack_require__(1180);
951
+ Object.defineProperty(exports, "frFr", ({ enumerable: true, get: function () { return __importDefault(frFr_1).default; } }));
952
+ var plPl_1 = __webpack_require__(32658);
953
+ Object.defineProperty(exports, "plPl", ({ enumerable: true, get: function () { return __importDefault(plPl_1).default; } }));
954
+
955
+
956
+ /***/ }),
957
+
958
+ /***/ 32658:
959
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
623
960
 
624
961
  "use strict";
625
962
 
626
- var __importDefault = (this && this.__importDefault) || function (mod) {
627
- return (mod && mod.__esModule) ? mod : { "default": mod };
628
- };
629
963
  Object.defineProperty(exports, "__esModule", ({ value: true }));
630
964
  const types_1 = __webpack_require__(34046);
631
- const bonuses_1 = __importDefault(__webpack_require__(51551));
632
- const tiles_1 = __webpack_require__(29213);
633
- const base = {
634
- allTilesBonusScore: 50,
635
- blankScore: 0,
636
- blanksCount: 2,
637
- boardHeight: 15,
638
- boardWidth: 15,
639
- bonuses: bonuses_1.default,
640
- id: 'scrabble',
641
- maximumCharactersCount: 7,
642
- name: 'Scrabble',
643
- };
644
- const scrabble = {
645
- id: base.id,
646
- name: base.name,
647
- [types_1.Locale.EN_GB]: types_1.Config.fromJson({ ...base, locale: types_1.Locale.EN_GB, tiles: tiles_1.tilesEn }),
648
- [types_1.Locale.DE_DE]: types_1.Config.fromJson({ ...base, locale: types_1.Locale.DE_DE, tiles: tiles_1.tilesDe }),
649
- [types_1.Locale.EN_US]: types_1.Config.fromJson({ ...base, locale: types_1.Locale.EN_US, tiles: tiles_1.tilesEn }),
650
- [types_1.Locale.ES_ES]: types_1.Config.fromJson({ ...base, locale: types_1.Locale.ES_ES, tiles: tiles_1.tilesEs }),
651
- [types_1.Locale.FA_IR]: types_1.Config.fromJson({ ...base, locale: types_1.Locale.FA_IR, tiles: tiles_1.tilesFa }),
652
- [types_1.Locale.FR_FR]: types_1.Config.fromJson({ ...base, locale: types_1.Locale.FR_FR, tiles: tiles_1.tilesFr }),
653
- [types_1.Locale.PL_PL]: types_1.Config.fromJson({ ...base, locale: types_1.Locale.PL_PL, tiles: tiles_1.tilesPl }),
654
- };
655
- exports["default"] = scrabble;
656
-
657
-
658
- /***/ }),
659
-
660
- /***/ 29213:
661
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
662
-
663
- "use strict";
664
-
665
- var __importDefault = (this && this.__importDefault) || function (mod) {
666
- return (mod && mod.__esModule) ? mod : { "default": mod };
667
- };
668
- Object.defineProperty(exports, "__esModule", ({ value: true }));
669
- exports.tilesDe = exports.tilesPl = exports.tilesFr = exports.tilesFa = exports.tilesEs = exports.tilesEn = void 0;
670
- var tilesEn_1 = __webpack_require__(76149);
671
- Object.defineProperty(exports, "tilesEn", ({ enumerable: true, get: function () { return __importDefault(tilesEn_1).default; } }));
672
- var tilesEs_1 = __webpack_require__(14537);
673
- Object.defineProperty(exports, "tilesEs", ({ enumerable: true, get: function () { return __importDefault(tilesEs_1).default; } }));
674
- var tilesFa_1 = __webpack_require__(22878);
675
- Object.defineProperty(exports, "tilesFa", ({ enumerable: true, get: function () { return __importDefault(tilesFa_1).default; } }));
676
- var tilesFr_1 = __webpack_require__(72866);
677
- Object.defineProperty(exports, "tilesFr", ({ enumerable: true, get: function () { return __importDefault(tilesFr_1).default; } }));
678
- var tilesPl_1 = __webpack_require__(85667);
679
- Object.defineProperty(exports, "tilesPl", ({ enumerable: true, get: function () { return __importDefault(tilesPl_1).default; } }));
680
- var tilesDe_1 = __webpack_require__(17355);
681
- Object.defineProperty(exports, "tilesDe", ({ enumerable: true, get: function () { return __importDefault(tilesDe_1).default; } }));
682
-
683
-
684
- /***/ }),
685
-
686
- /***/ 17355:
687
- /***/ ((__unused_webpack_module, exports) => {
688
-
689
- "use strict";
690
-
691
- Object.defineProperty(exports, "__esModule", ({ value: true }));
692
- const tilesDe = [
693
- { character: 'a', count: 5, score: 1 },
694
- { character: 'ä', count: 1, score: 6 },
695
- { character: 'b', count: 2, score: 3 },
696
- { character: 'c', count: 2, score: 4 },
697
- { character: 'd', count: 4, score: 1 },
698
- { character: 'e', count: 15, score: 1 },
699
- { character: 'f', count: 2, score: 4 },
700
- { character: 'g', count: 3, score: 2 },
701
- { character: 'h', count: 4, score: 2 },
702
- { character: 'i', count: 6, score: 1 },
703
- { character: 'j', count: 1, score: 6 },
704
- { character: 'k', count: 2, score: 4 },
705
- { character: 'l', count: 3, score: 2 },
706
- { character: 'm', count: 4, score: 3 },
707
- { character: 'n', count: 9, score: 1 },
708
- { character: 'o', count: 3, score: 2 },
709
- { character: 'ö', count: 1, score: 8 },
710
- { character: 'p', count: 1, score: 4 },
711
- { character: 'q', count: 1, score: 10 },
712
- { character: 'r', count: 6, score: 1 },
713
- { character: 's', count: 7, score: 1 },
714
- { character: 't', count: 6, score: 1 },
715
- { character: 'u', count: 6, score: 1 },
716
- { character: 'ü', count: 1, score: 6 },
717
- { character: 'v', count: 1, score: 6 },
718
- { character: 'w', count: 1, score: 3 },
719
- { character: 'x', count: 1, score: 8 },
720
- { character: 'y', count: 1, score: 10 },
721
- { character: 'z', count: 1, score: 3 },
722
- ];
723
- exports["default"] = tilesDe;
724
-
725
-
726
- /***/ }),
727
-
728
- /***/ 76149:
729
- /***/ ((__unused_webpack_module, exports) => {
730
-
731
- "use strict";
732
-
733
- Object.defineProperty(exports, "__esModule", ({ value: true }));
734
- const tilesEn = [
735
- { character: 'a', count: 9, score: 1 },
736
- { character: 'b', count: 2, score: 3 },
737
- { character: 'c', count: 2, score: 3 },
738
- { character: 'd', count: 4, score: 2 },
739
- { character: 'e', count: 12, score: 1 },
740
- { character: 'f', count: 2, score: 4 },
741
- { character: 'g', count: 3, score: 2 },
742
- { character: 'h', count: 2, score: 4 },
743
- { character: 'i', count: 9, score: 1 },
744
- { character: 'j', count: 1, score: 8 },
745
- { character: 'k', count: 1, score: 5 },
746
- { character: 'l', count: 4, score: 1 },
747
- { character: 'm', count: 2, score: 3 },
748
- { character: 'n', count: 6, score: 1 },
749
- { character: 'o', count: 8, score: 1 },
750
- { character: 'p', count: 2, score: 3 },
751
- { character: 'q', count: 1, score: 10 },
752
- { character: 'r', count: 6, score: 1 },
753
- { character: 's', count: 4, score: 1 },
754
- { character: 't', count: 6, score: 1 },
755
- { character: 'u', count: 4, score: 1 },
756
- { character: 'v', count: 2, score: 4 },
757
- { character: 'w', count: 2, score: 4 },
758
- { character: 'x', count: 1, score: 8 },
759
- { character: 'y', count: 2, score: 4 },
760
- { character: 'z', count: 1, score: 10 },
761
- ];
762
- exports["default"] = tilesEn;
763
-
764
-
765
- /***/ }),
766
-
767
- /***/ 14537:
768
- /***/ ((__unused_webpack_module, exports) => {
769
-
770
- "use strict";
771
-
772
- Object.defineProperty(exports, "__esModule", ({ value: true }));
773
- const tilesEs = [
774
- { character: 'a', count: 12, score: 1 },
775
- { character: 'b', count: 2, score: 3 },
776
- { character: 'c', count: 4, score: 3 },
777
- { character: 'ch', count: 1, score: 5 },
778
- { character: 'd', count: 5, score: 2 },
779
- { character: 'e', count: 12, score: 1 },
780
- { character: 'f', count: 1, score: 4 },
781
- { character: 'g', count: 2, score: 2 },
782
- { character: 'h', count: 2, score: 4 },
783
- { character: 'i', count: 6, score: 1 },
784
- { character: 'j', count: 1, score: 8 },
785
- { character: 'll', count: 1, score: 8 },
786
- { character: 'l', count: 4, score: 1 },
787
- { character: 'm', count: 2, score: 3 },
788
- { character: 'n', count: 5, score: 1 },
789
- { character: 'ñ', count: 1, score: 8 },
790
- { character: 'o', count: 9, score: 1 },
791
- { character: 'p', count: 2, score: 3 },
792
- { character: 'q', count: 1, score: 5 },
793
- { character: 'r', count: 5, score: 1 },
794
- { character: 'rr', count: 1, score: 8 },
795
- { character: 's', count: 6, score: 1 },
796
- { character: 't', count: 4, score: 1 },
797
- { character: 'u', count: 5, score: 1 },
798
- { character: 'v', count: 1, score: 4 },
799
- { character: 'x', count: 1, score: 8 },
800
- { character: 'y', count: 1, score: 4 },
801
- { character: 'z', count: 1, score: 10 },
802
- ];
803
- exports["default"] = tilesEs;
804
-
805
-
806
- /***/ }),
807
-
808
- /***/ 22878:
809
- /***/ ((__unused_webpack_module, exports) => {
810
-
811
- "use strict";
812
-
813
- Object.defineProperty(exports, "__esModule", ({ value: true }));
814
- const tilesFa = [
815
- { character: 'ا', count: 12, score: 1 },
816
- { character: 'ب', count: 4, score: 1 },
817
- { character: 'پ', count: 1, score: 6 },
818
- { character: 'ت', count: 4, score: 1 },
819
- { character: 'ث', count: 1, score: 10 },
820
- { character: 'ج', count: 2, score: 5 },
821
- { character: 'چ', count: 1, score: 6 },
822
- { character: 'ح', count: 1, score: 6 },
823
- { character: 'خ', count: 2, score: 5 },
824
- { character: 'د', count: 6, score: 1 },
825
- { character: 'ذ', count: 1, score: 10 },
826
- { character: 'ر', count: 7, score: 1 },
827
- { character: 'ز', count: 3, score: 4 },
828
- { character: 'ژ', count: 1, score: 10 },
829
- { character: 'س', count: 3, score: 2 },
830
- { character: 'ش', count: 3, score: 3 },
831
- { character: 'ص', count: 1, score: 6 },
832
- { character: 'ض', count: 1, score: 8 },
833
- { character: 'ط', count: 1, score: 8 },
834
- { character: 'ظ', count: 1, score: 10 },
835
- { character: 'ع', count: 2, score: 5 },
836
- { character: 'غ', count: 1, score: 8 },
837
- { character: 'ف', count: 2, score: 4 },
838
- { character: 'ق', count: 2, score: 5 },
839
- { character: 'ک', count: 3, score: 3 },
840
- { character: 'گ', count: 2, score: 4 },
841
- { character: 'ل', count: 3, score: 2 },
842
- { character: 'م', count: 5, score: 1 },
843
- { character: 'ن', count: 6, score: 1 },
844
- { character: 'و', count: 5, score: 1 },
845
- { character: 'ه', count: 5, score: 1 },
846
- { character: 'ی', count: 8, score: 1 },
847
- ];
848
- exports["default"] = tilesFa;
849
-
850
-
851
- /***/ }),
852
-
853
- /***/ 72866:
854
- /***/ ((__unused_webpack_module, exports) => {
855
-
856
- "use strict";
857
-
858
- Object.defineProperty(exports, "__esModule", ({ value: true }));
859
- const tilesFr = [
860
- { character: 'a', count: 9, score: 1 },
861
- { character: 'b', count: 2, score: 3 },
862
- { character: 'c', count: 2, score: 3 },
863
- { character: 'd', count: 3, score: 2 },
864
- { character: 'e', count: 15, score: 1 },
865
- { character: 'f', count: 2, score: 4 },
866
- { character: 'g', count: 2, score: 2 },
867
- { character: 'h', count: 2, score: 4 },
868
- { character: 'i', count: 8, score: 1 },
869
- { character: 'j', count: 1, score: 8 },
870
- { character: 'k', count: 1, score: 10 },
871
- { character: 'l', count: 5, score: 1 },
872
- { character: 'm', count: 3, score: 2 },
873
- { character: 'n', count: 6, score: 1 },
874
- { character: 'o', count: 6, score: 1 },
875
- { character: 'p', count: 2, score: 3 },
876
- { character: 'q', count: 1, score: 8 },
877
- { character: 'r', count: 6, score: 1 },
878
- { character: 's', count: 6, score: 1 },
879
- { character: 't', count: 6, score: 1 },
880
- { character: 'u', count: 6, score: 1 },
881
- { character: 'v', count: 2, score: 4 },
882
- { character: 'w', count: 1, score: 10 },
883
- { character: 'x', count: 1, score: 10 },
884
- { character: 'y', count: 1, score: 10 },
885
- { character: 'z', count: 1, score: 10 },
886
- ];
887
- exports["default"] = tilesFr;
888
-
889
-
890
- /***/ }),
891
-
892
- /***/ 85667:
893
- /***/ ((__unused_webpack_module, exports) => {
894
-
895
- "use strict";
896
-
897
- Object.defineProperty(exports, "__esModule", ({ value: true }));
898
- const tilesPl = [
899
- { character: 'a', count: 9, score: 1 },
900
- { character: 'ą', count: 1, score: 5 },
901
- { character: 'b', count: 2, score: 3 },
902
- { character: 'c', count: 3, score: 2 },
903
- { character: 'ć', count: 1, score: 6 },
904
- { character: 'd', count: 3, score: 2 },
905
- { character: 'e', count: 7, score: 1 },
906
- { character: 'ę', count: 1, score: 5 },
907
- { character: 'f', count: 1, score: 5 },
908
- { character: 'g', count: 2, score: 3 },
909
- { character: 'h', count: 2, score: 3 },
910
- { character: 'i', count: 8, score: 1 },
911
- { character: 'j', count: 2, score: 3 },
912
- { character: 'k', count: 3, score: 2 },
913
- { character: 'l', count: 3, score: 2 },
914
- { character: 'ł', count: 2, score: 3 },
915
- { character: 'm', count: 3, score: 2 },
916
- { character: 'n', count: 5, score: 1 },
917
- { character: 'ń', count: 1, score: 7 },
918
- { character: 'o', count: 6, score: 1 },
919
- { character: 'ó', count: 1, score: 5 },
920
- { character: 'p', count: 3, score: 2 },
921
- { character: 'r', count: 4, score: 1 },
922
- { character: 's', count: 4, score: 1 },
923
- { character: 'ś', count: 1, score: 5 },
924
- { character: 't', count: 3, score: 2 },
925
- { character: 'u', count: 2, score: 3 },
926
- { character: 'w', count: 4, score: 1 },
927
- { character: 'y', count: 4, score: 2 },
928
- { character: 'z', count: 5, score: 1 },
929
- { character: 'ź', count: 1, score: 9 },
930
- { character: 'ż', count: 1, score: 5 },
965
+ const games_1 = __webpack_require__(34928);
966
+ const plPL = [
967
+ new types_1.Config({
968
+ ...games_1.scrabble,
969
+ locale: types_1.Locale.PL_PL,
970
+ tiles: [
971
+ { character: 'a', count: 9, score: 1 },
972
+ { character: 'ą', count: 1, score: 5 },
973
+ { character: 'b', count: 2, score: 3 },
974
+ { character: 'c', count: 3, score: 2 },
975
+ { character: 'ć', count: 1, score: 6 },
976
+ { character: 'd', count: 3, score: 2 },
977
+ { character: 'e', count: 7, score: 1 },
978
+ { character: 'ę', count: 1, score: 5 },
979
+ { character: 'f', count: 1, score: 5 },
980
+ { character: 'g', count: 2, score: 3 },
981
+ { character: 'h', count: 2, score: 3 },
982
+ { character: 'i', count: 8, score: 1 },
983
+ { character: 'j', count: 2, score: 3 },
984
+ { character: 'k', count: 3, score: 2 },
985
+ { character: 'l', count: 3, score: 2 },
986
+ { character: 'ł', count: 2, score: 3 },
987
+ { character: 'm', count: 3, score: 2 },
988
+ { character: 'n', count: 5, score: 1 },
989
+ { character: 'ń', count: 1, score: 7 },
990
+ { character: 'o', count: 6, score: 1 },
991
+ { character: 'ó', count: 1, score: 5 },
992
+ { character: 'p', count: 3, score: 2 },
993
+ { character: 'r', count: 4, score: 1 },
994
+ { character: 's', count: 4, score: 1 },
995
+ { character: 'ś', count: 1, score: 5 },
996
+ { character: 't', count: 3, score: 2 },
997
+ { character: 'u', count: 2, score: 3 },
998
+ { character: 'w', count: 4, score: 1 },
999
+ { character: 'y', count: 4, score: 2 },
1000
+ { character: 'z', count: 5, score: 1 },
1001
+ { character: 'ź', count: 1, score: 9 },
1002
+ { character: 'ż', count: 1, score: 5 },
1003
+ ],
1004
+ }),
1005
+ new types_1.Config({
1006
+ ...games_1.literaki,
1007
+ locale: types_1.Locale.PL_PL,
1008
+ tiles: [
1009
+ { character: 'a', count: 9, score: 1 },
1010
+ { character: 'ą', count: 1, score: 5 },
1011
+ { character: 'b', count: 2, score: 3 },
1012
+ { character: 'c', count: 3, score: 2 },
1013
+ { character: 'ć', count: 1, score: 5 },
1014
+ { character: 'd', count: 3, score: 2 },
1015
+ { character: 'e', count: 7, score: 1 },
1016
+ { character: 'ę', count: 1, score: 5 },
1017
+ { character: 'f', count: 1, score: 5 },
1018
+ { character: 'g', count: 2, score: 3 },
1019
+ { character: 'h', count: 2, score: 3 },
1020
+ { character: 'i', count: 8, score: 1 },
1021
+ { character: 'j', count: 2, score: 3 },
1022
+ { character: 'k', count: 3, score: 2 },
1023
+ { character: 'l', count: 3, score: 2 },
1024
+ { character: 'ł', count: 2, score: 3 },
1025
+ { character: 'm', count: 3, score: 2 },
1026
+ { character: 'n', count: 5, score: 1 },
1027
+ { character: 'ń', count: 1, score: 5 },
1028
+ { character: 'o', count: 6, score: 1 },
1029
+ { character: 'ó', count: 1, score: 5 },
1030
+ { character: 'p', count: 3, score: 2 },
1031
+ { character: 'r', count: 4, score: 1 },
1032
+ { character: 's', count: 4, score: 1 },
1033
+ { character: 'ś', count: 1, score: 5 },
1034
+ { character: 't', count: 3, score: 2 },
1035
+ { character: 'u', count: 2, score: 3 },
1036
+ { character: 'w', count: 4, score: 1 },
1037
+ { character: 'y', count: 4, score: 2 },
1038
+ { character: 'z', count: 5, score: 1 },
1039
+ { character: 'ź', count: 1, score: 5 },
1040
+ { character: 'ż', count: 1, score: 5 },
1041
+ ],
1042
+ }),
931
1043
  ];
932
- exports["default"] = tilesPl;
1044
+ exports["default"] = plPL;
933
1045
 
934
1046
 
935
1047
  /***/ }),
@@ -994,6 +1106,9 @@ module.exports = {
994
1106
  "focus": "Board_focus__dIJT4",
995
1107
  "hidden": "Board_hidden__KQoVq",
996
1108
  "hide": "Board_hide__Fskbc",
1109
+ "iconContainer": "Board_iconContainer__l7Cfh",
1110
+ "iconBackground": "Board_iconBackground__40hl_",
1111
+ "icon": "Board_icon__155Mm",
997
1112
  "rotate": "Board_rotate__ynCR2",
998
1113
  "wave": "Board_wave__NDbpN"
999
1114
  };
@@ -1019,6 +1134,8 @@ module.exports = {
1019
1134
  // Exports
1020
1135
  module.exports = {
1021
1136
  "tile": "Cell_tile__bTdCO",
1137
+ "first3": "Cell_first3__sgLsf",
1138
+ "last3": "Cell_last3__YiU_m",
1022
1139
  "sharpTopLeft": "Cell_sharpTopLeft__EGQgw",
1023
1140
  "sharpTopRight": "Cell_sharpTopRight__rzADZ",
1024
1141
  "sharpBottomLeft": "Cell_sharpBottomLeft__YGRug",
@@ -1286,6 +1403,7 @@ module.exports = {
1286
1403
  "radio": "Radio_radio__06IBr",
1287
1404
  "checked": "Radio_checked__MlqJv",
1288
1405
  "icon": "Radio_icon__ORxR0",
1406
+ "disabled": "Radio_disabled__8VzKa",
1289
1407
  "input": "Radio_input__PFpGB",
1290
1408
  "content": "Radio_content__08chi"
1291
1409
  };
@@ -1445,23 +1563,6 @@ module.exports = {
1445
1563
  };
1446
1564
 
1447
1565
 
1448
- /***/ }),
1449
-
1450
- /***/ 43070:
1451
- /***/ ((module) => {
1452
-
1453
- // Exports
1454
- module.exports = {
1455
- "de": "i18n_de__m_q6r",
1456
- "es": "i18n_es__gzpC4",
1457
- "fa": "i18n_fa__5puuJ",
1458
- "fr": "i18n_fr__blTY6",
1459
- "gb": "i18n_gb__SNXyz",
1460
- "pl": "i18n_pl__o4VtN",
1461
- "us": "i18n_us__Q_2KD"
1462
- };
1463
-
1464
-
1465
1566
  /***/ }),
1466
1567
 
1467
1568
  /***/ 15982:
@@ -1610,6 +1711,7 @@ const Board = ({ className })=>{
1610
1711
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_9__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_9__/* .selectLocale */ .fN);
1611
1712
  const rows = (0,state__WEBPACK_IMPORTED_MODULE_9__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_9__/* .selectRowsWithCandidate */ .ZA);
1612
1713
  const inputMode = (0,state__WEBPACK_IMPORTED_MODULE_9__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_9__/* .selectInputMode */ .Ub);
1714
+ const filteredCells = (0,state__WEBPACK_IMPORTED_MODULE_9__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_9__/* .selectFilteredCells */ .Ju);
1613
1715
  const { cellSize } = (0,hooks__WEBPACK_IMPORTED_MODULE_7__/* .useAppLayout */ .Ft)();
1614
1716
  const [{ activeIndex , direction , inputRefs }, { insertValue , onChange , onDirectionToggle , onFocus , onKeyDown , onPaste }] = (0,_hooks__WEBPACK_IMPORTED_MODULE_12__/* .useGrid */ .Nm)(rows);
1615
1717
  const boardStyle = (0,_hooks__WEBPACK_IMPORTED_MODULE_12__/* .useBoardStyle */ .oQ)();
@@ -1728,6 +1830,7 @@ const Board = ({ className })=>{
1728
1830
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_BoardPure__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
1729
1831
  className: className,
1730
1832
  cellSize: cellSize,
1833
+ filteredCells: filteredCells,
1731
1834
  inputRefs: inputRefs,
1732
1835
  ref: ref,
1733
1836
  rows: rows,
@@ -1813,37 +1916,63 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
1813
1916
  /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
1814
1917
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
1815
1918
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
1816
- /* harmony import */ var _Board_module_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33791);
1817
- /* harmony import */ var _Board_module_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_Board_module_scss__WEBPACK_IMPORTED_MODULE_4__);
1818
- /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(94347);
1819
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_components__WEBPACK_IMPORTED_MODULE_3__]);
1820
- _components__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
1919
+ /* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3186);
1920
+ /* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(64534);
1921
+ /* harmony import */ var _Board_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(33791);
1922
+ /* harmony import */ var _Board_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_Board_module_scss__WEBPACK_IMPORTED_MODULE_6__);
1923
+ /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(94347);
1924
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_components__WEBPACK_IMPORTED_MODULE_5__]);
1925
+ _components__WEBPACK_IMPORTED_MODULE_5__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
1821
1926
 
1822
1927
 
1823
1928
 
1824
1929
 
1825
1930
 
1826
- const BoardPure = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_2__.forwardRef)(({ className , cellSize , inputRefs , rows , style , onBlur , onChange , onFocus , onKeyDown , onPaste }, ref)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
1827
- className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Board_module_scss__WEBPACK_IMPORTED_MODULE_4___default().board), className),
1931
+
1932
+
1933
+ const BoardPure = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_2__.forwardRef)(({ className , cellSize , filteredCells , inputRefs , rows , style , onBlur , onChange , onFocus , onKeyDown , onPaste }, ref)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
1934
+ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Board_module_scss__WEBPACK_IMPORTED_MODULE_6___default().board), className),
1828
1935
  ref: ref,
1829
1936
  style: style,
1830
1937
  onBlur: onBlur,
1831
1938
  onKeyDown: onKeyDown,
1832
1939
  onPaste: onPaste,
1833
- children: rows.map((cells, y)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, {
1834
- children: cells.map((cell, x)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_3__/* .Cell */ .bL, {
1835
- className: (_Board_module_scss__WEBPACK_IMPORTED_MODULE_4___default().cell),
1836
- cell: cell,
1837
- cellBottom: y < rows.length - 1 ? rows[y + 1][x] : undefined,
1838
- cellLeft: x > 0 ? rows[y][x - 1] : undefined,
1839
- cellRight: x < rows.length - 1 ? rows[y][x + 1] : undefined,
1840
- cellTop: y > 0 ? rows[y - 1][x] : undefined,
1841
- inputRef: inputRefs[y][x],
1842
- size: cellSize,
1843
- onChange: onChange,
1844
- onFocus: onFocus
1845
- }, x))
1846
- }, y))
1940
+ children: [
1941
+ rows.map((cells, y)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, {
1942
+ children: cells.map((cell, x)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_5__/* .Cell */ .bL, {
1943
+ className: (_Board_module_scss__WEBPACK_IMPORTED_MODULE_6___default().cell),
1944
+ cell: cell,
1945
+ cellBottom: y < rows.length - 1 ? rows[y + 1][x] : undefined,
1946
+ cellLeft: x > 0 ? rows[y][x - 1] : undefined,
1947
+ cellRight: x < rows.length - 1 ? rows[y][x + 1] : undefined,
1948
+ cellTop: y > 0 ? rows[y - 1][x] : undefined,
1949
+ inputRef: inputRefs[y][x],
1950
+ size: cellSize,
1951
+ onChange: onChange,
1952
+ onFocus: onFocus
1953
+ }, x))
1954
+ }, y)),
1955
+ filteredCells.map(({ x , y })=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
1956
+ className: (_Board_module_scss__WEBPACK_IMPORTED_MODULE_6___default().iconContainer),
1957
+ style: {
1958
+ height: cellSize,
1959
+ width: cellSize,
1960
+ left: x * (cellSize + parameters__WEBPACK_IMPORTED_MODULE_4__/* .BORDER_WIDTH */ .YF),
1961
+ top: y * (cellSize + parameters__WEBPACK_IMPORTED_MODULE_4__/* .BORDER_WIDTH */ .YF)
1962
+ },
1963
+ children: [
1964
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
1965
+ className: (_Board_module_scss__WEBPACK_IMPORTED_MODULE_6___default().iconBackground)
1966
+ }),
1967
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(icons__WEBPACK_IMPORTED_MODULE_3__/* .FlagFill */ .aR, {
1968
+ className: (_Board_module_scss__WEBPACK_IMPORTED_MODULE_6___default().icon)
1969
+ })
1970
+ ]
1971
+ }, [
1972
+ x,
1973
+ y
1974
+ ].join("-")))
1975
+ ]
1847
1976
  }));
1848
1977
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_2__.memo)(BoardPure));
1849
1978
 
@@ -1990,6 +2119,7 @@ const Cell = ({ cell , cellBottom , cellLeft , cellRight , cellTop , className ,
1990
2119
  const { tile , x , y } = cell;
1991
2120
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTranslate */ .qM)();
1992
2121
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectLocale */ .fN);
2122
+ const config = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectConfig */ .$o);
1993
2123
  const inputMode = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectInputMode */ .Ub);
1994
2124
  const points = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)((state)=>(0,state__WEBPACK_IMPORTED_MODULE_4__/* .selectTilePoints */ .Zf)(state, cell.tile));
1995
2125
  const isValid = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)((state)=>(0,state__WEBPACK_IMPORTED_MODULE_4__/* .selectCellIsValid */ .fZ)(state, cell));
@@ -2034,6 +2164,8 @@ const Cell = ({ cell , cellBottom , cellLeft , cellRight , cellTop , className ,
2034
2164
  y: (y + 1).toLocaleString(locale)
2035
2165
  }),
2036
2166
  className: classnames__WEBPACK_IMPORTED_MODULE_2___default()((_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().tile), className, {
2167
+ [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().first3)]: x < 3,
2168
+ [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().last3)]: config.boardWidth - x - 1 < 3,
2037
2169
  [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().sharpTopLeft)]: cellTop?.hasTile() || cellLeft?.hasTile(),
2038
2170
  [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().sharpTopRight)]: cellTop?.hasTile() || cellRight?.hasTile(),
2039
2171
  [(_Cell_module_scss__WEBPACK_IMPORTED_MODULE_6___default().sharpBottomLeft)]: cellBottom?.hasTile() || cellLeft?.hasTile(),
@@ -2124,6 +2256,10 @@ const InputPrompt = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_2__.forwardR
2124
2256
  if (inputRef) {
2125
2257
  inputRef.focus();
2126
2258
  inputRef.select();
2259
+ inputRef.scrollIntoView({
2260
+ block: "start",
2261
+ inline: "center"
2262
+ });
2127
2263
  }
2128
2264
  }, [
2129
2265
  inputRef
@@ -2355,6 +2491,7 @@ const VERTICAL_LINE = "v";
2355
2491
  const BONUS = "b";
2356
2492
  const BONUS_WORD_2 = "b2";
2357
2493
  const BONUS_WORD_3 = "b3";
2494
+ const BONUS_WORD_4 = "b4";
2358
2495
  const CELL_FILTER = "c";
2359
2496
  const useBackgroundImage = ()=>{
2360
2497
  const { boardSize , cellSize } = (0,hooks__WEBPACK_IMPORTED_MODULE_5__/* .useAppLayout */ .Ft)();
@@ -2365,7 +2502,6 @@ const useBackgroundImage = ()=>{
2365
2502
  x: Math.floor(config.boardWidth / 2),
2366
2503
  y: Math.floor(config.boardHeight / 2)
2367
2504
  };
2368
- const cellFilter = (0,state__WEBPACK_IMPORTED_MODULE_9__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_9__/* .selectCellFilter */ .Jw);
2369
2505
  const viewBoxHeight = boardSize;
2370
2506
  const viewBoxWidth = boardSize;
2371
2507
  const bonusSize = cellSize * 0.8;
@@ -2378,6 +2514,7 @@ const useBackgroundImage = ()=>{
2378
2514
  const characterBonuses = config.bonuses.filter((bonus)=>bonus.type === _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__.BONUS_CHARACTER);
2379
2515
  const word2Bonuses = config.bonuses.filter((bonus)=>bonus.type === _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__.BONUS_WORD && bonus.multiplier === 2);
2380
2516
  const word3Bonuses = config.bonuses.filter((bonus)=>bonus.type === _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__.BONUS_WORD && bonus.multiplier === 3);
2517
+ const word4Bonuses = config.bonuses.filter((bonus)=>bonus.type === _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_1__.BONUS_WORD && bonus.multiplier === 4);
2381
2518
  const getX = (point)=>point.x * (cellSize + parameters__WEBPACK_IMPORTED_MODULE_8__/* .BORDER_WIDTH */ .YF);
2382
2519
  const getY = (point)=>point.y * (cellSize + parameters__WEBPACK_IMPORTED_MODULE_8__/* .BORDER_WIDTH */ .YF);
2383
2520
  const backgroundSvg = (0,react_dom_server__WEBPACK_IMPORTED_MODULE_3__.renderToString)(/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react_redux__WEBPACK_IMPORTED_MODULE_4__.Provider, {
@@ -2462,6 +2599,29 @@ const useBackgroundImage = ()=>{
2462
2599
  })
2463
2600
  ]
2464
2601
  }),
2602
+ /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("symbol", {
2603
+ id: BONUS_WORD_4,
2604
+ children: [
2605
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("rect", {
2606
+ height: bonusSize,
2607
+ rx: borderRadius,
2608
+ width: bonusSize,
2609
+ x: bonusOffset,
2610
+ y: bonusOffset
2611
+ }),
2612
+ /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("text", {
2613
+ dominantBaseline: "central",
2614
+ fill: "white",
2615
+ fontFamily: "system-ui, sans-serif",
2616
+ fontSize: fontSize,
2617
+ fontWeight: "bold",
2618
+ textAnchor: "middle",
2619
+ x: fontOffset,
2620
+ y: fontOffset,
2621
+ children: "x4"
2622
+ })
2623
+ ]
2624
+ }),
2465
2625
  /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("symbol", {
2466
2626
  id: CELL_FILTER,
2467
2627
  children: [
@@ -2522,6 +2682,12 @@ const useBackgroundImage = ()=>{
2522
2682
  x: getX(bonus),
2523
2683
  y: getY(bonus)
2524
2684
  }, index)),
2685
+ word4Bonuses.map((bonus, index)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("use", {
2686
+ fill: (0,_lib__WEBPACK_IMPORTED_MODULE_10__/* .getBonusColor */ .T)(bonus),
2687
+ href: `#${BONUS_WORD_4}`,
2688
+ x: getX(bonus),
2689
+ y: getY(bonus)
2690
+ }, index)),
2525
2691
  /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("rect", {
2526
2692
  fill: parameters__WEBPACK_IMPORTED_MODULE_8__/* .COLOR_BONUS_START */ .HC,
2527
2693
  height: bonusSize,
@@ -2536,12 +2702,7 @@ const useBackgroundImage = ()=>{
2536
2702
  width: iconSize,
2537
2703
  x: getX(center) + iconOffset,
2538
2704
  y: getY(center) + iconOffset
2539
- }),
2540
- cellFilter.map((cell, index)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("use", {
2541
- href: `#${CELL_FILTER}`,
2542
- x: getX(cell),
2543
- y: getY(cell)
2544
- }, index))
2705
+ })
2545
2706
  ]
2546
2707
  })
2547
2708
  }));
@@ -2954,18 +3115,18 @@ const useGrid = (rows)=>{
2954
3115
  event.preventDefault();
2955
3116
  if (direction === "vertical") {
2956
3117
  onDirectionToggle();
2957
- changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q0[locale].direction === "ltr" ? -1 : 0, 0);
3118
+ changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q[locale].direction === "ltr" ? -1 : 0, 0);
2958
3119
  } else {
2959
- changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q0[locale].direction === "ltr" ? -1 : 1, 0);
3120
+ changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q[locale].direction === "ltr" ? -1 : 1, 0);
2960
3121
  }
2961
3122
  },
2962
3123
  onArrowRight: (event)=>{
2963
3124
  event.preventDefault();
2964
3125
  if (direction === "vertical") {
2965
3126
  onDirectionToggle();
2966
- changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q0[locale].direction === "ltr" ? 0 : -1, 0);
3127
+ changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q[locale].direction === "ltr" ? 0 : -1, 0);
2967
3128
  } else {
2968
- changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q0[locale].direction === "ltr" ? 1 : -1, 0);
3129
+ changeActiveIndex(i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q[locale].direction === "ltr" ? 1 : -1, 0);
2969
3130
  }
2970
3131
  },
2971
3132
  onArrowUp: (event)=>{
@@ -3488,7 +3649,7 @@ const DictionaryInput = ({ className })=>{
3488
3649
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTranslate */ .qM)();
3489
3650
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectLocale */ .fN);
3490
3651
  const { input } = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectDictionary */ .w1);
3491
- const { comma } = i18n__WEBPACK_IMPORTED_MODULE_3__/* .LOCALE_FEATURES */ .q0[locale];
3652
+ const { comma } = i18n__WEBPACK_IMPORTED_MODULE_3__/* .LOCALE_FEATURES */ .q[locale];
3492
3653
  const handleChange = (event)=>{
3493
3654
  dispatch(state__WEBPACK_IMPORTED_MODULE_4__/* .dictionarySlice.actions.changeInput */ .lj.actions.changeInput(event.target.value));
3494
3655
  };
@@ -3581,7 +3742,7 @@ const COLORS_PER_TYPE = {
3581
3742
  const EmptyState = ({ children , className , variant })=>{
3582
3743
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTranslate */ .qM)();
3583
3744
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectLocale */ .fN);
3584
- const { direction } = i18n__WEBPACK_IMPORTED_MODULE_3__/* .LOCALE_FEATURES */ .q0[locale];
3745
+ const { direction } = i18n__WEBPACK_IMPORTED_MODULE_3__/* .LOCALE_FEATURES */ .q[locale];
3585
3746
  const title = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>translate(TITLE_KEY_PER_TYPE[variant]), [
3586
3747
  translate
3587
3748
  ]);
@@ -3811,7 +3972,7 @@ const prepareContent = (message)=>{
3811
3972
  const Loading = ({ className , wave =true })=>{
3812
3973
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTranslate */ .qM)();
3813
3974
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_4__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_4__/* .selectLocale */ .fN);
3814
- const { direction } = i18n__WEBPACK_IMPORTED_MODULE_3__/* .LOCALE_FEATURES */ .q0[locale];
3975
+ const { direction } = i18n__WEBPACK_IMPORTED_MODULE_3__/* .LOCALE_FEATURES */ .q[locale];
3815
3976
  const translation = translate("common.loading");
3816
3977
  const message = direction === "ltr" ? translation : translation.split("").reverse().join("");
3817
3978
  const content = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>prepareContent(message), [
@@ -4372,7 +4533,7 @@ const randomize = (value, maxChange)=>value + maxChange * 2 * (0.5 - Math.random
4372
4533
 
4373
4534
 
4374
4535
  const createPlainTile = ({ cellIndex , character , color , rowIndex , showPoints })=>{
4375
- const configPoints = build.literaki[types_build.Locale.EN_US].getCharacterPoints(character.toLowerCase());
4536
+ const configPoints = (0,build.getConfig)(types_build.Game.Literaki, types_build.Locale.EN_US).getCharacterPoints(character.toLowerCase());
4376
4537
  const points = showPoints ? configPoints : undefined;
4377
4538
  const defaultColor = typeof configPoints === "number" ? parameters/* PLAIN_TILES_POINTS_COLORS */.d4[configPoints] : parameters/* PLAIN_TILES_COLOR_DEFAULT */.BF;
4378
4539
  const x = lib_getX(cellIndex) + parameters/* PLAIN_TILES_TILE_SIZE */.rV / 2;
@@ -4643,7 +4804,7 @@ const Rack = ({ className , tileSize })=>{
4643
4804
  const activeIndexRef = (0,react__WEBPACK_IMPORTED_MODULE_3__.useRef)();
4644
4805
  const [hasFocus, setHasFocus] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(false);
4645
4806
  const [input, setInput] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)("");
4646
- const { direction } = i18n__WEBPACK_IMPORTED_MODULE_7__/* .LOCALE_FEATURES */ .q0[locale];
4807
+ const { direction } = i18n__WEBPACK_IMPORTED_MODULE_7__/* .LOCALE_FEATURES */ .q[locale];
4647
4808
  const { tileFontSize } = (0,lib__WEBPACK_IMPORTED_MODULE_8__/* .getTileSizes */ .vc)(tileSize);
4648
4809
  const showInputPrompt = inputMode === "touchscreen" && hasFocus;
4649
4810
  const ref = (0,react__WEBPACK_IMPORTED_MODULE_3__.useRef)(null);
@@ -4865,6 +5026,10 @@ const InputPrompt = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_2__.forwardR
4865
5026
  if (inputRef) {
4866
5027
  inputRef.focus();
4867
5028
  inputRef.select();
5029
+ inputRef.scrollIntoView({
5030
+ block: "end",
5031
+ inline: "center"
5032
+ });
4868
5033
  }
4869
5034
  }, [
4870
5035
  inputRef
@@ -5147,7 +5312,8 @@ var Radio_module_default = /*#__PURE__*/__webpack_require__.n(Radio_module);
5147
5312
 
5148
5313
  const Radio = ({ checked , children , className , disabled , name , value , onChange })=>/*#__PURE__*/ (0,jsx_runtime_.jsxs)("label", {
5149
5314
  className: external_classnames_default()((Radio_module_default()).radio, className, {
5150
- [(Radio_module_default()).checked]: checked
5315
+ [(Radio_module_default()).checked]: checked,
5316
+ [(Radio_module_default()).disabled]: disabled
5151
5317
  }),
5152
5318
  children: [
5153
5319
  /*#__PURE__*/ jsx_runtime_.jsx("input", {
@@ -5338,7 +5504,7 @@ const Result = ({ data , index , style })=>{
5338
5504
  const columns = (0,_useColumns__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z)();
5339
5505
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_6__/* .selectLocale */ .fN);
5340
5506
  const query = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_6__/* .selectResultsQuery */ .QL);
5341
- const { consonants , direction , separator , vowels } = i18n__WEBPACK_IMPORTED_MODULE_4__/* .LOCALE_FEATURES */ .q0[locale];
5507
+ const { consonants , direction , separator , vowels } = i18n__WEBPACK_IMPORTED_MODULE_4__/* .LOCALE_FEATURES */ .q[locale];
5342
5508
  const result = results[index];
5343
5509
  const isMatching = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTypedSelector */ .ix)((state)=>(0,state__WEBPACK_IMPORTED_MODULE_6__/* .selectIsResultMatching */ .yJ)(state, index));
5344
5510
  const words = direction === "rtl" ? [
@@ -5475,7 +5641,7 @@ const Results = ({ callbacks , className , highlightedIndex })=>{
5475
5641
  const translate = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTranslate */ .qM)();
5476
5642
  const { resultsHeight , resultsWidth } = (0,hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAppLayout */ .Ft)();
5477
5643
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectLocale */ .fN);
5478
- const { direction } = i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q0[locale];
5644
+ const { direction } = i18n__WEBPACK_IMPORTED_MODULE_5__/* .LOCALE_FEATURES */ .q[locale];
5479
5645
  const results = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectResults */ .x5);
5480
5646
  const isLoading = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectIsLoading */ .xU);
5481
5647
  const isOutdated = (0,state__WEBPACK_IMPORTED_MODULE_7__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_7__/* .selectAreResultsOutdated */ .Mj);
@@ -5756,7 +5922,7 @@ const COLUMNS_L = [
5756
5922
  ];
5757
5923
  const useColumns = ()=>{
5758
5924
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_2__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_2__/* .selectLocale */ .fN);
5759
- const localeColumns = (0,_getLocaleColumns__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(i18n__WEBPACK_IMPORTED_MODULE_1__/* .LOCALE_FEATURES */ .q0[locale]);
5925
+ const localeColumns = (0,_getLocaleColumns__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(i18n__WEBPACK_IMPORTED_MODULE_1__/* .LOCALE_FEATURES */ .q[locale]);
5760
5926
  const { isLessThanXs , isLessThanS , isLessThanM , isLessThanL } = (0,hooks__WEBPACK_IMPORTED_MODULE_0__/* .useMediaQueries */ .lS)();
5761
5927
  if (isLessThanXs) {
5762
5928
  return localeColumns.filter((column)=>COLUMNS_XS.includes(column.id));
@@ -5883,7 +6049,7 @@ const INVISIBLE_STYLE = {
5883
6049
  };
5884
6050
  const SeoMessage = ()=>/*#__PURE__*/ jsx_runtime_.jsx("p", {
5885
6051
  style: INVISIBLE_STYLE,
5886
- children: "Scrabble Solver 2 is a free and open-source analysis tool for Scrabble and Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish & Spanish. Source code is available on GitHub - contributions are welcome!"
6052
+ children: "Scrabble Solver 2 is a free and open-source analysis tool for Scrabble, Super Scrabble & Literaki. Quickly find top scoring words using given letters and board state. Available in English, French, German, Polish & Spanish. Source code is available on GitHub - contributions are welcome!"
5887
6053
  });
5888
6054
  /* harmony default export */ const SeoMessage_SeoMessage = (SeoMessage);
5889
6055
 
@@ -6925,7 +7091,7 @@ const useAppLayout = ()=>{
6925
7091
  const maxBoardHeight = isBoardFullWidth ? Number.POSITIVE_INFINITY : Math.max(solverHeight - bottomContainerHeight, 0);
6926
7092
  const cellWidth = (maxBoardWidth - (config.boardWidth + 1) * parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF) / config.boardWidth;
6927
7093
  const cellHeight = (maxBoardHeight - (config.boardHeight + 1) * parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF) / config.boardHeight;
6928
- const cellSize = Math.min(Math.max(Math.min(cellWidth, cellHeight), parameters__WEBPACK_IMPORTED_MODULE_0__/* .BOARD_TILE_SIZE_MIN */ .oj), parameters__WEBPACK_IMPORTED_MODULE_0__/* .BOARD_TILE_SIZE_MAX */ .Kw);
7094
+ const cellSize = Math.min(Math.min(cellWidth, cellHeight), parameters__WEBPACK_IMPORTED_MODULE_0__/* .BOARD_TILE_SIZE_MAX */ .Kw);
6929
7095
  const boardSize = (cellSize + parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF) * config.boardWidth + parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF;
6930
7096
  const maxControlsWidth = tileSize * config.maximumCharactersCount + 2 * parameters__WEBPACK_IMPORTED_MODULE_0__/* .BORDER_WIDTH */ .YF;
6931
7097
  const showResultsInModal = isLessThanL;
@@ -7097,7 +7263,7 @@ state__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (awa
7097
7263
  const useLocalStorage = ()=>{
7098
7264
  const autoGroupTiles = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectAutoGroupTiles */ .uz);
7099
7265
  const board = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectBoard */ .ZO);
7100
- const configId = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectConfigId */ .md);
7266
+ const game = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectGame */ .J1);
7101
7267
  const inputMode = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectInputMode */ .Ub);
7102
7268
  const locale = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectLocale */ .fN);
7103
7269
  const rack = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectRack */ .QB);
@@ -7116,11 +7282,11 @@ const useLocalStorage = ()=>{
7116
7282
  board
7117
7283
  ]);
7118
7284
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
7119
- if (configId) {
7120
- state__WEBPACK_IMPORTED_MODULE_1__/* .localStorage.setConfigId */ .Xb.setConfigId(configId);
7285
+ if (game) {
7286
+ state__WEBPACK_IMPORTED_MODULE_1__/* .localStorage.setGame */ .Xb.setGame(game);
7121
7287
  }
7122
7288
  }, [
7123
- configId
7289
+ game
7124
7290
  ]);
7125
7291
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
7126
7292
  if (inputMode) {
@@ -7368,9 +7534,8 @@ const useViewportSize = ()=>{
7368
7534
 
7369
7535
  // EXPORTS
7370
7536
  __webpack_require__.d(__webpack_exports__, {
7371
- "q0": () => (/* reexport */ LOCALE_FEATURES),
7372
- "Hm": () => (/* reexport */ LOCALE_FLAGS),
7373
- "ZP": () => (/* reexport */ i18n_i18n)
7537
+ "q": () => (/* reexport */ LOCALE_FEATURES),
7538
+ "Z": () => (/* reexport */ i18n_i18n)
7374
7539
  });
7375
7540
 
7376
7541
  // EXTERNAL MODULE: ../constants/build/index.js
@@ -7379,19 +7544,19 @@ var build = __webpack_require__(7618);
7379
7544
  var types_build = __webpack_require__(34046);
7380
7545
  // EXTERNAL MODULE: ./src/icons/index.ts + 42 modules
7381
7546
  var icons = __webpack_require__(3186);
7382
- // EXTERNAL MODULE: ./src/i18n/i18n.module.scss
7383
- var i18n_module = __webpack_require__(43070);
7384
- var i18n_module_default = /*#__PURE__*/__webpack_require__.n(i18n_module);
7385
7547
  ;// CONCATENATED MODULE: ./src/i18n/constants.ts
7386
7548
 
7387
7549
 
7388
7550
 
7389
-
7390
7551
  const LOCALE_FEATURES = {
7391
7552
  [types_build.Locale.DE_DE]: {
7392
7553
  comma: build.COMMA_LATIN,
7393
7554
  consonants: true,
7394
7555
  direction: "ltr",
7556
+ Icon: icons/* FlagDe */.rV,
7557
+ label: "Deutsch",
7558
+ locale: types_build.Locale.DE_DE,
7559
+ name: "German",
7395
7560
  separator: `${build.COMMA_LATIN} `,
7396
7561
  vowels: true
7397
7562
  },
@@ -7399,6 +7564,10 @@ const LOCALE_FEATURES = {
7399
7564
  comma: build.COMMA_LATIN,
7400
7565
  consonants: true,
7401
7566
  direction: "ltr",
7567
+ Icon: icons/* FlagGb */.eP,
7568
+ label: "English (GB)",
7569
+ locale: types_build.Locale.EN_GB,
7570
+ name: "English (GB)",
7402
7571
  separator: `${build.COMMA_LATIN} `,
7403
7572
  vowels: true
7404
7573
  },
@@ -7406,6 +7575,10 @@ const LOCALE_FEATURES = {
7406
7575
  comma: build.COMMA_LATIN,
7407
7576
  consonants: true,
7408
7577
  direction: "ltr",
7578
+ Icon: icons/* FlagUs */.YK,
7579
+ label: "English (US)",
7580
+ locale: types_build.Locale.EN_US,
7581
+ name: "English (US)",
7409
7582
  separator: `${build.COMMA_LATIN} `,
7410
7583
  vowels: true
7411
7584
  },
@@ -7413,6 +7586,10 @@ const LOCALE_FEATURES = {
7413
7586
  comma: build.COMMA_LATIN,
7414
7587
  consonants: true,
7415
7588
  direction: "ltr",
7589
+ Icon: icons/* FlagEs */.d,
7590
+ label: "Espa\xf1ol",
7591
+ locale: types_build.Locale.ES_ES,
7592
+ name: "Spanish",
7416
7593
  separator: `${build.COMMA_LATIN} `,
7417
7594
  vowels: true
7418
7595
  },
@@ -7420,6 +7597,10 @@ const LOCALE_FEATURES = {
7420
7597
  comma: build.COMMA_ARABIC,
7421
7598
  consonants: false,
7422
7599
  direction: "rtl",
7600
+ Icon: icons/* FlagFa */.$M,
7601
+ label: "فارسی",
7602
+ locale: types_build.Locale.FA_IR,
7603
+ name: "Persian",
7423
7604
  separator: `${build.COMMA_ARABIC} `,
7424
7605
  vowels: false
7425
7606
  },
@@ -7427,6 +7608,10 @@ const LOCALE_FEATURES = {
7427
7608
  comma: build.COMMA_LATIN,
7428
7609
  consonants: true,
7429
7610
  direction: "ltr",
7611
+ Icon: icons/* FlagFr */.OV,
7612
+ label: "Fran\xe7ais",
7613
+ locale: types_build.Locale.FR_FR,
7614
+ name: "French",
7430
7615
  separator: `${build.COMMA_LATIN} `,
7431
7616
  vowels: true
7432
7617
  },
@@ -7434,59 +7619,12 @@ const LOCALE_FEATURES = {
7434
7619
  comma: build.COMMA_LATIN,
7435
7620
  consonants: true,
7436
7621
  direction: "ltr",
7437
- separator: `${build.COMMA_LATIN} `,
7438
- vowels: true
7439
- }
7440
- };
7441
- const LOCALE_FLAGS = {
7442
- [types_build.Locale.DE_DE]: {
7443
- className: (i18n_module_default()).de,
7444
- Icon: icons/* FlagDe */.rV,
7445
- label: "Deutsch",
7446
- name: "German",
7447
- value: types_build.Locale.DE_DE
7448
- },
7449
- [types_build.Locale.EN_GB]: {
7450
- className: (i18n_module_default()).gb,
7451
- Icon: icons/* FlagGb */.eP,
7452
- label: "English (GB)",
7453
- name: "English (GB)",
7454
- value: types_build.Locale.EN_GB
7455
- },
7456
- [types_build.Locale.EN_US]: {
7457
- className: (i18n_module_default()).us,
7458
- Icon: icons/* FlagUs */.YK,
7459
- label: "English (US)",
7460
- name: "English (US)",
7461
- value: types_build.Locale.EN_US
7462
- },
7463
- [types_build.Locale.ES_ES]: {
7464
- className: (i18n_module_default()).es,
7465
- Icon: icons/* FlagEs */.d,
7466
- label: "Espa\xf1ol",
7467
- name: "Spanish",
7468
- value: types_build.Locale.ES_ES
7469
- },
7470
- [types_build.Locale.FA_IR]: {
7471
- className: (i18n_module_default()).fa,
7472
- Icon: icons/* FlagFa */.$M,
7473
- label: "فارسی",
7474
- name: "Persian",
7475
- value: types_build.Locale.FA_IR
7476
- },
7477
- [types_build.Locale.FR_FR]: {
7478
- className: (i18n_module_default()).fr,
7479
- Icon: icons/* FlagFr */.OV,
7480
- label: "Fran\xe7ais",
7481
- name: "French",
7482
- value: types_build.Locale.FR_FR
7483
- },
7484
- [types_build.Locale.PL_PL]: {
7485
- className: (i18n_module_default()).pl,
7486
7622
  Icon: icons/* FlagPl */.fd,
7487
7623
  label: "Polski",
7624
+ locale: types_build.Locale.PL_PL,
7488
7625
  name: "Polish",
7489
- value: types_build.Locale.PL_PL
7626
+ separator: `${build.COMMA_LATIN} `,
7627
+ vowels: true
7490
7628
  }
7491
7629
  };
7492
7630
 
@@ -8796,7 +8934,7 @@ const getCellSize = (config, width, height)=>{
8796
8934
  const maxWidth = (width - BOARD_CELL_BORDER_WIDTH) / config.boardWidth - BOARD_CELL_BORDER_WIDTH;
8797
8935
  const maxHeight = (height - BOARD_CELL_BORDER_WIDTH) / config.boardHeight - BOARD_CELL_BORDER_WIDTH;
8798
8936
  const cellSize = Math.min(maxWidth, maxHeight);
8799
- return Math.floor(Math.min(Math.max(cellSize, BOARD_TILE_SIZE_MIN), BOARD_TILE_SIZE_MAX));
8937
+ return Math.floor(Math.min(cellSize, BOARD_TILE_SIZE_MAX));
8800
8938
  };
8801
8939
  /* harmony default export */ const lib_getCellSize = ((/* unused pure expression or super */ null && (getCellSize)));
8802
8940
 
@@ -9241,7 +9379,6 @@ const zipCharactersAndTiles = (characters, tiles)=>{
9241
9379
  /* harmony export */ "mM": () => (/* binding */ REMAINING_TILES_TILE_SIZE),
9242
9380
  /* harmony export */ "n6": () => (/* binding */ DICTIONARY_HEIGHT),
9243
9381
  /* harmony export */ "n_": () => (/* binding */ BORDER_RADIUS),
9244
- /* harmony export */ "oj": () => (/* binding */ BOARD_TILE_SIZE_MIN),
9245
9382
  /* harmony export */ "op": () => (/* binding */ COMPONENTS_SPACING_SMALL),
9246
9383
  /* harmony export */ "pI": () => (/* binding */ COLOR_BLUE),
9247
9384
  /* harmony export */ "pS": () => (/* binding */ COLOR_FILTERED),
@@ -9262,7 +9399,7 @@ const zipCharactersAndTiles = (characters, tiles)=>{
9262
9399
  /* harmony export */ "yr": () => (/* binding */ COLOR_YELLOW),
9263
9400
  /* harmony export */ "yz": () => (/* binding */ TRANSITION)
9264
9401
  /* harmony export */ });
9265
- /* unused harmony exports TRANSITION_DURATION, COLOR_BONUS_CHARACTER_1, COLOR_BONUS_CHARACTER_2, COLOR_BONUS_CHARACTER_3, COLOR_BONUS_CHARACTER_5, COLOR_BONUS_CHARACTER_MULTIPLIER_2, COLOR_BONUS_CHARACTER_MULTIPLIER_3, COLOR_BONUS_WORD_MULTIPLIER_2, COLOR_BONUS_WORD_MULTIPLIER_3, SPACING_XS, SPACING_S, SPACING_M, SPACING_L, SPACING_XL, BOARD_CELL_BORDER_WIDTH, BORDER_COLOR, BUTTON_ICON_SIZE, BUTTON_PADDING_VERTICAL, TILE_SIZE, PLAIN_TILES_VERSION_TILE_COLOR, PLAIN_TILES_VERSION_TILE_SIZE */
9402
+ /* unused harmony exports TRANSITION_DURATION, COLOR_BONUS_CHARACTER_1, COLOR_BONUS_CHARACTER_2, COLOR_BONUS_CHARACTER_3, COLOR_BONUS_CHARACTER_5, COLOR_BONUS_CHARACTER_MULTIPLIER_2, COLOR_BONUS_CHARACTER_MULTIPLIER_3, COLOR_BONUS_CHARACTER_MULTIPLIER_4, COLOR_BONUS_WORD_MULTIPLIER_2, COLOR_BONUS_WORD_MULTIPLIER_3, COLOR_BONUS_WORD_MULTIPLIER_4, SPACING_XS, SPACING_S, SPACING_M, SPACING_L, SPACING_XL, BOARD_CELL_BORDER_WIDTH, BORDER_COLOR, BUTTON_ICON_SIZE, BUTTON_PADDING_VERTICAL, TILE_SIZE, PLAIN_TILES_VERSION_TILE_COLOR, PLAIN_TILES_VERSION_TILE_SIZE */
9266
9403
  const BREAKPOINTS = {
9267
9404
  xs: 480,
9268
9405
  s: 768,
@@ -9285,9 +9422,11 @@ const COLOR_BONUS_CHARACTER_3 = "#dde4f6";
9285
9422
  const COLOR_BONUS_CHARACTER_5 = "#fbe0d4";
9286
9423
  const COLOR_BONUS_CHARACTER_MULTIPLIER_2 = "#b8d5ed";
9287
9424
  const COLOR_BONUS_CHARACTER_MULTIPLIER_3 = "#86aed1";
9425
+ const COLOR_BONUS_CHARACTER_MULTIPLIER_4 = "#3477b2";
9288
9426
  const COLOR_BONUS_START = "#b284b8";
9289
9427
  const COLOR_BONUS_WORD_MULTIPLIER_2 = "#fbc997";
9290
9428
  const COLOR_BONUS_WORD_MULTIPLIER_3 = "#f19393";
9429
+ const COLOR_BONUS_WORD_MULTIPLIER_4 = "#ed5e5e";
9291
9430
  const COLOR_FILTERED = "#444";
9292
9431
  const COLOR_BONUS_CHARACTER = {
9293
9432
  1: COLOR_BONUS_CHARACTER_1,
@@ -9297,11 +9436,13 @@ const COLOR_BONUS_CHARACTER = {
9297
9436
  };
9298
9437
  const COLOR_BONUS_CHARACTER_MULTIPLIER = {
9299
9438
  2: COLOR_BONUS_CHARACTER_MULTIPLIER_2,
9300
- 3: COLOR_BONUS_CHARACTER_MULTIPLIER_3
9439
+ 3: COLOR_BONUS_CHARACTER_MULTIPLIER_3,
9440
+ 4: COLOR_BONUS_CHARACTER_MULTIPLIER_4
9301
9441
  };
9302
9442
  const COLOR_BONUS_WORD = {
9303
9443
  2: COLOR_BONUS_WORD_MULTIPLIER_2,
9304
- 3: COLOR_BONUS_WORD_MULTIPLIER_3
9444
+ 3: COLOR_BONUS_WORD_MULTIPLIER_3,
9445
+ 4: COLOR_BONUS_WORD_MULTIPLIER_4
9305
9446
  };
9306
9447
  const SPACING_XS = 2;
9307
9448
  const SPACING_S = 5;
@@ -9315,11 +9456,6 @@ const BOARD_CELL_BORDER_WIDTH = 1;
9315
9456
  const BOARD_TILE_FONT_SIZE_MIN = 14;
9316
9457
  const BOARD_TILE_FONT_SIZE_POINTS_MIN = 10;
9317
9458
  const BOARD_TILE_SIZE_MAX = 64;
9318
- /**
9319
- * 20 - fits all board tiles without horizontal scrollbar on 360px viewport width (font-size: 14px)
9320
- * 21 - fits all board tiles without horizontal scrollbar on 375px viewport width (font-size: 14px)
9321
- * 26 - tiles start to look good (font-size: 16px)
9322
- */ const BOARD_TILE_SIZE_MIN = 20;
9323
9459
  const BORDER_COLOR = "#cdcdcd";
9324
9460
  const BORDER_COLOR_LIGHT = "#d9d9d9";
9325
9461
  const BORDER_RADIUS = 5;
@@ -9412,7 +9548,8 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
9412
9548
  /* harmony export */ "GL": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.GL),
9413
9549
  /* harmony export */ "HM": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.HM),
9414
9550
  /* harmony export */ "I8": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_3__.I8),
9415
- /* harmony export */ "Jw": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.Jw),
9551
+ /* harmony export */ "J1": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.J1),
9552
+ /* harmony export */ "Ju": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.Ju),
9416
9553
  /* harmony export */ "Mj": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.Mj),
9417
9554
  /* harmony export */ "O_": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_3__.O_),
9418
9555
  /* harmony export */ "Or": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.Or),
@@ -9440,7 +9577,6 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
9440
9577
  /* harmony export */ "mK": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.mK),
9441
9578
  /* harmony export */ "mO": () => (/* reexport safe */ _slices__WEBPACK_IMPORTED_MODULE_3__.mO),
9442
9579
  /* harmony export */ "mc": () => (/* reexport safe */ _actions__WEBPACK_IMPORTED_MODULE_0__.m),
9443
- /* harmony export */ "md": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.md),
9444
9580
  /* harmony export */ "qM": () => (/* reexport safe */ _useTranslate__WEBPACK_IMPORTED_MODULE_5__.Z),
9445
9581
  /* harmony export */ "uz": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.uz),
9446
9582
  /* harmony export */ "w1": () => (/* reexport safe */ _selectors__WEBPACK_IMPORTED_MODULE_2__.w1),
@@ -9487,7 +9623,7 @@ __webpack_async_result__();
9487
9623
 
9488
9624
  const AUTO_GROUP_TILES = "auto-group-tiles";
9489
9625
  const BOARD = "board";
9490
- const CONFIG_ID = "config-id";
9626
+ const GAME_ID = "config-id";
9491
9627
  const INPUT_MODE = "input-mode";
9492
9628
  const LOCALE = "locale";
9493
9629
  const RACK = "rack";
@@ -9507,11 +9643,11 @@ const localStorage = {
9507
9643
  const serialized = board ? JSON.stringify(board.toJson()) : board;
9508
9644
  store.set(BOARD, serialized, true);
9509
9645
  },
9510
- getConfigId () {
9511
- return store.get(CONFIG_ID);
9646
+ getGame () {
9647
+ return store.get(GAME_ID);
9512
9648
  },
9513
- setConfigId (configId) {
9514
- store.set(CONFIG_ID, configId, true);
9649
+ setGame (game) {
9650
+ store.set(GAME_ID, game, true);
9515
9651
  },
9516
9652
  getInputMode () {
9517
9653
  return store.get(INPUT_MODE);
@@ -9547,14 +9683,16 @@ __webpack_require__.d(__webpack_exports__, {
9547
9683
  "R": () => (/* binding */ rootSaga)
9548
9684
  });
9549
9685
 
9686
+ // EXTERNAL MODULE: ../configs/build/index.js
9687
+ var build = __webpack_require__(89418);
9688
+ // EXTERNAL MODULE: ../types/build/index.js
9689
+ var types_build = __webpack_require__(34046);
9550
9690
  // EXTERNAL MODULE: external "redux-saga/effects"
9551
9691
  var effects_ = __webpack_require__(56477);
9552
9692
  // EXTERNAL MODULE: ./src/i18n/index.ts + 8 modules
9553
9693
  var i18n = __webpack_require__(36743);
9554
9694
  // EXTERNAL MODULE: ./src/lib/index.ts + 36 modules
9555
9695
  var lib = __webpack_require__(18954);
9556
- // EXTERNAL MODULE: ../types/build/index.js
9557
- var build = __webpack_require__(34046);
9558
9696
  ;// CONCATENATED MODULE: ./src/sdk/fetch.ts
9559
9697
 
9560
9698
  const fetch_fetch = async (input, init)=>{
@@ -9562,7 +9700,7 @@ const fetch_fetch = async (input, init)=>{
9562
9700
  try {
9563
9701
  response = await window.fetch(input, init);
9564
9702
  } catch (error) {
9565
- const message = (0,build.isError)(error) ? error.message : "Unknown error";
9703
+ const message = (0,types_build.isError)(error) ? error.message : "Unknown error";
9566
9704
  throw new Error(`Network error: ${message}`);
9567
9705
  }
9568
9706
  if (response.ok) {
@@ -9570,7 +9708,7 @@ const fetch_fetch = async (input, init)=>{
9570
9708
  }
9571
9709
  try {
9572
9710
  const json = await response.json();
9573
- if ((0,build.isError)(json)) {
9711
+ if ((0,types_build.isError)(json)) {
9574
9712
  throw new Error(json.message);
9575
9713
  }
9576
9714
  } finally{
@@ -9599,35 +9737,35 @@ const fetchJson = async (input, init)=>{
9599
9737
 
9600
9738
  const findWordDefinitions = async (locale, word)=>{
9601
9739
  const json = await sdk_fetchJson(`/api/dictionary/${locale}/${encodeURIComponent(word)}`);
9602
- return json.map(build.WordDefinition.fromJson);
9740
+ return json.map(types_build.WordDefinition.fromJson);
9603
9741
  };
9604
9742
  /* harmony default export */ const sdk_findWordDefinitions = (findWordDefinitions);
9605
9743
 
9606
9744
  ;// CONCATENATED MODULE: ./src/sdk/solve.ts
9607
9745
 
9608
9746
 
9609
- const solve = async ({ board , characters , configId , locale })=>{
9747
+ const solve = async ({ board , characters , game , locale })=>{
9610
9748
  const json = await sdk_fetchJson("/api/solve", {
9611
9749
  method: "POST",
9612
9750
  body: JSON.stringify({
9613
9751
  board,
9614
9752
  characters,
9615
- configId,
9753
+ game,
9616
9754
  locale
9617
9755
  })
9618
9756
  });
9619
- return json.map(build.Result.fromJson);
9757
+ return json.map(types_build.Result.fromJson);
9620
9758
  };
9621
9759
  /* harmony default export */ const sdk_solve = (solve);
9622
9760
 
9623
9761
  ;// CONCATENATED MODULE: ./src/sdk/verify.ts
9624
9762
 
9625
- const verify = async ({ board , configId , locale })=>{
9763
+ const verify = async ({ board , game , locale })=>{
9626
9764
  return sdk_fetchJson("/api/verify", {
9627
9765
  method: "POST",
9628
9766
  body: JSON.stringify({
9629
9767
  board,
9630
- configId,
9768
+ game,
9631
9769
  locale
9632
9770
  })
9633
9771
  });
@@ -9662,6 +9800,8 @@ var slices = __webpack_require__(67647);
9662
9800
 
9663
9801
 
9664
9802
 
9803
+
9804
+
9665
9805
  const SUBMIT_DELAY = 150;
9666
9806
  const memoizedFindWordDefinitions = (0,lib/* memoize */.HP)(sdk_findWordDefinitions);
9667
9807
  function* rootSaga() {
@@ -9672,7 +9812,7 @@ function* rootSaga() {
9672
9812
  ], onRackValueChange);
9673
9813
  yield (0,effects_.takeEvery)(slices/* resultsSlice.actions.applyResult.type */._C.actions.applyResult.type, onApplyResult);
9674
9814
  yield (0,effects_.takeEvery)(slices/* resultsSlice.actions.changeResultCandidate.type */._C.actions.changeResultCandidate.type, onResultCandidateChange);
9675
- yield (0,effects_.takeEvery)(slices/* settingsSlice.actions.changeConfigId.type */.xj.actions.changeConfigId.type, onConfigIdChange);
9815
+ yield (0,effects_.takeEvery)(slices/* settingsSlice.actions.changeGame.type */.xj.actions.changeGame.type, onGameChange);
9676
9816
  yield (0,effects_.takeEvery)(slices/* settingsSlice.actions.changeLocale.type */.xj.actions.changeLocale.type, onLocaleChange);
9677
9817
  yield (0,effects_.takeLatest)(slices/* dictionarySlice.actions.submit.type */.lj.actions.submit.type, onDictionarySubmit);
9678
9818
  yield (0,effects_.takeLatest)(actions/* initialize.type */.j.type, onInitialize);
@@ -9699,7 +9839,7 @@ function* onApplyResult({ payload: result }) {
9699
9839
  yield (0,effects_.put)(slices/* rackSlice.actions.groupTiles */.O_.actions.groupTiles(autoGroupTiles));
9700
9840
  yield (0,effects_.put)(slices/* verifySlice.actions.submit */.Gt.actions.submit());
9701
9841
  }
9702
- function* onConfigIdChange() {
9842
+ function* onGameChange() {
9703
9843
  const characters = yield (0,effects_.select)(selectors/* selectCharacters */.yp);
9704
9844
  if (characters.length > 0) {
9705
9845
  yield (0,effects_.put)(slices/* solveSlice.actions.submit */.TP.actions.submit());
@@ -9732,7 +9872,8 @@ function* onInitialize() {
9732
9872
  }
9733
9873
  }
9734
9874
  function* onReset() {
9735
- yield (0,effects_.put)(slices/* boardSlice.actions.reset */.I8.actions.reset());
9875
+ const config = yield (0,effects_.select)(selectors/* selectConfig */.$o);
9876
+ yield (0,effects_.put)(slices/* boardSlice.actions.init */.I8.actions.init(types_build.Board.create(config.boardWidth, config.boardHeight)));
9736
9877
  yield (0,effects_.put)(slices/* cellFilterSlice.actions.reset */.mO.actions.reset());
9737
9878
  yield (0,effects_.put)(slices/* dictionarySlice.actions.reset */.lj.actions.reset());
9738
9879
  yield (0,effects_.put)(slices/* rackSlice.actions.reset */.O_.actions.reset());
@@ -9740,7 +9881,12 @@ function* onReset() {
9740
9881
  yield (0,effects_.put)(slices/* solveSlice.actions.reset */.TP.actions.reset());
9741
9882
  yield (0,effects_.put)(slices/* verifySlice.actions.submit */.Gt.actions.submit());
9742
9883
  }
9743
- function* onLocaleChange() {
9884
+ function* onLocaleChange({ payload: locale }) {
9885
+ const game = yield (0,effects_.select)(selectors/* selectGame */.J1);
9886
+ if (!(0,build.hasConfig)(game, locale)) {
9887
+ const defaultConfig = build.localesMap[locale][0];
9888
+ yield (0,effects_.put)(slices/* settingsSlice.actions.changeGame */.xj.actions.changeGame(defaultConfig.game));
9889
+ }
9744
9890
  const characters = yield (0,effects_.select)(selectors/* selectCharacters */.yp);
9745
9891
  if (characters.length > 0) {
9746
9892
  yield (0,effects_.put)(slices/* solveSlice.actions.submit */.TP.actions.submit());
@@ -9754,7 +9900,7 @@ function* onLocaleChange() {
9754
9900
  function* onResultCandidateChange({ payload: result }) {
9755
9901
  if (result) {
9756
9902
  const locale = yield (0,effects_.select)(selectors/* selectLocale */.fN);
9757
- yield (0,effects_.put)(slices/* dictionarySlice.actions.changeInput */.lj.actions.changeInput(result.words.join(i18n/* LOCALE_FEATURES */.q0[locale].separator)));
9903
+ yield (0,effects_.put)(slices/* dictionarySlice.actions.changeInput */.lj.actions.changeInput(result.words.join(i18n/* LOCALE_FEATURES */.q[locale].separator)));
9758
9904
  yield (0,effects_.put)(slices/* dictionarySlice.actions.submit */.lj.actions.submit());
9759
9905
  }
9760
9906
  }
@@ -9775,7 +9921,7 @@ function* onSolve() {
9775
9921
  const results = yield (0,effects_.call)(sdk_solve, {
9776
9922
  board: board.toJson(),
9777
9923
  characters,
9778
- configId: config.id,
9924
+ game: config.game,
9779
9925
  locale
9780
9926
  });
9781
9927
  yield (0,effects_.put)(slices/* resultsSlice.actions.changeResults */._C.actions.changeResults(results));
@@ -9796,7 +9942,7 @@ function* onVerify() {
9796
9942
  try {
9797
9943
  const { invalidWords , validWords } = yield (0,effects_.call)(sdk_verify, {
9798
9944
  board: board.toJson(),
9799
- configId: config.id,
9945
+ game: config.game,
9800
9946
  locale
9801
9947
  });
9802
9948
  yield (0,effects_.put)(slices/* verifySlice.actions.submitSuccess */.Gt.actions.submitSuccess({
@@ -9842,7 +9988,8 @@ function* ensureProperTilesCount() {
9842
9988
  /* harmony export */ "En": () => (/* binding */ selectHasOverusedTiles),
9843
9989
  /* harmony export */ "GL": () => (/* binding */ selectResultCandidateCells),
9844
9990
  /* harmony export */ "HM": () => (/* binding */ selectVerify),
9845
- /* harmony export */ "Jw": () => (/* binding */ selectCellFilter),
9991
+ /* harmony export */ "J1": () => (/* binding */ selectGame),
9992
+ /* harmony export */ "Ju": () => (/* binding */ selectFilteredCells),
9846
9993
  /* harmony export */ "Mj": () => (/* binding */ selectAreResultsOutdated),
9847
9994
  /* harmony export */ "Or": () => (/* binding */ selectCharacterPoints),
9848
9995
  /* harmony export */ "QB": () => (/* binding */ selectRack),
@@ -9861,7 +10008,6 @@ function* ensureProperTilesCount() {
9861
10008
  /* harmony export */ "id": () => (/* binding */ selectCellIsFiltered),
9862
10009
  /* harmony export */ "lP": () => (/* binding */ selectLocaleAutoGroupTiles),
9863
10010
  /* harmony export */ "mK": () => (/* binding */ selectDictionaryError),
9864
- /* harmony export */ "md": () => (/* binding */ selectConfigId),
9865
10011
  /* harmony export */ "nb": () => (/* binding */ selectTranslations),
9866
10012
  /* harmony export */ "uz": () => (/* binding */ selectAutoGroupTiles),
9867
10013
  /* harmony export */ "w1": () => (/* binding */ selectDictionary),
@@ -9916,7 +10062,7 @@ const selectLocaleAutoGroupTiles = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_
9916
10062
  selectLocale,
9917
10063
  selectSettingsRoot
9918
10064
  ], (locale, settings)=>{
9919
- if (i18n__WEBPACK_IMPORTED_MODULE_4__/* .LOCALE_FEATURES */ .q0[locale].direction === "ltr" || settings.autoGroupTiles === null) {
10065
+ if (i18n__WEBPACK_IMPORTED_MODULE_4__/* .LOCALE_FEATURES */ .q[locale].direction === "ltr" || settings.autoGroupTiles === null) {
9920
10066
  return settings.autoGroupTiles;
9921
10067
  }
9922
10068
  return settings.autoGroupTiles === "left" ? "right" : "left";
@@ -9925,16 +10071,16 @@ const selectBoard = selectBoardRoot;
9925
10071
  const selectInputMode = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9926
10072
  selectSettingsRoot
9927
10073
  ], (settings)=>settings.inputMode);
9928
- const selectConfigId = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
10074
+ const selectGame = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9929
10075
  selectSettingsRoot
9930
- ], (settings)=>settings.configId);
10076
+ ], (settings)=>settings.game);
9931
10077
  const selectConfig = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9932
- selectConfigId,
10078
+ selectGame,
9933
10079
  selectLocale
9934
- ], _scrabble_solver_configs__WEBPACK_IMPORTED_MODULE_1__.getLocaleConfig);
9935
- const selectCellFilter = selectCellFilterRoot;
10080
+ ], _scrabble_solver_configs__WEBPACK_IMPORTED_MODULE_1__.getConfig);
10081
+ const selectFilteredCells = selectCellFilterRoot;
9936
10082
  const selectCellIsFiltered = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9937
- selectCellFilter,
10083
+ selectFilteredCells,
9938
10084
  selectPoint
9939
10085
  ], (cellFilter, { x , y })=>{
9940
10086
  return cellFilter.some((cell)=>cell.x === x && cell.y === y);
@@ -9965,7 +10111,7 @@ const selectSortedResults = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.cre
9965
10111
  const selectGroupedResults = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9966
10112
  selectSortedResults,
9967
10113
  selectResultsQuery,
9968
- selectCellFilter
10114
+ selectFilteredCells
9969
10115
  ], lib__WEBPACK_IMPORTED_MODULE_5__/* .groupResults */ .CU);
9970
10116
  const selectResults = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9971
10117
  selectGroupedResults
@@ -9978,9 +10124,9 @@ const selectResults = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSel
9978
10124
  const selectIsResultMatching = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
9979
10125
  selectResults,
9980
10126
  selectResultsQuery,
9981
- selectCellFilter,
10127
+ selectFilteredCells,
9982
10128
  selectResultIndex
9983
- ], (results, query, cellFilter, index)=>{
10129
+ ], (results, query, filteredCells, index)=>{
9984
10130
  if (!results) {
9985
10131
  return false;
9986
10132
  }
@@ -9989,8 +10135,8 @@ const selectIsResultMatching = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.
9989
10135
  if (!regExp.test(result.word)) {
9990
10136
  return false;
9991
10137
  }
9992
- if (cellFilter) {
9993
- return cellFilter.every(({ x , y })=>result.cells.some((cell)=>cell.x === x && cell.y === y));
10138
+ if (filteredCells) {
10139
+ return filteredCells.every(({ x , y })=>result.cells.some((cell)=>cell.x === x && cell.y === y));
9994
10140
  }
9995
10141
  return true;
9996
10142
  });
@@ -10038,7 +10184,7 @@ const selectTilePoints = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.create
10038
10184
  });
10039
10185
  const selectTranslations = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
10040
10186
  selectLocale
10041
- ], (locale)=>i18n__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .ZP[locale]);
10187
+ ], (locale)=>i18n__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z[locale]);
10042
10188
  const selectTranslation = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector)([
10043
10189
  selectTranslations,
10044
10190
  selectLocale,
@@ -10137,7 +10283,7 @@ const localStorageAutoGroupTiles = localStorage/* default.getAutoGroupTiles */.Z
10137
10283
  const isTouchScreen = typeof globalThis.matchMedia !== "undefined" && globalThis.matchMedia("(hover: none)").matches;
10138
10284
  const settingsInitialState = {
10139
10285
  autoGroupTiles: typeof localStorageAutoGroupTiles === "undefined" ? "left" : localStorageAutoGroupTiles,
10140
- configId: localStorage/* default.getConfigId */.Z.getConfigId() || build.scrabble.id,
10286
+ game: localStorage/* default.getGame */.Z.getGame() || types_build.Game.Scrabble,
10141
10287
  inputMode: localStorage/* default.getInputMode */.Z.getInputMode() || (isTouchScreen ? "touchscreen" : "keyboard"),
10142
10288
  locale: localStorage/* default.getLocale */.Z.getLocale() || (0,lib/* guessLocale */.sf)()
10143
10289
  };
@@ -10148,8 +10294,8 @@ const settingsInitialState = {
10148
10294
 
10149
10295
 
10150
10296
 
10151
- const { configId , locale } = slices_settingsInitialState;
10152
- const { boardHeight , boardWidth } = (0,build.getLocaleConfig)(configId, locale);
10297
+ const { game , locale } = slices_settingsInitialState;
10298
+ const { boardHeight , boardWidth } = (0,build.getConfig)(game, locale);
10153
10299
  const boardDefaultState = types_build.Board.create(boardWidth, boardHeight);
10154
10300
  const boardInitialState = localStorage/* default.getBoard */.Z.getBoard() || boardDefaultState;
10155
10301
  // const createOxyphenbutazone = () => {
@@ -10181,11 +10327,58 @@ const boardInitialState = localStorage/* default.getBoard */.Z.getBoard() || boa
10181
10327
  var toolkit_ = __webpack_require__(75184);
10182
10328
  // EXTERNAL MODULE: ../constants/build/index.js
10183
10329
  var constants_build = __webpack_require__(7618);
10330
+ ;// CONCATENATED MODULE: ./src/state/slices/settingsSlice.ts
10331
+
10332
+
10333
+ const settingsSlice = (0,toolkit_.createSlice)({
10334
+ initialState: slices_settingsInitialState,
10335
+ name: "settings",
10336
+ reducers: {
10337
+ changeAutoGroupTiles: (state, action)=>{
10338
+ const autoGroupTiles = action.payload;
10339
+ return {
10340
+ ...state,
10341
+ autoGroupTiles
10342
+ };
10343
+ },
10344
+ changeGame: (state, action)=>{
10345
+ const game = action.payload;
10346
+ return {
10347
+ ...state,
10348
+ game
10349
+ };
10350
+ },
10351
+ changeInputMode: (state, action)=>{
10352
+ const inputMode = action.payload;
10353
+ return {
10354
+ ...state,
10355
+ inputMode
10356
+ };
10357
+ },
10358
+ changeLocale: (state, action)=>{
10359
+ const locale = action.payload;
10360
+ return {
10361
+ ...state,
10362
+ locale
10363
+ };
10364
+ },
10365
+ init: (state, action)=>{
10366
+ return {
10367
+ ...state,
10368
+ ...action.payload
10369
+ };
10370
+ }
10371
+ }
10372
+ });
10373
+ /* harmony default export */ const slices_settingsSlice = (settingsSlice);
10374
+
10184
10375
  ;// CONCATENATED MODULE: ./src/state/slices/boardSlice.ts
10185
10376
 
10186
10377
 
10187
10378
 
10188
10379
 
10380
+
10381
+
10189
10382
  const boardSlice = (0,toolkit_.createSlice)({
10190
10383
  initialState: slices_boardInitialState,
10191
10384
  name: "board",
@@ -10225,9 +10418,6 @@ const boardSlice = (0,toolkit_.createSlice)({
10225
10418
  const board = action.payload;
10226
10419
  return board;
10227
10420
  },
10228
- reset: ()=>{
10229
- return boardDefaultState;
10230
- },
10231
10421
  toggleCellIsBlank: (state, action)=>{
10232
10422
  const newBoard = state.clone();
10233
10423
  const { x , y } = action.payload;
@@ -10243,6 +10433,19 @@ const boardSlice = (0,toolkit_.createSlice)({
10243
10433
  });
10244
10434
  return newBoard;
10245
10435
  }
10436
+ },
10437
+ extraReducers: {
10438
+ [slices_settingsSlice.actions.changeGame.type]: (state, action)=>{
10439
+ const game = action.payload;
10440
+ const config = Object.values(build.games).find((gameConfig)=>gameConfig.game === game);
10441
+ if (!config) {
10442
+ throw new Error(`Cannot find config for game "${game}"`);
10443
+ }
10444
+ if (state.rows.length !== config.boardHeight || state.rows[0].length !== config.boardWidth) {
10445
+ return types_build.Board.create(config.boardWidth, config.boardHeight);
10446
+ }
10447
+ return state;
10448
+ }
10246
10449
  }
10247
10450
  });
10248
10451
  /* harmony default export */ const slices_boardSlice = (boardSlice);
@@ -10466,51 +10669,6 @@ const resultsSlice = (0,toolkit_.createSlice)({
10466
10669
  });
10467
10670
  /* harmony default export */ const slices_resultsSlice = (resultsSlice);
10468
10671
 
10469
- ;// CONCATENATED MODULE: ./src/state/slices/settingsSlice.ts
10470
-
10471
-
10472
- const settingsSlice = (0,toolkit_.createSlice)({
10473
- initialState: slices_settingsInitialState,
10474
- name: "settings",
10475
- reducers: {
10476
- changeAutoGroupTiles: (state, action)=>{
10477
- const autoGroupTiles = action.payload;
10478
- return {
10479
- ...state,
10480
- autoGroupTiles
10481
- };
10482
- },
10483
- changeConfigId: (state, action)=>{
10484
- const configId = action.payload;
10485
- return {
10486
- ...state,
10487
- configId
10488
- };
10489
- },
10490
- changeInputMode: (state, action)=>{
10491
- const inputMode = action.payload;
10492
- return {
10493
- ...state,
10494
- inputMode
10495
- };
10496
- },
10497
- changeLocale: (state, action)=>{
10498
- const locale = action.payload;
10499
- return {
10500
- ...state,
10501
- locale
10502
- };
10503
- },
10504
- init: (state, action)=>{
10505
- return {
10506
- ...state,
10507
- ...action.payload
10508
- };
10509
- }
10510
- }
10511
- });
10512
- /* harmony default export */ const slices_settingsSlice = (settingsSlice);
10513
-
10514
10672
  ;// CONCATENATED MODULE: ./src/state/slices/solveInitialState.ts
10515
10673
 
10516
10674
  const solveInitialState = {
@@ -11100,6 +11258,9 @@ class Config {
11100
11258
  get boardWidth() {
11101
11259
  return this.config.boardWidth;
11102
11260
  }
11261
+ get game() {
11262
+ return this.config.game;
11263
+ }
11103
11264
  get locale() {
11104
11265
  return this.config.locale;
11105
11266
  }
@@ -11192,6 +11353,27 @@ class FinalPattern extends Pattern_1.default {
11192
11353
  exports["default"] = FinalPattern;
11193
11354
 
11194
11355
 
11356
+ /***/ }),
11357
+
11358
+ /***/ 32815:
11359
+ /***/ ((__unused_webpack_module, exports) => {
11360
+
11361
+ "use strict";
11362
+
11363
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
11364
+ exports.isGame = void 0;
11365
+ var Game;
11366
+ (function (Game) {
11367
+ Game["Literaki"] = "literaki";
11368
+ Game["Scrabble"] = "scrabble";
11369
+ Game["SuperScrabble"] = "super-scrabble";
11370
+ })(Game || (Game = {}));
11371
+ const games = Object.values(Game);
11372
+ const isGame = (locale) => games.includes(locale);
11373
+ exports.isGame = isGame;
11374
+ exports["default"] = Game;
11375
+
11376
+
11195
11377
  /***/ }),
11196
11378
 
11197
11379
  /***/ 49594:
@@ -11245,7 +11427,11 @@ exports["default"] = HorizontalPattern;
11245
11427
 
11246
11428
  Object.defineProperty(exports, "__esModule", ({ value: true }));
11247
11429
  exports.isLocale = void 0;
11248
- // eslint-disable-next-line no-shadow
11430
+ /**
11431
+ * Locales are defined using IETF language tags
11432
+ * @see https://en.wikipedia.org/wiki/IETF_language_tag
11433
+ * @see https://en.wikipedia.org/wiki/ISO_3166-1
11434
+ */
11249
11435
  var Locale;
11250
11436
  (function (Locale) {
11251
11437
  Locale["DE_DE"] = "de-DE";
@@ -11580,7 +11766,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
11580
11766
  return (mod && mod.__esModule) ? mod : { "default": mod };
11581
11767
  };
11582
11768
  Object.defineProperty(exports, "__esModule", ({ value: true }));
11583
- exports.WordDefinition = exports.WordBonus = exports.VerticalPattern = exports.isTileJson = exports.Tile = exports.Result = exports.Pattern = exports.isLocale = exports.Locale = exports.isObject = exports.isError = exports.HorizontalPattern = exports.FinalPattern = exports.Config = exports.CharacterBonus = exports.isCellJson = exports.Cell = exports.Bonus = exports.isBoardJson = exports.Board = void 0;
11769
+ exports.isObject = exports.isError = exports.WordDefinition = exports.WordBonus = exports.VerticalPattern = exports.isTileJson = exports.Tile = exports.Result = exports.Pattern = exports.isLocale = exports.Locale = exports.HorizontalPattern = exports.isGame = exports.Game = exports.FinalPattern = exports.Config = exports.CharacterBonus = exports.isCellJson = exports.Cell = exports.Bonus = exports.isBoardJson = exports.Board = void 0;
11584
11770
  var Board_1 = __webpack_require__(80559);
11585
11771
  Object.defineProperty(exports, "Board", ({ enumerable: true, get: function () { return __importDefault(Board_1).default; } }));
11586
11772
  var BoardJson_1 = __webpack_require__(46936);
@@ -11597,12 +11783,11 @@ var Config_1 = __webpack_require__(28433);
11597
11783
  Object.defineProperty(exports, "Config", ({ enumerable: true, get: function () { return __importDefault(Config_1).default; } }));
11598
11784
  var FinalPattern_1 = __webpack_require__(35905);
11599
11785
  Object.defineProperty(exports, "FinalPattern", ({ enumerable: true, get: function () { return __importDefault(FinalPattern_1).default; } }));
11786
+ var Game_1 = __webpack_require__(32815);
11787
+ Object.defineProperty(exports, "Game", ({ enumerable: true, get: function () { return __importDefault(Game_1).default; } }));
11788
+ Object.defineProperty(exports, "isGame", ({ enumerable: true, get: function () { return Game_1.isGame; } }));
11600
11789
  var HorizontalPattern_1 = __webpack_require__(49594);
11601
11790
  Object.defineProperty(exports, "HorizontalPattern", ({ enumerable: true, get: function () { return __importDefault(HorizontalPattern_1).default; } }));
11602
- var isError_1 = __webpack_require__(96255);
11603
- Object.defineProperty(exports, "isError", ({ enumerable: true, get: function () { return __importDefault(isError_1).default; } }));
11604
- var isObject_1 = __webpack_require__(24814);
11605
- Object.defineProperty(exports, "isObject", ({ enumerable: true, get: function () { return __importDefault(isObject_1).default; } }));
11606
11791
  var Locale_1 = __webpack_require__(26634);
11607
11792
  Object.defineProperty(exports, "Locale", ({ enumerable: true, get: function () { return __importDefault(Locale_1).default; } }));
11608
11793
  Object.defineProperty(exports, "isLocale", ({ enumerable: true, get: function () { return Locale_1.isLocale; } }));
@@ -11620,6 +11805,10 @@ var WordBonus_1 = __webpack_require__(58627);
11620
11805
  Object.defineProperty(exports, "WordBonus", ({ enumerable: true, get: function () { return __importDefault(WordBonus_1).default; } }));
11621
11806
  var WordDefinition_1 = __webpack_require__(31560);
11622
11807
  Object.defineProperty(exports, "WordDefinition", ({ enumerable: true, get: function () { return __importDefault(WordDefinition_1).default; } }));
11808
+ var isError_1 = __webpack_require__(96255);
11809
+ Object.defineProperty(exports, "isError", ({ enumerable: true, get: function () { return __importDefault(isError_1).default; } }));
11810
+ var isObject_1 = __webpack_require__(24814);
11811
+ Object.defineProperty(exports, "isObject", ({ enumerable: true, get: function () { return __importDefault(isObject_1).default; } }));
11623
11812
 
11624
11813
 
11625
11814
  /***/ }),