@scrabble-solver/scrabble-solver 2.9.0 → 2.9.2

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 (61) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +8 -8
  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/413.js +7 -3
  17. package/.next/server/chunks/44.js +895 -4
  18. package/.next/server/chunks/515.js +15 -6
  19. package/.next/server/chunks/865.js +230 -116
  20. package/.next/server/middleware-build-manifest.js +1 -1
  21. package/.next/server/pages/404.html +2 -2
  22. package/.next/server/pages/404.js.nft.json +1 -1
  23. package/.next/server/pages/500.html +2 -2
  24. package/.next/server/pages/_app.js.nft.json +1 -1
  25. package/.next/server/pages/_error.js.nft.json +1 -1
  26. package/.next/server/pages/api/dictionary/[locale]/[word].js +121 -65
  27. package/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -1
  28. package/.next/server/pages/api/dictionary/[locale].js +1 -1
  29. package/.next/server/pages/api/dictionary/[locale].js.nft.json +1 -1
  30. package/.next/server/pages/api/solve.js +1 -1
  31. package/.next/server/pages/api/solve.js.nft.json +1 -1
  32. package/.next/server/pages/api/verify.js +1 -1
  33. package/.next/server/pages/api/verify.js.nft.json +1 -1
  34. package/.next/server/pages/index.html +2 -2
  35. package/.next/server/pages/index.js +5 -1
  36. package/.next/server/pages/index.js.nft.json +1 -1
  37. package/.next/server/pages/index.json +1 -1
  38. package/.next/static/{BiJ0RS1mh1CdONVQg_p20 → Ntg-ilwD7GqTIFwRpSaTQ}/_buildManifest.js +1 -1
  39. package/.next/static/{BiJ0RS1mh1CdONVQg_p20 → Ntg-ilwD7GqTIFwRpSaTQ}/_ssgManifest.js +0 -0
  40. package/.next/static/chunks/317-5e5334962dd7c681.js +1 -0
  41. package/.next/static/chunks/pages/{_app-1878e12521f2d115.js → _app-183f598b1d4d480b.js} +1 -1
  42. package/.next/static/chunks/pages/{index-14d33636a0746c22.js → index-b1ffeaddd9fb64b5.js} +1 -1
  43. package/.next/static/css/e8de67ad5ea35427.css +1 -0
  44. package/.next/trace +52 -52
  45. package/LICENSE +1 -1
  46. package/package.json +11 -11
  47. package/src/components/Board/BoardPure.tsx +2 -7
  48. package/src/components/Board/components/Cell/Cell.module.scss +1 -1
  49. package/src/components/Board/components/Cell/Cell.tsx +4 -1
  50. package/src/components/Board/components/Cell/CellPure.tsx +12 -1
  51. package/src/components/Dictionary/Dictionary.module.scss +1 -0
  52. package/src/components/Dictionary/Dictionary.tsx +7 -2
  53. package/src/components/Splash/Splash.module.scss +1 -1
  54. package/src/i18n/en.json +2 -2
  55. package/src/pages/api/dictionary/[locale]/[word].ts +3 -1
  56. package/src/pages/index.tsx +6 -1
  57. package/src/service-worker/dictionaries/constants.ts +3 -1
  58. package/.next/server/chunks/452.js +0 -894
  59. package/.next/static/chunks/317-c5d262202c17d519.js +0 -1
  60. package/.next/static/css/9ac903004135f4b1.css +0 -1
  61. package/public/robots.txt +0 -4
@@ -26,6 +26,20 @@ module.exports = require("assert");
26
26
 
27
27
  /***/ }),
28
28
 
29
+ /***/ 22057:
30
+ /***/ ((module) => {
31
+
32
+ module.exports = require("constants");
33
+
34
+ /***/ }),
35
+
36
+ /***/ 6113:
37
+ /***/ ((module) => {
38
+
39
+ module.exports = require("crypto");
40
+
41
+ /***/ }),
42
+
29
43
  /***/ 82361:
30
44
  /***/ ((module) => {
31
45
 
@@ -68,6 +82,13 @@ module.exports = require("path");
68
82
 
69
83
  /***/ }),
70
84
 
85
+ /***/ 77282:
86
+ /***/ ((module) => {
87
+
88
+ module.exports = require("process");
89
+
90
+ /***/ }),
91
+
71
92
  /***/ 12781:
72
93
  /***/ ((module) => {
73
94
 
@@ -112,13 +133,16 @@ __webpack_require__.r(__webpack_exports__);
112
133
  /* harmony export */ });
113
134
  /* harmony import */ var _scrabble_solver_configs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27911);
114
135
  /* harmony import */ var _scrabble_solver_configs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_configs__WEBPACK_IMPORTED_MODULE_0__);
115
- /* harmony import */ var _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(52954);
116
- /* harmony import */ var _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_1__);
117
- /* harmony import */ var _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46452);
118
- /* harmony import */ var _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_types__WEBPACK_IMPORTED_MODULE_2__);
119
- /* harmony import */ var _scrabble_solver_word_definitions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98173);
120
- /* harmony import */ var _scrabble_solver_word_definitions__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_word_definitions__WEBPACK_IMPORTED_MODULE_3__);
121
- /* harmony import */ var api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(81025);
136
+ /* harmony import */ var _scrabble_solver_dictionaries__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(89044);
137
+ /* harmony import */ var _scrabble_solver_dictionaries__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_dictionaries__WEBPACK_IMPORTED_MODULE_1__);
138
+ /* harmony import */ var _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(52954);
139
+ /* harmony import */ var _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_2__);
140
+ /* harmony import */ var _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(46452);
141
+ /* harmony import */ var _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3__);
142
+ /* harmony import */ var _scrabble_solver_word_definitions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(98173);
143
+ /* harmony import */ var _scrabble_solver_word_definitions__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_word_definitions__WEBPACK_IMPORTED_MODULE_4__);
144
+ /* harmony import */ var api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(81025);
145
+
122
146
 
123
147
 
124
148
 
@@ -126,21 +150,22 @@ __webpack_require__.r(__webpack_exports__);
126
150
 
127
151
  const MAXIMUM_WORDS_COUNT = _scrabble_solver_configs__WEBPACK_IMPORTED_MODULE_0__.scrabble["en-US"].maximumCharactersCount;
128
152
  const dictionary = async (request, response)=>{
129
- const meta = (0,api__WEBPACK_IMPORTED_MODULE_4__/* .getServerLoggingData */ .X8)(request);
153
+ const meta = (0,api__WEBPACK_IMPORTED_MODULE_5__/* .getServerLoggingData */ .X8)(request);
130
154
  try {
131
155
  const { locale , words } = parseRequest(request);
132
- _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_1___default().info("dictionary - request", {
156
+ _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_2___default().info("dictionary - request", {
133
157
  meta,
134
158
  payload: {
135
159
  locale,
136
160
  words
137
161
  }
138
162
  });
139
- const results = await Promise.all(words.map((word)=>(0,_scrabble_solver_word_definitions__WEBPACK_IMPORTED_MODULE_3__.getWordDefinition)(locale, word)));
163
+ const trie = await _scrabble_solver_dictionaries__WEBPACK_IMPORTED_MODULE_1__.dictionaries.get(locale);
164
+ const results = await Promise.all(words.map((word)=>(0,_scrabble_solver_word_definitions__WEBPACK_IMPORTED_MODULE_4__.getWordDefinition)(locale, word, trie.has(word))));
140
165
  response.status(200).send(results.map((result)=>result.toJson()));
141
166
  } catch (error) {
142
167
  const message = error instanceof Error ? error.message : "Unknown error";
143
- _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_1___default().error("dictionary - error", {
168
+ _scrabble_solver_logger__WEBPACK_IMPORTED_MODULE_2___default().error("dictionary - error", {
144
169
  error,
145
170
  meta
146
171
  });
@@ -153,7 +178,7 @@ const dictionary = async (request, response)=>{
153
178
  };
154
179
  const parseRequest = (request)=>{
155
180
  const { locale , word } = request.query;
156
- if (!(0,_scrabble_solver_types__WEBPACK_IMPORTED_MODULE_2__.isLocale)(locale)) {
181
+ if (!(0,_scrabble_solver_types__WEBPACK_IMPORTED_MODULE_3__.isLocale)(locale)) {
157
182
  throw new Error('Invalid "locale" parameter');
158
183
  }
159
184
  if (typeof word !== "string" || word.length === 0) {
@@ -326,10 +351,10 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
326
351
  const types_1 = __webpack_require__(46452);
327
352
  const crawl_1 = __webpack_require__(66344);
328
353
  const parse_1 = __webpack_require__(74630);
329
- const getWordDefinition = async (locale, word) => {
354
+ const getWordDefinition = async (locale, word, isAllowed) => {
330
355
  const html = await (0, crawl_1.crawl)(locale, word);
331
- const { definitions, isAllowed } = (0, parse_1.parse)(locale, html);
332
- const wordDefinition = new types_1.WordDefinition({ definitions, isAllowed, word });
356
+ const { definitions, exists } = (0, parse_1.parse)(locale, html);
357
+ const wordDefinition = new types_1.WordDefinition({ definitions, exists, isAllowed, word });
333
358
  return wordDefinition;
334
359
  };
335
360
  exports["default"] = getWordDefinition;
@@ -399,7 +424,8 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
399
424
  const striptags_1 = __importDefault(__webpack_require__(37983));
400
425
  const EMPHASIS_TAGS = ['a', 'b', 'em', 'internalXref'];
401
426
  const normalizeHtmlTags = (definition) => (0, striptags_1.default)((0, striptags_1.default)(definition, EMPHASIS_TAGS), undefined, '"');
402
- const normalizeLineBreaks = (definition) => definition.replace(/[\r\n]/g, '');
427
+ const normalizeLineBreaks = (definition) => definition.replace(/\r\n/g, '\n');
428
+ const normalizeWhitespace = (definition) => definition.replace(/[ ]+/g, ' ');
403
429
  const normalizeQuotes = (definition) => definition.replace(/\."/g, '".');
404
430
  /**
405
431
  * `(1.2) definition` -> `definition`
@@ -419,6 +445,7 @@ const normalizers = [
419
445
  normalizeMarkers,
420
446
  normalizeQuotes,
421
447
  normalizeLineBreaks,
448
+ normalizeWhitespace,
422
449
  normalizeTrailingSymbols,
423
450
  normalizeLeadingSymbols,
424
451
  normalizeNonWords,
@@ -528,10 +555,10 @@ const parsePerLocale = {
528
555
  [types_1.Locale.PL_PL]: parsePolish_1.default,
529
556
  };
530
557
  const parse = (locale, html) => {
531
- const { definitions, isAllowed } = parsePerLocale[locale](html);
558
+ const { definitions, exists } = parsePerLocale[locale](html);
532
559
  return {
533
560
  definitions: (0, lib_1.unique)(definitions.map(lib_1.normalizeDefinition).filter(Boolean)),
534
- isAllowed,
561
+ exists,
535
562
  };
536
563
  };
537
564
  exports["default"] = parse;
@@ -540,23 +567,23 @@ exports["default"] = parse;
540
567
  /***/ }),
541
568
 
542
569
  /***/ 26519:
543
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
570
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
544
571
 
545
572
 
546
- var __importDefault = (this && this.__importDefault) || function (mod) {
547
- return (mod && mod.__esModule) ? mod : { "default": mod };
548
- };
549
573
  Object.defineProperty(exports, "__esModule", ({ value: true }));
550
- const cheerio_1 = __importDefault(__webpack_require__(85131));
574
+ const cheerio_1 = __webpack_require__(85131);
575
+ const DOES_NOT_EXIST_MESSAGE =
576
+ // eslint-disable-next-line max-len
577
+ "The word you've entered isn't in the dictionary. Click on a spelling suggestion below or try again using the search bar above.";
551
578
  const parseEnglish = (html) => {
552
- const $ = cheerio_1.default.load(html);
579
+ const $ = (0, cheerio_1.load)(html);
553
580
  $('strong.mw_t_bc').replaceWith(', ');
554
581
  $('.text-lowercase').remove();
555
582
  $('[id^=dictionary-entry]').find('.dtText > *:not(a)').remove();
556
583
  const $definitions = $('[id^=dictionary-entry]').find('.dtText, .cxl-ref');
557
584
  return {
558
- definitions: Array.from($definitions).map((definition) => $(definition).text()),
559
- isAllowed: $definitions.length > 0,
585
+ definitions: Array.from($definitions).map((definition) => $(definition).text().replace(/\n/g, '')),
586
+ exists: $('.spelling-suggestion-text').text().trim() !== DOES_NOT_EXIST_MESSAGE,
560
587
  };
561
588
  };
562
589
  exports["default"] = parseEnglish;
@@ -565,20 +592,17 @@ exports["default"] = parseEnglish;
565
592
  /***/ }),
566
593
 
567
594
  /***/ 51120:
568
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
595
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
569
596
 
570
597
 
571
- var __importDefault = (this && this.__importDefault) || function (mod) {
572
- return (mod && mod.__esModule) ? mod : { "default": mod };
573
- };
574
598
  Object.defineProperty(exports, "__esModule", ({ value: true }));
575
- const cheerio_1 = __importDefault(__webpack_require__(85131));
599
+ const cheerio_1 = __webpack_require__(85131);
576
600
  const parseFrench = (html) => {
577
- const $ = cheerio_1.default.load(html);
601
+ const $ = (0, cheerio_1.load)(html);
578
602
  const $definitions = $('.tlf_cdefinition');
579
603
  return {
580
604
  definitions: Array.from($definitions).map((definition) => $(definition).text()),
581
- isAllowed: $('#vitemselected span').length > 0,
605
+ exists: $('#vitemselected span').length > 0,
582
606
  };
583
607
  };
584
608
  exports["default"] = parseFrench;
@@ -587,28 +611,66 @@ exports["default"] = parseFrench;
587
611
  /***/ }),
588
612
 
589
613
  /***/ 29075:
590
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
614
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
591
615
 
592
616
 
593
- var __importDefault = (this && this.__importDefault) || function (mod) {
594
- return (mod && mod.__esModule) ? mod : { "default": mod };
595
- };
596
617
  Object.defineProperty(exports, "__esModule", ({ value: true }));
597
- const cheerio_1 = __importDefault(__webpack_require__(85131));
618
+ const cheerio_1 = __webpack_require__(85131);
598
619
  const parseGerman = (html) => {
599
- const $ = cheerio_1.default.load(html);
600
- const $meaningOverview = $('.bedeutungsuebersicht');
601
- let $definitions;
602
- if ($meaningOverview.length > 0) {
603
- $definitions = $('.bedeutungsuebersicht > ol > li > a');
604
- }
605
- else {
606
- $definitions = $('.dwdswb-lesart .dwdswb-definition');
620
+ const $ = (0, cheerio_1.load)(html);
621
+ const definitions = [parseBedeutungsubersicht, parseBedeutungen, parseBedeutung].reduce((results, parse) => (results.length === 0 ? parse($) : results), []);
622
+ const exists = Array.from($('.label-danger')).every((label) => $(label).text() !== 'Hinweis');
623
+ return { definitions, exists };
624
+ };
625
+ const parseBedeutungsubersicht = ($) => {
626
+ Array.from($('.bedeutungsuebersicht ol > li > a')).forEach((item) => {
627
+ $(item).text($(item).text().replace(/\n/g, ''));
628
+ });
629
+ Array.from($('.bedeutungsuebersicht ol > li > ol > li')).forEach((item) => {
630
+ const text = `\n${$(item).text().replace(/\n/g, '')}`;
631
+ const $text = $(`<div>${text}</div>`);
632
+ $(item).replaceWith($text);
633
+ });
634
+ Array.from($('.bedeutungsuebersicht ol > li > ol')).forEach((list) => {
635
+ const $list = $(list);
636
+ const html = $list.html() || '';
637
+ const $html = $(`<div>${html}</div>`);
638
+ const $prev = $list.prev('a');
639
+ if ($prev) {
640
+ $prev.append($html);
641
+ $(list).remove();
642
+ }
643
+ else {
644
+ $(list).replaceWith($html);
645
+ }
646
+ });
647
+ return parseDefinitions($, $('.bedeutungsuebersicht ol > li'));
648
+ };
649
+ const parseBedeutung = ($) => {
650
+ return parseDefinitions($, $('.dwdswb-lesart .dwdswb-definition-spezifizierung'));
651
+ };
652
+ const parseBedeutungen = ($) => {
653
+ const definitions = parseDefinitions($, $('.dwdswb-lesart .dwdswb-definition'));
654
+ if (definitions.length > 0) {
655
+ return definitions;
607
656
  }
608
- return {
609
- definitions: Array.from($definitions).map((definition) => $(definition).text().replace('/\n/', '')),
610
- isAllowed: $definitions.length > 0,
611
- };
657
+ const $references = $('.dwdswb-lesart .dwdswb-verweis');
658
+ const references = Array.from($references).reduce((result, reference) => {
659
+ const html = reference.attribs['data-content'] || '<span />';
660
+ const values = $(html)
661
+ .text()
662
+ .split(';')
663
+ .map((value) => value.trim());
664
+ return result.concat(values);
665
+ }, []);
666
+ return references;
667
+ };
668
+ const parseDefinitions = ($, $definitions) => {
669
+ return Array.from($definitions).map((definition) => $(definition)
670
+ .text()
671
+ .replace(/[ ]+/g, ' ')
672
+ .replace(/[ ]\n/g, '\n')
673
+ .replace(/^[0-9]+\.\s/g, ''));
612
674
  };
613
675
  exports["default"] = parseGerman;
614
676
 
@@ -616,22 +678,19 @@ exports["default"] = parseGerman;
616
678
  /***/ }),
617
679
 
618
680
  /***/ 92198:
619
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
681
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
620
682
 
621
683
 
622
- var __importDefault = (this && this.__importDefault) || function (mod) {
623
- return (mod && mod.__esModule) ? mod : { "default": mod };
624
- };
625
684
  Object.defineProperty(exports, "__esModule", ({ value: true }));
626
- const cheerio_1 = __importDefault(__webpack_require__(85131));
685
+ const cheerio_1 = __webpack_require__(85131);
627
686
  const parsePolish = (html) => {
628
- const $ = cheerio_1.default.load(html);
687
+ const $ = (0, cheerio_1.load)(html);
629
688
  const $header = $($('h1')[0]);
630
689
  const $isAllowed = $header.next();
631
690
  const $definitions = $header.next().next().next().next();
632
691
  return {
633
692
  definitions: $definitions.text().trim().split(/\d+\./),
634
- isAllowed: $isAllowed.text().trim().indexOf('dopuszczalne w grach') >= 0,
693
+ exists: $isAllowed.text().trim().indexOf('dopuszczalne w grach') >= 0,
635
694
  };
636
695
  };
637
696
  exports["default"] = parsePolish;
@@ -640,16 +699,13 @@ exports["default"] = parsePolish;
640
699
  /***/ }),
641
700
 
642
701
  /***/ 22292:
643
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
702
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
644
703
 
645
704
 
646
- var __importDefault = (this && this.__importDefault) || function (mod) {
647
- return (mod && mod.__esModule) ? mod : { "default": mod };
648
- };
649
705
  Object.defineProperty(exports, "__esModule", ({ value: true }));
650
- const cheerio_1 = __importDefault(__webpack_require__(85131));
706
+ const cheerio_1 = __webpack_require__(85131);
651
707
  const parseSpanish = (html) => {
652
- const $ = cheerio_1.default.load(html);
708
+ const $ = (0, cheerio_1.load)(html);
653
709
  $('.verdBold14 + .gris11 + .gris13').remove();
654
710
  $('br + .gris13').remove();
655
711
  $('.grisItalic13 + .gris13').remove();
@@ -670,7 +726,7 @@ const parseSpanish = (html) => {
670
726
  .filter(Boolean)
671
727
  .map((definition) => definition.replace(/\s+\.$/g, ''))
672
728
  .map((definition) => (definition.endsWith('.') ? definition : `${definition}.`)),
673
- isAllowed: definitions.length > 0,
729
+ exists: $('.wrapper > p > strong').text() !== 'No se ha encontrado la palabra exacta',
674
730
  };
675
731
  };
676
732
  exports["default"] = parseSpanish;
@@ -685,7 +741,7 @@ exports["default"] = parseSpanish;
685
741
  var __webpack_require__ = require("../../../../webpack-api-runtime.js");
686
742
  __webpack_require__.C(exports);
687
743
  var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
688
- var __webpack_exports__ = __webpack_require__.X(0, [50,865,939,452,911], () => (__webpack_exec__(15548)));
744
+ var __webpack_exports__ = __webpack_require__.X(0, [50,429,865,939,44,911], () => (__webpack_exec__(15548)));
689
745
  module.exports = __webpack_exports__;
690
746
 
691
747
  })();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../webpack-api-runtime.js","../../../../chunks/50.js","../../../../chunks/865.js","../../../../chunks/939.js","../../../../chunks/452.js","../../../../chunks/911.js","../../../../../package.json"]}
1
+ {"version":1,"files":["../../../../webpack-api-runtime.js","../../../../chunks/50.js","../../../../chunks/429.js","../../../../chunks/865.js","../../../../chunks/939.js","../../../../chunks/44.js","../../../../chunks/911.js","../../../../../package.json"]}
@@ -194,7 +194,7 @@ const config = {
194
194
  var __webpack_require__ = require("../../../webpack-api-runtime.js");
195
195
  __webpack_require__.C(exports);
196
196
  var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
197
- var __webpack_exports__ = __webpack_require__.X(0, [50,429,939,452,44], () => (__webpack_exec__(31985)));
197
+ var __webpack_exports__ = __webpack_require__.X(0, [50,429,939,44], () => (__webpack_exec__(31985)));
198
198
  module.exports = __webpack_exports__;
199
199
 
200
200
  })();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../webpack-api-runtime.js","../../../chunks/50.js","../../../chunks/429.js","../../../chunks/939.js","../../../chunks/452.js","../../../chunks/44.js","../../../../package.json"]}
1
+ {"version":1,"files":["../../../webpack-api-runtime.js","../../../chunks/50.js","../../../chunks/429.js","../../../chunks/939.js","../../../chunks/44.js","../../../../package.json"]}
@@ -937,7 +937,7 @@ exports["default"] = solve;
937
937
  var __webpack_require__ = require("../../webpack-api-runtime.js");
938
938
  __webpack_require__.C(exports);
939
939
  var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
940
- var __webpack_exports__ = __webpack_require__.X(0, [50,429,939,452,911,44], () => (__webpack_exec__(62316)));
940
+ var __webpack_exports__ = __webpack_require__.X(0, [50,429,939,44,911], () => (__webpack_exec__(62316)));
941
941
  module.exports = __webpack_exports__;
942
942
 
943
943
  })();
@@ -1 +1 @@
1
- {"version":1,"files":["../../webpack-api-runtime.js","../../chunks/50.js","../../chunks/429.js","../../chunks/939.js","../../chunks/452.js","../../chunks/911.js","../../chunks/44.js","../../../package.json"]}
1
+ {"version":1,"files":["../../webpack-api-runtime.js","../../chunks/50.js","../../chunks/429.js","../../chunks/939.js","../../chunks/44.js","../../chunks/911.js","../../../package.json"]}
@@ -211,7 +211,7 @@ const parseRequest = (request)=>{
211
211
  var __webpack_require__ = require("../../webpack-api-runtime.js");
212
212
  __webpack_require__.C(exports);
213
213
  var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
214
- var __webpack_exports__ = __webpack_require__.X(0, [50,429,939,452,911,44], () => (__webpack_exec__(21623)));
214
+ var __webpack_exports__ = __webpack_require__.X(0, [50,429,939,44,911], () => (__webpack_exec__(21623)));
215
215
  module.exports = __webpack_exports__;
216
216
 
217
217
  })();
@@ -1 +1 @@
1
- {"version":1,"files":["../../webpack-api-runtime.js","../../chunks/50.js","../../chunks/429.js","../../chunks/939.js","../../chunks/452.js","../../chunks/911.js","../../chunks/44.js","../../../package.json"]}
1
+ {"version":1,"files":["../../webpack-api-runtime.js","../../chunks/50.js","../../chunks/429.js","../../chunks/939.js","../../chunks/44.js","../../chunks/911.js","../../../package.json"]}
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html lang="en"><head><title>Scrabble Solver 2 by Kamil Mielnik</title><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - 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 &amp; Spanish."/><meta name="keywords" content="Scrabble,Solver,Open-source,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - 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 &amp; Spanish."/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - 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 &amp; Spanish."/><meta name="next-head-count" content="15"/><link crossorigin="anonymous" href="https://fonts.gstatic.com" rel="preconnect"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/ad2a08918868cad8.css" as="style"/><link rel="stylesheet" href="/_next/static/css/ad2a08918868cad8.css" data-n-g=""/><link rel="preload" href="/_next/static/css/9ac903004135f4b1.css" as="style"/><link rel="stylesheet" href="/_next/static/css/9ac903004135f4b1.css" data-n-p=""/><link rel="preload" href="/_next/static/css/751e8a14776d05d8.css" as="style"/><link rel="stylesheet" href="/_next/static/css/751e8a14776d05d8.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-5752944655d749a0.js" defer=""></script><script src="/_next/static/chunks/framework-4556c45dd113b893.js" defer=""></script><script src="/_next/static/chunks/main-a75cf611e061d8f8.js" defer=""></script><script src="/_next/static/chunks/pages/_app-1878e12521f2d115.js" defer=""></script><script src="/_next/static/chunks/546-447e243fc9de2c59.js" defer=""></script><script src="/_next/static/chunks/317-c5d262202c17d519.js" defer=""></script><script src="/_next/static/chunks/pages/index-14d33636a0746c22.js" defer=""></script><script src="/_next/static/BiJ0RS1mh1CdONVQg_p20/_buildManifest.js" defer=""></script><script src="/_next/static/BiJ0RS1mh1CdONVQg_p20/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="font-size:0">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 &amp; Spanish. Source code is available on GitHub - contributions are welcome!</p><div class="index_index__5hyIO"><div class="index_nav__FjsLl"><div class="index_navLogo__dBrd4"><a class="index_logoContainer___rrXU" href="/" title="v2.8.11"><svg class="index_logo__IeyQD" viewBox="0 0 682 166" xmlns="http://www.w3.org/2000/svg"><style type="text/css">@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&family=Open+Sans:wght@400;700&family=Roboto+Mono&display=swap');
1
+ <!DOCTYPE html><html lang="en"><head><title>Scrabble Solver 2 by Kamil Mielnik</title><meta charSet="utf-8"/><meta name="author" content="Kamil Mielnik"/><meta name="description" content="Scrabble Solver 2 - 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 &amp; Spanish."/><meta name="keywords" content="Scrabble,Solver,Open-source,Finder,Cheating,Literaki,Word,English,Français,Deutsch,Polski,Español,SOWPODS,TWL06,SJP,FISE-2017,FISE-2,CNRTL,Kamil Mielnik"/><meta name="robots" content="index, follow, notranslate, noimageindex"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="Scrabble Solver 2 - 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 &amp; Spanish."/><meta property="og:type" content="website"/><meta property="og:url" content="https://scrabble-solver.org"/><meta property="og:image" content="https://scrabble-solver.org/og.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Scrabble Solver 2 - 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 &amp; Spanish."/><meta name="next-head-count" content="15"/><link crossorigin="anonymous" href="https://fonts.gstatic.com" rel="preconnect"/><link rel="apple-touch-icon-precomposed" sizes="57x57" href="icons/apple-touch-icon-57x57.png"/><link rel="apple-touch-icon-precomposed" sizes="114x114" href="icons/apple-touch-icon-114x114.png"/><link rel="apple-touch-icon-precomposed" sizes="72x72" href="icons/apple-touch-icon-72x72.png"/><link rel="apple-touch-icon-precomposed" sizes="144x144" href="icons/apple-touch-icon-144x144.png"/><link rel="apple-touch-icon-precomposed" sizes="60x60" href="icons/apple-touch-icon-60x60.png"/><link rel="apple-touch-icon-precomposed" sizes="120x120" href="icons/apple-touch-icon-120x120.png"/><link rel="apple-touch-icon-precomposed" sizes="76x76" href="icons/apple-touch-icon-76x76.png"/><link rel="apple-touch-icon-precomposed" sizes="152x152" href="icons/apple-touch-icon-152x152.png"/><link rel="icon" type="image/png" href="icons/favicon-196x196.png" sizes="196x196"/><link rel="icon" type="image/png" href="icons/favicon-96x96.png" sizes="96x96"/><link rel="icon" type="image/png" href="icons/favicon-32x32.png" sizes="32x32"/><link rel="icon" type="image/png" href="icons/favicon-16x16.png" sizes="16x16"/><link rel="icon" type="image/png" href="icons/favicon-128.png" sizes="128x128"/><meta name="application-name" content="Scrabble Solver"/><meta name="msapplication-TileColor" content="#EFE3AE"/><meta name="msapplication-TileImage" content="icons/mstile-144x144.png"/><meta name="msapplication-square70x70logo" content="icons/mstile-70x70.png"/><meta name="msapplication-square150x150logo" content="icons/mstile-150x150.png"/><meta name="msapplication-wide310x150logo" content="icons/mstile-310x150.png"/><meta name="msapplication-square310x310logo" content="icons/mstile-310x310.png"/><link rel="preload" href="/_next/static/css/ad2a08918868cad8.css" as="style"/><link rel="stylesheet" href="/_next/static/css/ad2a08918868cad8.css" data-n-g=""/><link rel="preload" href="/_next/static/css/e8de67ad5ea35427.css" as="style"/><link rel="stylesheet" href="/_next/static/css/e8de67ad5ea35427.css" data-n-p=""/><link rel="preload" href="/_next/static/css/751e8a14776d05d8.css" as="style"/><link rel="stylesheet" href="/_next/static/css/751e8a14776d05d8.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-5752944655d749a0.js" defer=""></script><script src="/_next/static/chunks/framework-4556c45dd113b893.js" defer=""></script><script src="/_next/static/chunks/main-a75cf611e061d8f8.js" defer=""></script><script src="/_next/static/chunks/pages/_app-183f598b1d4d480b.js" defer=""></script><script src="/_next/static/chunks/546-447e243fc9de2c59.js" defer=""></script><script src="/_next/static/chunks/317-5e5334962dd7c681.js" defer=""></script><script src="/_next/static/chunks/pages/index-b1ffeaddd9fb64b5.js" defer=""></script><script src="/_next/static/Ntg-ilwD7GqTIFwRpSaTQ/_buildManifest.js" defer=""></script><script src="/_next/static/Ntg-ilwD7GqTIFwRpSaTQ/_ssgManifest.js" defer=""></script></head><body><div id="__next"><p style="font-size:0">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 &amp; Spanish. Source code is available on GitHub - contributions are welcome!</p><div class="index_index__5hyIO"><div class="index_nav__FjsLl"><div class="index_navLogo__dBrd4"><a class="index_logoContainer___rrXU" href="/" title="v2.9.1"><svg class="index_logo__IeyQD" viewBox="0 0 682 166" xmlns="http://www.w3.org/2000/svg"><style type="text/css">@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&family=Open+Sans:wght@400;700&family=Roboto+Mono&display=swap');
2
2
 
3
3
  text {
4
4
  font-family: 'Open Sans';
@@ -10,4 +10,4 @@ text {
10
10
 
11
11
  text {
12
12
  font-family: 'Open Sans';
13
- }</style><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 40, 40)"><rect fill="#efe3ae" height="80" width="80" x="0" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="40" y="40">S</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 126, 40)"><rect fill="#c7d8f9" height="80" width="80" x="86" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="126" y="40">C</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 212, 40)"><rect fill="#efe3ae" height="80" width="80" x="172" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="212" y="40">R</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 298, 40)"><rect fill="#efe3ae" height="80" width="80" x="258" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="298" y="40">A</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 384, 40)"><rect fill="#c7d8f9" height="80" width="80" x="344" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="384" y="40">B</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 470, 40)"><rect fill="#c7d8f9" height="80" width="80" x="430" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="470" y="40">B</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 556, 40)"><rect fill="#efe3ae" height="80" width="80" x="516" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="556" y="40">L</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 642, 40)"><rect fill="#efe3ae" height="80" width="80" x="602" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="642" y="40">E</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 40, 40)"><rect fill="#efe3ae" height="80" width="80" x="0" y="86"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="40" y="126">S</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 126, 40)"><rect fill="#efe3ae" height="80" width="80" x="86" y="86"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="126" y="126">O</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 212, 40)"><rect fill="#efe3ae" height="80" width="80" x="172" y="86"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="212" y="126">L</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 298, 40)"><rect fill="#f7c2aa" height="80" width="80" x="258" y="86"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="298" y="126">V</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 384, 40)"><rect fill="#efe3ae" height="80" width="80" x="344" y="86"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="384" y="126">E</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 470, 40)"><rect fill="#efe3ae" height="80" width="80" x="430" y="86"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="470" y="126">R</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 642, 40)"><rect fill="#bae3ba" height="80" width="80" x="602" y="86"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="642" y="126">2</text></g></svg></div><h1 class="Splash_author__0gDgp">by Kamil Mielnik</h1></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"version":"v2.8.11"},"__N_SSG":true},"page":"/","query":{},"buildId":"BiJ0RS1mh1CdONVQg_p20","isFallback":false,"gsp":true,"scriptLoader":[]}</script></body></html>
13
+ }</style><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 40, 40)"><rect fill="#efe3ae" height="80" width="80" x="0" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="40" y="40">S</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 126, 40)"><rect fill="#c7d8f9" height="80" width="80" x="86" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="126" y="40">C</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 212, 40)"><rect fill="#efe3ae" height="80" width="80" x="172" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="212" y="40">R</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 298, 40)"><rect fill="#efe3ae" height="80" width="80" x="258" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="298" y="40">A</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 384, 40)"><rect fill="#c7d8f9" height="80" width="80" x="344" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="384" y="40">B</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 470, 40)"><rect fill="#c7d8f9" height="80" width="80" x="430" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="470" y="40">B</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 556, 40)"><rect fill="#efe3ae" height="80" width="80" x="516" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="556" y="40">L</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 642, 40)"><rect fill="#efe3ae" height="80" width="80" x="602" y="0"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="642" y="40">E</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 40, 40)"><rect fill="#efe3ae" height="80" width="80" x="0" y="86"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="40" y="126">S</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 126, 40)"><rect fill="#efe3ae" height="80" width="80" x="86" y="86"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="126" y="126">O</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 212, 40)"><rect fill="#efe3ae" height="80" width="80" x="172" y="86"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="212" y="126">L</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 298, 40)"><rect fill="#f7c2aa" height="80" width="80" x="258" y="86"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="298" y="126">V</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 384, 40)"><rect fill="#efe3ae" height="80" width="80" x="344" y="86"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="384" y="126">E</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 470, 40)"><rect fill="#efe3ae" height="80" width="80" x="430" y="86"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="470" y="126">R</text></g><g class="PlainTiles_tile__4eIjX" transform="rotate(0, 642, 40)"><rect fill="#bae3ba" height="80" width="80" x="602" y="86"></rect><text dominant-baseline="central" font-family="Open Sans" font-size="48" font-weight="bold" text-anchor="middle" x="642" y="126">2</text></g></svg></div><h1 class="Splash_author__0gDgp">by Kamil Mielnik</h1></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"version":"v2.9.1"},"__N_SSG":true},"page":"/","query":{},"buildId":"Ntg-ilwD7GqTIFwRpSaTQ","isFallback":false,"gsp":true,"scriptLoader":[]}</script></body></html>
@@ -95,7 +95,8 @@ const Index = ({ version })=>{
95
95
  const [resultsContainerRef, { height: resultsContainerHeight , width: resultsContainerWidth }] = (0,react_use__WEBPACK_IMPORTED_MODULE_7__.useMeasure)();
96
96
  const config = (0,state__WEBPACK_IMPORTED_MODULE_13__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_13__/* .selectConfig */ .$o);
97
97
  const cellSize = (0,lib__WEBPACK_IMPORTED_MODULE_10__/* .getCellSize */ .Dz)(config, contentWidth - resultsContainerWidth, contentHeight);
98
- const isInitialized = contentWidth > 0 && boardHeight > 0 && resultsContainerWidth > 0;
98
+ const isInitializedInitial = contentWidth > 0 && boardHeight > 0 && resultsContainerWidth > 0;
99
+ const { 0: isInitialized , 1: setIsInitialized } = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(isInitializedInitial);
99
100
  const resultsHeight = boardHeight - parameters__WEBPACK_IMPORTED_MODULE_11__/* .DICTIONARY_HEIGHT */ .n6 - (isTablet ? parameters__WEBPACK_IMPORTED_MODULE_11__/* .COMPONENTS_SPACING_MOBILE */ .Sg : parameters__WEBPACK_IMPORTED_MODULE_11__/* .COMPONENTS_SPACING */ .tr);
100
101
  const handleClear = ()=>{
101
102
  dispatch((0,state__WEBPACK_IMPORTED_MODULE_13__/* .reset */ .mc)());
@@ -113,6 +114,9 @@ const Index = ({ version })=>{
113
114
  (0,hooks__WEBPACK_IMPORTED_MODULE_9__/* .useLocalStorage */ ._)();
114
115
  (0,react_use__WEBPACK_IMPORTED_MODULE_7__.useEffectOnce)(()=>{
115
116
  dispatch((0,state__WEBPACK_IMPORTED_MODULE_13__/* .initialize */ .j2)());
117
+ setTimeout(()=>{
118
+ setIsInitialized(true);
119
+ }, 100);
116
120
  });
117
121
  (0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(()=>{
118
122
  if (true) {