@scrabble-solver/scrabble-solver 2.8.9 → 2.8.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +10 -10
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/eslint/.cache_8dgz12 +1 -1
- package/.next/cache/next-server.js.nft.json +1 -1
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/routes-manifest.json +1 -1
- package/.next/server/chunks/413.js +181 -39
- package/.next/server/chunks/429.js +2 -13
- package/.next/server/chunks/515.js +408 -227
- package/.next/server/chunks/911.js +25 -3
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +2 -2
- package/.next/server/pages/404.js.nft.json +1 -1
- package/.next/server/pages/500.html +2 -2
- package/.next/server/pages/_app.js.nft.json +1 -1
- package/.next/server/pages/_document.js.nft.json +1 -1
- package/.next/server/pages/_error.js.nft.json +1 -1
- package/.next/server/pages/api/solve.js +52 -19
- package/.next/server/pages/index.html +3 -3
- package/.next/server/pages/index.js +1 -1
- package/.next/server/pages/index.js.nft.json +1 -1
- package/.next/server/pages/index.json +1 -1
- package/.next/static/A8A_Lmg8cM-Bkf-Jo1CLh/_buildManifest.js +1 -0
- package/.next/static/{yCxjzzYpw5JjJE53PO_s6 → A8A_Lmg8cM-Bkf-Jo1CLh}/_ssgManifest.js +0 -0
- package/.next/static/chunks/317-95ab9051449362fa.js +1 -0
- package/.next/static/chunks/758-eff80059a1365d5d.js +1 -0
- package/.next/static/chunks/pages/_app-0e358b5622cf9e66.js +1 -0
- package/.next/static/chunks/pages/index-0cc5e6eda5adac73.js +1 -0
- package/.next/static/css/9ac903004135f4b1.css +1 -0
- package/.next/trace +42 -42
- package/package.json +12 -12
- package/src/components/Badge/Badge.module.scss +1 -1
- package/src/components/Board/Board.tsx +4 -2
- package/src/components/Board/BoardPure.tsx +25 -5
- package/src/components/Board/hooks/useGrid.ts +212 -91
- package/src/components/Dictionary/Dictionary.tsx +8 -1
- package/src/components/Rack/Rack.tsx +51 -11
- package/src/components/Rack/RackTile.tsx +33 -16
- package/src/components/Results/Results.tsx +19 -3
- package/src/components/SquareButton/Link.tsx +1 -1
- package/src/components/Tile/Tile.module.scss +4 -0
- package/src/components/Tile/Tile.tsx +13 -4
- package/src/components/Tile/TilePure.tsx +3 -4
- package/src/lib/extractCharacters.ts +26 -0
- package/src/lib/extractInputValue.ts +17 -0
- package/src/lib/index.ts +2 -0
- package/src/lib/isCtrl.ts +1 -1
- package/src/lib/memoize.ts +15 -1
- package/src/pages/api/solve.ts +1 -1
- package/src/sdk/fetchJson.ts +36 -0
- package/src/sdk/findWordDefinitions.ts +4 -3
- package/src/sdk/solve.ts +8 -7
- package/src/sdk/verify.ts +5 -6
- package/src/state/sagas.ts +3 -3
- package/src/state/selectors.ts +9 -1
- package/src/state/slices/dictionaryInitialState.ts +10 -2
- package/src/state/slices/dictionarySlice.ts +10 -16
- package/src/state/slices/rackSlice.ts +7 -0
- package/src/state/slices/solveInitialState.ts +14 -2
- package/src/state/slices/solveSlice.ts +7 -4
- package/src/types/index.ts +2 -0
- package/.next/static/chunks/317-a33dd38e9b9a17ed.js +0 -1
- package/.next/static/chunks/758-f333b1dcdb941547.js +0 -1
- package/.next/static/chunks/pages/_app-f8f360878e1c2aff.js +0 -1
- package/.next/static/chunks/pages/index-ecea697d3e5d8a6f.js +0 -1
- package/.next/static/css/64dc2ce1811912f1.css +0 -1
- package/.next/static/yCxjzzYpw5JjJE53PO_s6/_buildManifest.js +0 -1
|
@@ -540,18 +540,20 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
|
|
|
540
540
|
const Board = ({ cellSize , className , innerRef })=>{
|
|
541
541
|
const rows = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectRowsWithCandidate */ .ZA);
|
|
542
542
|
const board = (0,state__WEBPACK_IMPORTED_MODULE_1__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_1__/* .selectBoard */ .ZO);
|
|
543
|
-
const [{
|
|
543
|
+
const [{ direction , refs }, { onChange , onDirectionToggle , onFocus , onKeyDown , onPaste }] = (0,_hooks__WEBPACK_IMPORTED_MODULE_3__/* .useGrid */ .N)(rows);
|
|
544
544
|
return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_BoardPure__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
|
|
545
545
|
className: className,
|
|
546
546
|
cellSize: cellSize,
|
|
547
547
|
center: board.center,
|
|
548
|
+
direction: direction,
|
|
548
549
|
innerRef: innerRef,
|
|
549
|
-
lastDirection: lastDirection,
|
|
550
550
|
refs: refs,
|
|
551
551
|
rows: rows,
|
|
552
|
+
onChange: onChange,
|
|
552
553
|
onDirectionToggle: onDirectionToggle,
|
|
553
554
|
onFocus: onFocus,
|
|
554
|
-
onKeyDown: onKeyDown
|
|
555
|
+
onKeyDown: onKeyDown,
|
|
556
|
+
onPaste: onPaste
|
|
555
557
|
});
|
|
556
558
|
};
|
|
557
559
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Board);
|
|
@@ -585,16 +587,18 @@ _components__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then
|
|
|
585
587
|
|
|
586
588
|
|
|
587
589
|
|
|
588
|
-
const BoardPure = ({ className , cellSize , center ,
|
|
590
|
+
const BoardPure = ({ className , cellSize , center , direction , innerRef , refs , rows , onChange , onDirectionToggle , onFocus , onKeyDown , onPaste , })=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
|
|
589
591
|
className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Board_module_scss__WEBPACK_IMPORTED_MODULE_4___default().board), className),
|
|
590
592
|
ref: innerRef,
|
|
593
|
+
onChange: onChange,
|
|
591
594
|
onKeyDown: onKeyDown,
|
|
595
|
+
onPaste: onPaste,
|
|
592
596
|
children: rows.map((cells, y)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
|
|
593
597
|
className: (_Board_module_scss__WEBPACK_IMPORTED_MODULE_4___default().row),
|
|
594
598
|
children: cells.map((cell, x)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components__WEBPACK_IMPORTED_MODULE_3__/* .Cell */ .b, {
|
|
595
599
|
className: (_Board_module_scss__WEBPACK_IMPORTED_MODULE_4___default().cell),
|
|
596
600
|
cell: cell,
|
|
597
|
-
direction:
|
|
601
|
+
direction: direction,
|
|
598
602
|
inputRef: refs[y][x],
|
|
599
603
|
isCenter: center.x === x && center.y === y,
|
|
600
604
|
size: cellSize,
|
|
@@ -666,7 +670,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
|
|
|
666
670
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
|
|
667
671
|
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
|
|
668
672
|
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
|
|
669
|
-
/* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
|
|
673
|
+
/* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75558);
|
|
670
674
|
/* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(51413);
|
|
671
675
|
/* harmony import */ var _CellPure__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(80640);
|
|
672
676
|
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_5__, _CellPure__WEBPACK_IMPORTED_MODULE_6__]);
|
|
@@ -978,17 +982,19 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
|
|
|
978
982
|
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
979
983
|
/* harmony export */ });
|
|
980
984
|
/* harmony import */ var _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7618);
|
|
981
|
-
/* harmony import */ var
|
|
982
|
-
/* harmony import */ var
|
|
983
|
-
/* harmony import */ var
|
|
984
|
-
/* harmony import */ var
|
|
985
|
-
/* harmony import */ var
|
|
986
|
-
/* harmony import */ var
|
|
987
|
-
/* harmony import */ var
|
|
988
|
-
/* harmony import */ var
|
|
989
|
-
/* harmony import */ var
|
|
990
|
-
var
|
|
991
|
-
|
|
985
|
+
/* harmony import */ var _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34046);
|
|
986
|
+
/* harmony import */ var _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_scrabble_solver_types__WEBPACK_IMPORTED_MODULE_1__);
|
|
987
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
|
|
988
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
|
|
989
|
+
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
|
|
990
|
+
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
|
|
991
|
+
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69755);
|
|
992
|
+
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_4__);
|
|
993
|
+
/* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(75558);
|
|
994
|
+
/* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(51413);
|
|
995
|
+
/* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(95137);
|
|
996
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_6__]);
|
|
997
|
+
state__WEBPACK_IMPORTED_MODULE_6__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
992
998
|
/* eslint-disable max-lines, max-statements */
|
|
993
999
|
|
|
994
1000
|
|
|
@@ -996,22 +1002,24 @@ state__WEBPACK_IMPORTED_MODULE_5__ = (__webpack_async_dependencies__.then ? (awa
|
|
|
996
1002
|
|
|
997
1003
|
|
|
998
1004
|
|
|
1005
|
+
|
|
1006
|
+
const toggleDirection = (direction)=>direction === "vertical" ? "horizontal" : "vertical";
|
|
999
1007
|
const useGrid = (rows)=>{
|
|
1000
1008
|
const height = rows.length;
|
|
1001
1009
|
const width = rows[0].length;
|
|
1002
|
-
const dispatch = (0,
|
|
1003
|
-
const config = (0,
|
|
1004
|
-
const refs = (0,
|
|
1010
|
+
const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
|
|
1011
|
+
const config = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_6__/* .selectConfig */ .$o);
|
|
1012
|
+
const refs = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>(0,lib__WEBPACK_IMPORTED_MODULE_5__/* .createGridOf */ .DI)(width, height, ()=>(0,react__WEBPACK_IMPORTED_MODULE_2__.createRef)()), [
|
|
1005
1013
|
width,
|
|
1006
1014
|
height
|
|
1007
1015
|
]);
|
|
1008
|
-
const activeIndexRef = (0,
|
|
1016
|
+
const activeIndexRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)({
|
|
1009
1017
|
x: 0,
|
|
1010
1018
|
y: 0
|
|
1011
1019
|
});
|
|
1012
|
-
const { 0:
|
|
1013
|
-
const
|
|
1014
|
-
const changeActiveIndex = (0,
|
|
1020
|
+
const { 0: direction , 1: setLastDirection } = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)("horizontal");
|
|
1021
|
+
const directionRef = (0,react_use__WEBPACK_IMPORTED_MODULE_4__.useLatest)(direction);
|
|
1022
|
+
const changeActiveIndex = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((offsetX, offsetY)=>{
|
|
1015
1023
|
const x = Math.min(Math.max(activeIndexRef.current.x + offsetX, 0), width - 1);
|
|
1016
1024
|
const y = Math.min(Math.max(activeIndexRef.current.y + offsetY, 0), height - 1);
|
|
1017
1025
|
activeIndexRef.current = {
|
|
@@ -1023,58 +1031,197 @@ const useGrid = (rows)=>{
|
|
|
1023
1031
|
activeIndexRef,
|
|
1024
1032
|
refs
|
|
1025
1033
|
]);
|
|
1026
|
-
const getInputRefPosition = (0,
|
|
1027
|
-
return (0,
|
|
1034
|
+
const getInputRefPosition = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((inputRef)=>{
|
|
1035
|
+
return (0,_lib__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z)(refs, (ref)=>ref.current === inputRef);
|
|
1028
1036
|
}, [
|
|
1029
1037
|
refs
|
|
1030
1038
|
]);
|
|
1031
|
-
const
|
|
1032
|
-
|
|
1033
|
-
return direction === "vertical" ? "horizontal" : "vertical";
|
|
1034
|
-
});
|
|
1035
|
-
}, []);
|
|
1036
|
-
const onFocus = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((x, y)=>{
|
|
1037
|
-
activeIndexRef.current = {
|
|
1038
|
-
x,
|
|
1039
|
-
y
|
|
1040
|
-
};
|
|
1041
|
-
}, []);
|
|
1042
|
-
const onMoveFocus = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((direction)=>{
|
|
1043
|
-
const offset = direction === "forward" ? 1 : -1;
|
|
1044
|
-
if (lastDirectionRef.current === "horizontal") {
|
|
1039
|
+
const moveFocus = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((offset)=>{
|
|
1040
|
+
if (directionRef.current === "horizontal") {
|
|
1045
1041
|
changeActiveIndex(offset, 0);
|
|
1046
1042
|
} else {
|
|
1047
1043
|
changeActiveIndex(0, offset);
|
|
1048
1044
|
}
|
|
1049
1045
|
}, [
|
|
1050
1046
|
changeActiveIndex,
|
|
1051
|
-
|
|
1047
|
+
directionRef
|
|
1052
1048
|
]);
|
|
1053
|
-
const
|
|
1054
|
-
|
|
1049
|
+
const insertValue = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((position, value)=>{
|
|
1050
|
+
const characters = value ? (0,lib__WEBPACK_IMPORTED_MODULE_5__/* .extractCharacters */ .nK)(config, value).filter((character)=>character !== _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_0__.BLANK) : [
|
|
1051
|
+
_scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_0__.BLANK
|
|
1052
|
+
];
|
|
1053
|
+
let board = new _scrabble_solver_types__WEBPACK_IMPORTED_MODULE_1__.Board({
|
|
1054
|
+
rows: rows.map((row)=>row.map((cell)=>cell.clone()))
|
|
1055
|
+
});
|
|
1056
|
+
let { x , y } = position;
|
|
1057
|
+
const scheduleMoveFocus = ()=>{
|
|
1058
|
+
if (directionRef.current === "horizontal") {
|
|
1059
|
+
++x;
|
|
1060
|
+
} else {
|
|
1061
|
+
++y;
|
|
1062
|
+
}
|
|
1063
|
+
};
|
|
1064
|
+
characters.forEach((character)=>{
|
|
1065
|
+
if (x >= config.boardWidth || y >= config.boardHeight) {
|
|
1066
|
+
return;
|
|
1067
|
+
}
|
|
1068
|
+
const canCheckUp = y - 1 > 0;
|
|
1069
|
+
const canCheckLeft = x > 0;
|
|
1070
|
+
const canCheckRight = x + 1 < width;
|
|
1071
|
+
const canCheckDown = y + 1 < height;
|
|
1072
|
+
if (canCheckUp) {
|
|
1073
|
+
const cellUp = board.rows[y - 1][x];
|
|
1074
|
+
const twoCharacterCandidate = cellUp.tile.character + character;
|
|
1075
|
+
if (!cellUp.tile.isBlank && config.twoCharacterTiles.includes(twoCharacterCandidate)) {
|
|
1076
|
+
board = state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.reducer */ .I8.reducer(board, state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1077
|
+
x,
|
|
1078
|
+
y: y - 1,
|
|
1079
|
+
value: twoCharacterCandidate
|
|
1080
|
+
}));
|
|
1081
|
+
return;
|
|
1082
|
+
}
|
|
1083
|
+
}
|
|
1084
|
+
if (canCheckDown) {
|
|
1085
|
+
const cellDown = board.rows[y + 1][x];
|
|
1086
|
+
const twoCharacterCandidate1 = character + cellDown.tile.character;
|
|
1087
|
+
if (!cellDown.tile.isBlank && config.twoCharacterTiles.includes(twoCharacterCandidate1)) {
|
|
1088
|
+
board = state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.reducer */ .I8.reducer(board, state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1089
|
+
x,
|
|
1090
|
+
y,
|
|
1091
|
+
value: character
|
|
1092
|
+
}));
|
|
1093
|
+
board = state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.reducer */ .I8.reducer(board, state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1094
|
+
x,
|
|
1095
|
+
y: y + 1,
|
|
1096
|
+
value: _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_0__.EMPTY_CELL
|
|
1097
|
+
}));
|
|
1098
|
+
scheduleMoveFocus();
|
|
1099
|
+
return;
|
|
1100
|
+
}
|
|
1101
|
+
}
|
|
1102
|
+
if (canCheckLeft) {
|
|
1103
|
+
const cellLeft = board.rows[y][x - 1];
|
|
1104
|
+
const twoCharacterCandidate2 = cellLeft.tile.character + character;
|
|
1105
|
+
if (!cellLeft.tile.isBlank && config.twoCharacterTiles.includes(twoCharacterCandidate2)) {
|
|
1106
|
+
board = state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.reducer */ .I8.reducer(board, state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1107
|
+
x: x - 1,
|
|
1108
|
+
y,
|
|
1109
|
+
value: twoCharacterCandidate2
|
|
1110
|
+
}));
|
|
1111
|
+
return;
|
|
1112
|
+
}
|
|
1113
|
+
}
|
|
1114
|
+
if (canCheckRight) {
|
|
1115
|
+
const cellRight = board.rows[y][x + 1];
|
|
1116
|
+
const twoCharacterCandidate3 = character + cellRight.tile.character;
|
|
1117
|
+
if (!cellRight.tile.isBlank && config.twoCharacterTiles.includes(twoCharacterCandidate3)) {
|
|
1118
|
+
board = state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.reducer */ .I8.reducer(board, state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1119
|
+
x,
|
|
1120
|
+
y,
|
|
1121
|
+
value: character
|
|
1122
|
+
}));
|
|
1123
|
+
board = state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.reducer */ .I8.reducer(board, state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1124
|
+
x: x + 1,
|
|
1125
|
+
y,
|
|
1126
|
+
value: _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_0__.EMPTY_CELL
|
|
1127
|
+
}));
|
|
1128
|
+
scheduleMoveFocus();
|
|
1129
|
+
return;
|
|
1130
|
+
}
|
|
1131
|
+
}
|
|
1132
|
+
if (!canCheckDown || !canCheckRight) {
|
|
1133
|
+
const cell = board.rows[y][x];
|
|
1134
|
+
const twoCharacterCandidate4 = cell.tile.character + character;
|
|
1135
|
+
if (!cell.tile.isBlank && config.twoCharacterTiles.includes(twoCharacterCandidate4)) {
|
|
1136
|
+
board = state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.reducer */ .I8.reducer(board, state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1137
|
+
x,
|
|
1138
|
+
y,
|
|
1139
|
+
value: twoCharacterCandidate4
|
|
1140
|
+
}));
|
|
1141
|
+
return;
|
|
1142
|
+
}
|
|
1143
|
+
}
|
|
1144
|
+
board = state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.reducer */ .I8.reducer(board, state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1145
|
+
x,
|
|
1146
|
+
y,
|
|
1147
|
+
value: character
|
|
1148
|
+
}));
|
|
1149
|
+
scheduleMoveFocus();
|
|
1150
|
+
});
|
|
1151
|
+
moveFocus(Math.abs(position.x - x) + Math.abs(position.y - y));
|
|
1152
|
+
dispatch(state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.actions.change */ .I8.actions.change(board));
|
|
1153
|
+
}, [
|
|
1154
|
+
config,
|
|
1155
|
+
directionRef,
|
|
1156
|
+
dispatch,
|
|
1157
|
+
moveFocus,
|
|
1158
|
+
rows
|
|
1159
|
+
]);
|
|
1160
|
+
const onChange = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((event)=>{
|
|
1161
|
+
const position = getInputRefPosition(event.target);
|
|
1162
|
+
if (!position) {
|
|
1163
|
+
return;
|
|
1164
|
+
}
|
|
1165
|
+
const value = (0,lib__WEBPACK_IMPORTED_MODULE_5__/* .extractInputValue */ .WM)(event.target);
|
|
1166
|
+
if (!value) {
|
|
1167
|
+
dispatch(state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1168
|
+
...position,
|
|
1169
|
+
value: _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_0__.EMPTY_CELL
|
|
1170
|
+
}));
|
|
1171
|
+
moveFocus(-1);
|
|
1172
|
+
return;
|
|
1173
|
+
}
|
|
1174
|
+
if (value === _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_0__.EMPTY_CELL) {
|
|
1175
|
+
const { x , y } = position;
|
|
1176
|
+
const cell = rows[y][x];
|
|
1177
|
+
if (cell.hasTile()) {
|
|
1178
|
+
dispatch(state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.actions.toggleCellIsBlank */ .I8.actions.toggleCellIsBlank(position));
|
|
1179
|
+
return;
|
|
1180
|
+
}
|
|
1181
|
+
}
|
|
1182
|
+
insertValue(position, value);
|
|
1183
|
+
}, [
|
|
1184
|
+
dispatch,
|
|
1185
|
+
insertValue,
|
|
1186
|
+
moveFocus,
|
|
1187
|
+
rows
|
|
1188
|
+
]);
|
|
1189
|
+
const onDirectionToggle = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(()=>setLastDirection(toggleDirection), []);
|
|
1190
|
+
const onFocus = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((x, y)=>{
|
|
1191
|
+
activeIndexRef.current = {
|
|
1192
|
+
x,
|
|
1193
|
+
y
|
|
1194
|
+
};
|
|
1195
|
+
}, []);
|
|
1196
|
+
const onKeyDown = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>{
|
|
1197
|
+
return (0,lib__WEBPACK_IMPORTED_MODULE_5__/* .createKeyboardNavigation */ .np)({
|
|
1055
1198
|
onArrowDown: (event)=>{
|
|
1056
|
-
|
|
1199
|
+
event.preventDefault();
|
|
1200
|
+
if ((0,lib__WEBPACK_IMPORTED_MODULE_5__/* .isCtrl */ .yl)(event)) {
|
|
1057
1201
|
onDirectionToggle();
|
|
1058
1202
|
} else {
|
|
1059
1203
|
changeActiveIndex(0, 1);
|
|
1060
1204
|
}
|
|
1061
1205
|
},
|
|
1062
1206
|
onArrowLeft: (event)=>{
|
|
1063
|
-
|
|
1207
|
+
event.preventDefault();
|
|
1208
|
+
if ((0,lib__WEBPACK_IMPORTED_MODULE_5__/* .isCtrl */ .yl)(event)) {
|
|
1064
1209
|
onDirectionToggle();
|
|
1065
1210
|
} else {
|
|
1066
1211
|
changeActiveIndex(-1, 0);
|
|
1067
1212
|
}
|
|
1068
1213
|
},
|
|
1069
1214
|
onArrowRight: (event)=>{
|
|
1070
|
-
|
|
1215
|
+
event.preventDefault();
|
|
1216
|
+
if ((0,lib__WEBPACK_IMPORTED_MODULE_5__/* .isCtrl */ .yl)(event)) {
|
|
1071
1217
|
onDirectionToggle();
|
|
1072
1218
|
} else {
|
|
1073
1219
|
changeActiveIndex(1, 0);
|
|
1074
1220
|
}
|
|
1075
1221
|
},
|
|
1076
1222
|
onArrowUp: (event)=>{
|
|
1077
|
-
|
|
1223
|
+
event.preventDefault();
|
|
1224
|
+
if ((0,lib__WEBPACK_IMPORTED_MODULE_5__/* .isCtrl */ .yl)(event)) {
|
|
1078
1225
|
onDirectionToggle();
|
|
1079
1226
|
} else {
|
|
1080
1227
|
changeActiveIndex(0, -1);
|
|
@@ -1085,22 +1232,24 @@ const useGrid = (rows)=>{
|
|
|
1085
1232
|
if (!position) {
|
|
1086
1233
|
return;
|
|
1087
1234
|
}
|
|
1088
|
-
|
|
1235
|
+
event.preventDefault();
|
|
1236
|
+
dispatch(state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1089
1237
|
...position,
|
|
1090
1238
|
value: _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_0__.EMPTY_CELL
|
|
1091
1239
|
}));
|
|
1092
|
-
|
|
1240
|
+
moveFocus(-1);
|
|
1093
1241
|
},
|
|
1094
1242
|
onDelete: (event)=>{
|
|
1095
1243
|
const position = getInputRefPosition(event.target);
|
|
1096
1244
|
if (!position) {
|
|
1097
1245
|
return;
|
|
1098
1246
|
}
|
|
1099
|
-
|
|
1247
|
+
event.preventDefault();
|
|
1248
|
+
dispatch(state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1100
1249
|
...position,
|
|
1101
1250
|
value: _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_0__.EMPTY_CELL
|
|
1102
1251
|
}));
|
|
1103
|
-
|
|
1252
|
+
moveFocus(1);
|
|
1104
1253
|
},
|
|
1105
1254
|
onKeyDown: (event)=>{
|
|
1106
1255
|
const position = getInputRefPosition(event.target);
|
|
@@ -1109,129 +1258,82 @@ const useGrid = (rows)=>{
|
|
|
1109
1258
|
}
|
|
1110
1259
|
const { x , y } = position;
|
|
1111
1260
|
const character = event.key.toLowerCase();
|
|
1112
|
-
const isTogglingBlank = (0,
|
|
1261
|
+
const isTogglingBlank = (0,lib__WEBPACK_IMPORTED_MODULE_5__/* .isCtrl */ .yl)(event) && character === "b";
|
|
1113
1262
|
const twoCharacterTile = config.getTwoCharacterTileByPrefix(character);
|
|
1114
1263
|
if (isTogglingBlank) {
|
|
1115
|
-
|
|
1264
|
+
event.preventDefault();
|
|
1265
|
+
dispatch(state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.actions.toggleCellIsBlank */ .I8.actions.toggleCellIsBlank(position));
|
|
1116
1266
|
return;
|
|
1117
1267
|
}
|
|
1118
|
-
if ((0,
|
|
1268
|
+
if ((0,lib__WEBPACK_IMPORTED_MODULE_5__/* .isCtrl */ .yl)(event) && twoCharacterTile) {
|
|
1119
1269
|
event.preventDefault();
|
|
1120
|
-
dispatch(
|
|
1270
|
+
dispatch(state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1121
1271
|
x,
|
|
1122
1272
|
y,
|
|
1123
1273
|
value: twoCharacterTile
|
|
1124
1274
|
}));
|
|
1125
|
-
|
|
1275
|
+
moveFocus(1);
|
|
1126
1276
|
return;
|
|
1127
1277
|
}
|
|
1128
|
-
|
|
1278
|
+
const cell = rows[y][x];
|
|
1279
|
+
const twoCharacterCandidate = cell.tile.character + character;
|
|
1280
|
+
if (config.twoCharacterTiles.includes(twoCharacterCandidate)) {
|
|
1281
|
+
event.preventDefault();
|
|
1282
|
+
dispatch(state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1283
|
+
...position,
|
|
1284
|
+
value: twoCharacterCandidate
|
|
1285
|
+
}));
|
|
1286
|
+
moveFocus(1);
|
|
1129
1287
|
return;
|
|
1130
1288
|
}
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
const cellUp = rows[y - 1][x];
|
|
1137
|
-
const twoCharacterCandidate = cellUp.tile.character + character;
|
|
1138
|
-
if (config.twoCharacterTiles.includes(twoCharacterCandidate)) {
|
|
1139
|
-
dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1140
|
-
...position,
|
|
1141
|
-
y: y - 1,
|
|
1142
|
-
value: twoCharacterCandidate
|
|
1143
|
-
}));
|
|
1144
|
-
return;
|
|
1145
|
-
}
|
|
1146
|
-
}
|
|
1147
|
-
if (canCheckDown) {
|
|
1148
|
-
const cellDown = rows[y + 1][x];
|
|
1149
|
-
const twoCharacterCandidate1 = character + cellDown.tile.character;
|
|
1150
|
-
if (config.twoCharacterTiles.includes(twoCharacterCandidate1)) {
|
|
1151
|
-
dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1152
|
-
...position,
|
|
1153
|
-
value: character
|
|
1154
|
-
}));
|
|
1155
|
-
dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1156
|
-
...position,
|
|
1157
|
-
y: y + 1,
|
|
1158
|
-
value: _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_0__.EMPTY_CELL
|
|
1159
|
-
}));
|
|
1160
|
-
onMoveFocus("forward");
|
|
1161
|
-
return;
|
|
1162
|
-
}
|
|
1163
|
-
}
|
|
1164
|
-
if (canCheckLeft) {
|
|
1165
|
-
const cellLeft = rows[y][x - 1];
|
|
1166
|
-
const twoCharacterCandidate2 = cellLeft.tile.character + character;
|
|
1167
|
-
if (config.twoCharacterTiles.includes(twoCharacterCandidate2)) {
|
|
1168
|
-
dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1169
|
-
...position,
|
|
1170
|
-
x: x - 1,
|
|
1171
|
-
value: twoCharacterCandidate2
|
|
1172
|
-
}));
|
|
1173
|
-
return;
|
|
1174
|
-
}
|
|
1175
|
-
}
|
|
1176
|
-
if (canCheckRight) {
|
|
1177
|
-
const cellRight = rows[y][x + 1];
|
|
1178
|
-
const twoCharacterCandidate3 = character + cellRight.tile.character;
|
|
1179
|
-
if (config.twoCharacterTiles.includes(twoCharacterCandidate3)) {
|
|
1180
|
-
dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1181
|
-
...position,
|
|
1182
|
-
value: character
|
|
1183
|
-
}));
|
|
1184
|
-
dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1185
|
-
...position,
|
|
1186
|
-
x: x + 1,
|
|
1187
|
-
value: _scrabble_solver_constants__WEBPACK_IMPORTED_MODULE_0__.EMPTY_CELL
|
|
1188
|
-
}));
|
|
1189
|
-
onMoveFocus("forward");
|
|
1190
|
-
return;
|
|
1191
|
-
}
|
|
1192
|
-
}
|
|
1193
|
-
if (!canCheckDown || !canCheckRight) {
|
|
1194
|
-
const cell = rows[y][x];
|
|
1195
|
-
const twoCharacterCandidate4 = cell.tile.character + character;
|
|
1196
|
-
if (config.twoCharacterTiles.includes(twoCharacterCandidate4)) {
|
|
1197
|
-
dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1198
|
-
...position,
|
|
1199
|
-
value: twoCharacterCandidate4
|
|
1200
|
-
}));
|
|
1201
|
-
return;
|
|
1202
|
-
}
|
|
1289
|
+
if (event.target instanceof HTMLInputElement && event.target.value === event.key) {
|
|
1290
|
+
// change event did not fire because the same character was typed over the current one
|
|
1291
|
+
// but we still want to move the caret
|
|
1292
|
+
event.preventDefault();
|
|
1293
|
+
moveFocus(1);
|
|
1203
1294
|
}
|
|
1204
|
-
dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .boardSlice.actions.changeCellValue */ .I8.actions.changeCellValue({
|
|
1205
|
-
...position,
|
|
1206
|
-
value: character
|
|
1207
|
-
}));
|
|
1208
|
-
onMoveFocus("forward");
|
|
1209
1295
|
},
|
|
1210
1296
|
onSpace: (event)=>{
|
|
1211
1297
|
const position = getInputRefPosition(event.target);
|
|
1212
1298
|
if (!position) {
|
|
1213
1299
|
return;
|
|
1214
1300
|
}
|
|
1215
|
-
|
|
1301
|
+
event.preventDefault();
|
|
1302
|
+
dispatch(state__WEBPACK_IMPORTED_MODULE_6__/* .boardSlice.actions.toggleCellIsBlank */ .I8.actions.toggleCellIsBlank(position));
|
|
1216
1303
|
}
|
|
1217
1304
|
});
|
|
1218
1305
|
}, [
|
|
1219
1306
|
changeActiveIndex,
|
|
1220
1307
|
config,
|
|
1221
1308
|
dispatch,
|
|
1222
|
-
lastDirectionRef,
|
|
1223
1309
|
onDirectionToggle,
|
|
1224
1310
|
rows
|
|
1225
1311
|
]);
|
|
1312
|
+
const onPaste = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((event)=>{
|
|
1313
|
+
if (!(event.target instanceof HTMLInputElement)) {
|
|
1314
|
+
return;
|
|
1315
|
+
}
|
|
1316
|
+
const position = getInputRefPosition(event.target);
|
|
1317
|
+
if (!position) {
|
|
1318
|
+
return;
|
|
1319
|
+
}
|
|
1320
|
+
event.preventDefault();
|
|
1321
|
+
const value = event.clipboardData.getData("text/plain").toLocaleLowerCase();
|
|
1322
|
+
insertValue(position, value);
|
|
1323
|
+
}, [
|
|
1324
|
+
insertValue
|
|
1325
|
+
]);
|
|
1226
1326
|
return [
|
|
1227
1327
|
{
|
|
1228
|
-
|
|
1328
|
+
direction,
|
|
1229
1329
|
refs
|
|
1230
1330
|
},
|
|
1231
1331
|
{
|
|
1332
|
+
onChange,
|
|
1232
1333
|
onDirectionToggle,
|
|
1233
1334
|
onFocus,
|
|
1234
|
-
onKeyDown
|
|
1335
|
+
onKeyDown,
|
|
1336
|
+
onPaste
|
|
1235
1337
|
},
|
|
1236
1338
|
];
|
|
1237
1339
|
};
|
|
@@ -1432,6 +1534,7 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
|
|
|
1432
1534
|
const Dictionary = ({ className })=>{
|
|
1433
1535
|
const translate = (0,state__WEBPACK_IMPORTED_MODULE_2__/* .useTranslate */ .qM)();
|
|
1434
1536
|
const { results , isLoading } = (0,state__WEBPACK_IMPORTED_MODULE_2__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_2__/* .selectDictionary */ .w1);
|
|
1537
|
+
const error = (0,state__WEBPACK_IMPORTED_MODULE_2__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_2__/* .selectDictionaryError */ .mK);
|
|
1435
1538
|
const isFirstAllowed = results.length > 0 ? results[0].isAllowed : undefined;
|
|
1436
1539
|
return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
|
1437
1540
|
className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().dictionary), className, {
|
|
@@ -1439,6 +1542,11 @@ const Dictionary = ({ className })=>{
|
|
|
1439
1542
|
[(_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().isNotAllowed)]: isFirstAllowed === false
|
|
1440
1543
|
}),
|
|
1441
1544
|
children: [
|
|
1545
|
+
typeof error !== "undefined" && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_EmptyState__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
|
|
1546
|
+
className: (_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().emptyState),
|
|
1547
|
+
type: "error",
|
|
1548
|
+
children: error.message
|
|
1549
|
+
}),
|
|
1442
1550
|
results.map(({ definitions , isAllowed , word })=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
|
1443
1551
|
className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().result), {
|
|
1444
1552
|
[(_Dictionary_module_scss__WEBPACK_IMPORTED_MODULE_5___default().isAllowed)]: isAllowed === true,
|
|
@@ -1927,7 +2035,7 @@ __webpack_async_result__();
|
|
|
1927
2035
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16689);
|
|
1928
2036
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
|
|
1929
2037
|
/* harmony import */ var icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6942);
|
|
1930
|
-
/* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
|
|
2038
|
+
/* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(75558);
|
|
1931
2039
|
/* harmony import */ var _Key__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50237);
|
|
1932
2040
|
|
|
1933
2041
|
|
|
@@ -2475,12 +2583,13 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
|
|
|
2475
2583
|
/* harmony export */ });
|
|
2476
2584
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20997);
|
|
2477
2585
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
|
|
2478
|
-
/* harmony import */ var
|
|
2479
|
-
/* harmony import */ var
|
|
2480
|
-
/* harmony import */ var
|
|
2481
|
-
/* harmony import */ var
|
|
2482
|
-
/* harmony import */ var
|
|
2483
|
-
/* harmony import */ var
|
|
2586
|
+
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
|
|
2587
|
+
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
|
|
2588
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
|
|
2589
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
|
|
2590
|
+
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
|
|
2591
|
+
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
|
|
2592
|
+
/* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75558);
|
|
2484
2593
|
/* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(51413);
|
|
2485
2594
|
/* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(42687);
|
|
2486
2595
|
/* harmony import */ var _Rack_module_scss__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Rack_module_scss__WEBPACK_IMPORTED_MODULE_7__);
|
|
@@ -2496,19 +2605,20 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
|
|
|
2496
2605
|
|
|
2497
2606
|
|
|
2498
2607
|
const Rack = ({ className })=>{
|
|
2608
|
+
const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
|
|
2499
2609
|
const config = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectConfig */ .$o);
|
|
2500
2610
|
const rack = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectRack */ .QB);
|
|
2501
2611
|
const resultCandidateTiles = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectResultCandidateTiles */ .z$);
|
|
2502
|
-
const tiles = (0,
|
|
2612
|
+
const tiles = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>(0,lib__WEBPACK_IMPORTED_MODULE_4__/* .zipCharactersAndTiles */ .gV)(rack, resultCandidateTiles), [
|
|
2503
2613
|
rack,
|
|
2504
2614
|
resultCandidateTiles
|
|
2505
2615
|
]);
|
|
2506
2616
|
const tilesCount = tiles.length;
|
|
2507
|
-
const tilesRefs = (0,
|
|
2617
|
+
const tilesRefs = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>(0,lib__WEBPACK_IMPORTED_MODULE_4__/* .createArray */ .Ri)(tilesCount).map(()=>/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_2__.createRef)()), [
|
|
2508
2618
|
tilesCount
|
|
2509
2619
|
]);
|
|
2510
|
-
const activeIndexRef = (0,
|
|
2511
|
-
const changeActiveIndex = (0,
|
|
2620
|
+
const activeIndexRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)();
|
|
2621
|
+
const changeActiveIndex = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((offset)=>{
|
|
2512
2622
|
const nextActiveIndex = Math.min(Math.max((activeIndexRef.current || 0) + offset, 0), tilesCount - 1);
|
|
2513
2623
|
const tileRef = tilesRefs[nextActiveIndex].current;
|
|
2514
2624
|
if (tileRef) {
|
|
@@ -2520,7 +2630,33 @@ const Rack = ({ className })=>{
|
|
|
2520
2630
|
tilesCount,
|
|
2521
2631
|
tilesRefs
|
|
2522
2632
|
]);
|
|
2523
|
-
const
|
|
2633
|
+
const handleChange = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((event)=>{
|
|
2634
|
+
const value = (0,lib__WEBPACK_IMPORTED_MODULE_4__/* .extractInputValue */ .WM)(event.target);
|
|
2635
|
+
const characters = value ? (0,lib__WEBPACK_IMPORTED_MODULE_4__/* .extractCharacters */ .nK)(config, value) : [];
|
|
2636
|
+
changeActiveIndex(value ? characters.length : -1);
|
|
2637
|
+
}, [
|
|
2638
|
+
changeActiveIndex,
|
|
2639
|
+
config
|
|
2640
|
+
]);
|
|
2641
|
+
const handlePaste = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((event)=>{
|
|
2642
|
+
const index = activeIndexRef.current;
|
|
2643
|
+
if (typeof index === "undefined") {
|
|
2644
|
+
return;
|
|
2645
|
+
}
|
|
2646
|
+
event.preventDefault();
|
|
2647
|
+
const value = event.clipboardData.getData("text/plain").toLocaleLowerCase();
|
|
2648
|
+
const characters = value ? (0,lib__WEBPACK_IMPORTED_MODULE_4__/* .extractCharacters */ .nK)(config, value) : [];
|
|
2649
|
+
changeActiveIndex(value ? characters.length : -1);
|
|
2650
|
+
dispatch(state__WEBPACK_IMPORTED_MODULE_5__/* .rackSlice.actions.changeCharacters */ .O_.actions.changeCharacters({
|
|
2651
|
+
characters,
|
|
2652
|
+
index
|
|
2653
|
+
}));
|
|
2654
|
+
}, [
|
|
2655
|
+
changeActiveIndex,
|
|
2656
|
+
config,
|
|
2657
|
+
dispatch
|
|
2658
|
+
]);
|
|
2659
|
+
const handleKeyDown = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>{
|
|
2524
2660
|
return (0,lib__WEBPACK_IMPORTED_MODULE_4__/* .createKeyboardNavigation */ .np)({
|
|
2525
2661
|
onArrowLeft: (event)=>{
|
|
2526
2662
|
event.preventDefault();
|
|
@@ -2530,12 +2666,18 @@ const Rack = ({ className })=>{
|
|
|
2530
2666
|
event.preventDefault();
|
|
2531
2667
|
changeActiveIndex(1);
|
|
2532
2668
|
},
|
|
2533
|
-
onBackspace: ()=>{
|
|
2669
|
+
onBackspace: (event)=>{
|
|
2670
|
+
event.preventDefault();
|
|
2534
2671
|
changeActiveIndex(-1);
|
|
2535
2672
|
},
|
|
2536
2673
|
onKeyDown: (event)=>{
|
|
2537
|
-
|
|
2538
|
-
|
|
2674
|
+
if ((0,lib__WEBPACK_IMPORTED_MODULE_4__/* .isCtrl */ .yl)(event) && config.isTwoCharacterTilePrefix(event.key)) {
|
|
2675
|
+
changeActiveIndex(1);
|
|
2676
|
+
} else if (event.currentTarget.value === event.key) {
|
|
2677
|
+
// change event did not fire because the same character was typed over the current one
|
|
2678
|
+
// but we still want to move the caret
|
|
2679
|
+
event.preventDefault();
|
|
2680
|
+
event.stopPropagation();
|
|
2539
2681
|
changeActiveIndex(1);
|
|
2540
2682
|
}
|
|
2541
2683
|
}
|
|
@@ -2545,14 +2687,16 @@ const Rack = ({ className })=>{
|
|
|
2545
2687
|
config
|
|
2546
2688
|
]);
|
|
2547
2689
|
return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
|
|
2548
|
-
className:
|
|
2690
|
+
className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Rack_module_scss__WEBPACK_IMPORTED_MODULE_7___default().rack), className),
|
|
2691
|
+
onPaste: handlePaste,
|
|
2549
2692
|
children: tiles.map(({ character , tile }, index)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_RackTile__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
|
|
2550
2693
|
activeIndexRef: activeIndexRef,
|
|
2551
2694
|
character: character,
|
|
2552
2695
|
index: index,
|
|
2553
2696
|
inputRef: tilesRefs[index],
|
|
2554
2697
|
tile: tile,
|
|
2555
|
-
|
|
2698
|
+
onChange: handleChange,
|
|
2699
|
+
onKeyDown: handleKeyDown
|
|
2556
2700
|
}, index))
|
|
2557
2701
|
});
|
|
2558
2702
|
};
|
|
@@ -2578,7 +2722,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
|
|
|
2578
2722
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
|
|
2579
2723
|
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
|
|
2580
2724
|
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
|
|
2581
|
-
/* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
|
|
2725
|
+
/* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75558);
|
|
2582
2726
|
/* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(90485);
|
|
2583
2727
|
/* harmony import */ var state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(51413);
|
|
2584
2728
|
/* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(54031);
|
|
@@ -2595,7 +2739,7 @@ state__WEBPACK_IMPORTED_MODULE_6__ = (__webpack_async_dependencies__.then ? (awa
|
|
|
2595
2739
|
|
|
2596
2740
|
|
|
2597
2741
|
|
|
2598
|
-
const RackTile = ({ activeIndexRef , character , index , inputRef , tile , onKeyDown })=>{
|
|
2742
|
+
const RackTile = ({ activeIndexRef , character , index , inputRef , tile , onChange , onKeyDown , })=>{
|
|
2599
2743
|
const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
|
|
2600
2744
|
const translate = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTranslate */ .qM)();
|
|
2601
2745
|
const config = (0,state__WEBPACK_IMPORTED_MODULE_6__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_6__/* .selectConfig */ .$o);
|
|
@@ -2605,33 +2749,48 @@ const RackTile = ({ activeIndexRef , character , index , inputRef , tile , onKey
|
|
|
2605
2749
|
}, [
|
|
2606
2750
|
index
|
|
2607
2751
|
]);
|
|
2608
|
-
const
|
|
2609
|
-
|
|
2610
|
-
|
|
2752
|
+
const handleChange = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((event)=>{
|
|
2753
|
+
event.preventDefault();
|
|
2754
|
+
event.stopPropagation();
|
|
2755
|
+
const value = (0,lib__WEBPACK_IMPORTED_MODULE_4__/* .extractInputValue */ .WM)(event.target);
|
|
2756
|
+
const characters = value ? (0,lib__WEBPACK_IMPORTED_MODULE_4__/* .extractCharacters */ .nK)(config, value) : [
|
|
2757
|
+
null
|
|
2758
|
+
];
|
|
2759
|
+
dispatch(state__WEBPACK_IMPORTED_MODULE_6__/* .rackSlice.actions.changeCharacters */ .O_.actions.changeCharacters({
|
|
2760
|
+
characters,
|
|
2611
2761
|
index
|
|
2612
2762
|
}));
|
|
2763
|
+
onChange(event);
|
|
2613
2764
|
}, [
|
|
2614
|
-
|
|
2765
|
+
config,
|
|
2766
|
+
index,
|
|
2767
|
+
onChange
|
|
2615
2768
|
]);
|
|
2616
2769
|
const handleKeyDown = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(()=>{
|
|
2617
2770
|
return (0,lib__WEBPACK_IMPORTED_MODULE_4__/* .createKeyboardNavigation */ .np)({
|
|
2618
|
-
onBackspace: ()=>
|
|
2619
|
-
|
|
2771
|
+
onBackspace: (event)=>{
|
|
2772
|
+
event.preventDefault();
|
|
2773
|
+
dispatch(state__WEBPACK_IMPORTED_MODULE_6__/* .rackSlice.actions.changeCharacter */ .O_.actions.changeCharacter({
|
|
2774
|
+
character: null,
|
|
2775
|
+
index
|
|
2776
|
+
}));
|
|
2777
|
+
},
|
|
2620
2778
|
onKeyDown: (event)=>{
|
|
2621
|
-
|
|
2622
|
-
const twoCharacterTile = config.getTwoCharacterTileByPrefix(newCharacter);
|
|
2623
|
-
if ((0,lib__WEBPACK_IMPORTED_MODULE_4__/* .isCtrl */ .yl)(event) && twoCharacterTile) {
|
|
2779
|
+
if ((0,lib__WEBPACK_IMPORTED_MODULE_4__/* .isCtrl */ .yl)(event) && config.isTwoCharacterTilePrefix(event.key)) {
|
|
2624
2780
|
event.preventDefault();
|
|
2625
|
-
|
|
2626
|
-
|
|
2627
|
-
|
|
2781
|
+
event.stopPropagation();
|
|
2782
|
+
const twoTilesCharacter = config.getTwoCharacterTileByPrefix(event.key);
|
|
2783
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
2784
|
+
dispatch(state__WEBPACK_IMPORTED_MODULE_6__/* .rackSlice.actions.changeCharacter */ .O_.actions.changeCharacter({
|
|
2785
|
+
character: twoTilesCharacter,
|
|
2786
|
+
index
|
|
2787
|
+
}));
|
|
2628
2788
|
}
|
|
2629
2789
|
onKeyDown(event);
|
|
2630
2790
|
}
|
|
2631
2791
|
});
|
|
2632
2792
|
}, [
|
|
2633
|
-
|
|
2634
|
-
handleCharacterChange,
|
|
2793
|
+
index,
|
|
2635
2794
|
onKeyDown
|
|
2636
2795
|
]);
|
|
2637
2796
|
return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Tile__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
|
|
@@ -2646,6 +2805,7 @@ const RackTile = ({ activeIndexRef , character , index , inputRef , tile , onKey
|
|
|
2646
2805
|
raised: true,
|
|
2647
2806
|
size: parameters__WEBPACK_IMPORTED_MODULE_5__/* .TILE_SIZE */ .I_,
|
|
2648
2807
|
tabIndex: index === 0 ? undefined : -1,
|
|
2808
|
+
onChange: handleChange,
|
|
2649
2809
|
onFocus: handleFocus,
|
|
2650
2810
|
onKeyDown: handleKeyDown
|
|
2651
2811
|
}, index);
|
|
@@ -3105,21 +3265,24 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
|
|
|
3105
3265
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
|
|
3106
3266
|
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59003);
|
|
3107
3267
|
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
|
|
3108
|
-
/* harmony import */ var
|
|
3109
|
-
/* harmony import */ var
|
|
3110
|
-
/* harmony import */ var
|
|
3111
|
-
/* harmony import */ var
|
|
3112
|
-
/* harmony import */ var
|
|
3113
|
-
/* harmony import */ var
|
|
3114
|
-
/* harmony import */ var
|
|
3115
|
-
/* harmony import */ var
|
|
3116
|
-
/* harmony import */ var
|
|
3117
|
-
/* harmony import */ var
|
|
3118
|
-
/* harmony import */ var
|
|
3119
|
-
/* harmony import */ var
|
|
3120
|
-
/* harmony import */ var
|
|
3121
|
-
|
|
3122
|
-
|
|
3268
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16689);
|
|
3269
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
|
|
3270
|
+
/* harmony import */ var react_window__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(80551);
|
|
3271
|
+
/* harmony import */ var react_window__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_window__WEBPACK_IMPORTED_MODULE_3__);
|
|
3272
|
+
/* harmony import */ var parameters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(90485);
|
|
3273
|
+
/* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(51413);
|
|
3274
|
+
/* harmony import */ var _EmptyState__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(79590);
|
|
3275
|
+
/* harmony import */ var _Loading__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(85907);
|
|
3276
|
+
/* harmony import */ var _ResultsInput__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(57345);
|
|
3277
|
+
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(61157);
|
|
3278
|
+
/* harmony import */ var _HeaderButton__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(53236);
|
|
3279
|
+
/* harmony import */ var _Result__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(73829);
|
|
3280
|
+
/* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(81177);
|
|
3281
|
+
/* harmony import */ var _Results_module_scss__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_Results_module_scss__WEBPACK_IMPORTED_MODULE_13__);
|
|
3282
|
+
/* harmony import */ var _SolveButton__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(17290);
|
|
3283
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_5__, _EmptyState__WEBPACK_IMPORTED_MODULE_6__, _Loading__WEBPACK_IMPORTED_MODULE_7__, _ResultsInput__WEBPACK_IMPORTED_MODULE_8__, _HeaderButton__WEBPACK_IMPORTED_MODULE_10__, _Result__WEBPACK_IMPORTED_MODULE_11__, _SolveButton__WEBPACK_IMPORTED_MODULE_12__]);
|
|
3284
|
+
([state__WEBPACK_IMPORTED_MODULE_5__, _EmptyState__WEBPACK_IMPORTED_MODULE_6__, _Loading__WEBPACK_IMPORTED_MODULE_7__, _ResultsInput__WEBPACK_IMPORTED_MODULE_8__, _HeaderButton__WEBPACK_IMPORTED_MODULE_10__, _Result__WEBPACK_IMPORTED_MODULE_11__, _SolveButton__WEBPACK_IMPORTED_MODULE_12__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
|
|
3285
|
+
|
|
3123
3286
|
|
|
3124
3287
|
|
|
3125
3288
|
|
|
@@ -3134,68 +3297,84 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([stat
|
|
|
3134
3297
|
|
|
3135
3298
|
|
|
3136
3299
|
const Results = ({ height , width })=>{
|
|
3137
|
-
const translate = (0,
|
|
3138
|
-
const allResults = (0,
|
|
3139
|
-
const results = (0,
|
|
3140
|
-
const isLoading = (0,
|
|
3141
|
-
const isOutdated = (0,
|
|
3300
|
+
const translate = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTranslate */ .qM)();
|
|
3301
|
+
const allResults = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectSortedResults */ .f2);
|
|
3302
|
+
const results = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectSortedFilteredResults */ .dN);
|
|
3303
|
+
const isLoading = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectIsLoading */ .xU);
|
|
3304
|
+
const isOutdated = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectAreResultsOutdated */ .Mj);
|
|
3305
|
+
const error = (0,state__WEBPACK_IMPORTED_MODULE_5__/* .useTypedSelector */ .ix)(state__WEBPACK_IMPORTED_MODULE_5__/* .selectSolveError */ .Rn);
|
|
3306
|
+
const listRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)();
|
|
3307
|
+
(0,react__WEBPACK_IMPORTED_MODULE_2__.useLayoutEffect)(()=>{
|
|
3308
|
+
if (listRef.current) {
|
|
3309
|
+
listRef.current.scrollTo(0, 0);
|
|
3310
|
+
}
|
|
3311
|
+
}, [
|
|
3312
|
+
listRef,
|
|
3313
|
+
results
|
|
3314
|
+
]);
|
|
3142
3315
|
return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
|
3143
|
-
className: (
|
|
3316
|
+
className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_13___default().results),
|
|
3144
3317
|
children: [
|
|
3145
3318
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
|
|
3146
|
-
className: (
|
|
3147
|
-
children:
|
|
3319
|
+
className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_13___default().header),
|
|
3320
|
+
children: _constants__WEBPACK_IMPORTED_MODULE_9__/* .COLUMNS.map */ .L.map((column)=>/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_HeaderButton__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
|
|
3148
3321
|
column: column
|
|
3149
3322
|
}, column.id))
|
|
3150
3323
|
}),
|
|
3151
|
-
typeof
|
|
3152
|
-
className: (
|
|
3324
|
+
typeof error !== "undefined" && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_EmptyState__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
|
|
3325
|
+
className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_13___default().emptyState),
|
|
3326
|
+
type: "error",
|
|
3327
|
+
children: error.message
|
|
3328
|
+
}),
|
|
3329
|
+
typeof results === "undefined" && typeof error === "undefined" && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_EmptyState__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
|
|
3330
|
+
className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_13___default().emptyState),
|
|
3153
3331
|
type: "info",
|
|
3154
3332
|
children: [
|
|
3155
3333
|
translate("results.empty-state.uninitialized"),
|
|
3156
|
-
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(
|
|
3334
|
+
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_SolveButton__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z, {})
|
|
3157
3335
|
]
|
|
3158
3336
|
}),
|
|
3159
|
-
typeof results !== "undefined" && typeof allResults !== "undefined" && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
|
|
3337
|
+
typeof results !== "undefined" && typeof allResults !== "undefined" && typeof error === "undefined" && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
|
|
3160
3338
|
children: [
|
|
3161
|
-
isOutdated && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(
|
|
3162
|
-
className: (
|
|
3339
|
+
isOutdated && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_EmptyState__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
|
|
3340
|
+
className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_13___default().emptyState),
|
|
3163
3341
|
type: "info",
|
|
3164
3342
|
children: [
|
|
3165
3343
|
translate("results.empty-state.outdated"),
|
|
3166
|
-
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(
|
|
3344
|
+
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_SolveButton__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z, {})
|
|
3167
3345
|
]
|
|
3168
3346
|
}),
|
|
3169
3347
|
!isOutdated && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {
|
|
3170
3348
|
children: [
|
|
3171
|
-
allResults.length === 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(
|
|
3172
|
-
className: (
|
|
3349
|
+
allResults.length === 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_EmptyState__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
|
|
3350
|
+
className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_13___default().emptyState),
|
|
3173
3351
|
type: "warning",
|
|
3174
3352
|
children: translate("results.empty-state.no-results")
|
|
3175
3353
|
}),
|
|
3176
|
-
allResults.length > 0 && results.length === 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(
|
|
3177
|
-
className: (
|
|
3354
|
+
allResults.length > 0 && results.length === 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_EmptyState__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
|
|
3355
|
+
className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_13___default().emptyState),
|
|
3178
3356
|
type: "info",
|
|
3179
3357
|
children: translate("results.empty-state.no-filtered-results")
|
|
3180
3358
|
}),
|
|
3181
|
-
allResults.length > 0 && results.length > 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(
|
|
3182
|
-
className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((
|
|
3183
|
-
[(
|
|
3359
|
+
allResults.length > 0 && results.length > 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(react_window__WEBPACK_IMPORTED_MODULE_3__.FixedSizeList, {
|
|
3360
|
+
className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_Results_module_scss__WEBPACK_IMPORTED_MODULE_13___default().list), {
|
|
3361
|
+
[(_Results_module_scss__WEBPACK_IMPORTED_MODULE_13___default().outdated)]: isOutdated
|
|
3184
3362
|
}),
|
|
3185
|
-
height: height -
|
|
3363
|
+
height: height - parameters__WEBPACK_IMPORTED_MODULE_4__/* .RESULTS_HEADER_HEIGHT */ .$L - parameters__WEBPACK_IMPORTED_MODULE_4__/* .RESULTS_INPUT_HEIGHT */ .qp,
|
|
3364
|
+
innerRef: listRef,
|
|
3186
3365
|
itemCount: results.length,
|
|
3187
|
-
itemSize:
|
|
3366
|
+
itemSize: parameters__WEBPACK_IMPORTED_MODULE_4__/* .RESULTS_ITEM_HEIGHT */ .rx,
|
|
3188
3367
|
width: width,
|
|
3189
|
-
children:
|
|
3368
|
+
children: _Result__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z
|
|
3190
3369
|
}),
|
|
3191
|
-
allResults.length > 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(
|
|
3192
|
-
className: (
|
|
3370
|
+
allResults.length > 0 && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_ResultsInput__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
|
|
3371
|
+
className: (_Results_module_scss__WEBPACK_IMPORTED_MODULE_13___default().input)
|
|
3193
3372
|
})
|
|
3194
3373
|
]
|
|
3195
3374
|
})
|
|
3196
3375
|
]
|
|
3197
3376
|
}),
|
|
3198
|
-
isLoading && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(
|
|
3377
|
+
isLoading && /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Loading__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {})
|
|
3199
3378
|
]
|
|
3200
3379
|
});
|
|
3201
3380
|
};
|
|
@@ -3344,7 +3523,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
|
|
|
3344
3523
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
|
|
3345
3524
|
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6022);
|
|
3346
3525
|
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
|
|
3347
|
-
/* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
|
|
3526
|
+
/* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75558);
|
|
3348
3527
|
/* harmony import */ var state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(51413);
|
|
3349
3528
|
/* harmony import */ var _ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(35628);
|
|
3350
3529
|
/* harmony import */ var _ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_ResultsInput_module_scss__WEBPACK_IMPORTED_MODULE_6__);
|
|
@@ -4134,7 +4313,6 @@ const Link = ({ className , Icon , tooltip , ...props })=>{
|
|
|
4134
4313
|
const triggerProps = (0,_Tooltip__WEBPACK_IMPORTED_MODULE_2__/* .useTooltip */ .l)(tooltip, props);
|
|
4135
4314
|
return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
|
4136
4315
|
className: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_SquareButton_module_scss__WEBPACK_IMPORTED_MODULE_3___default().squareButton), className),
|
|
4137
|
-
type: "button",
|
|
4138
4316
|
...props,
|
|
4139
4317
|
...triggerProps,
|
|
4140
4318
|
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
|
|
@@ -4265,8 +4443,8 @@ var jsx_runtime_ = __webpack_require__(20997);
|
|
|
4265
4443
|
var build = __webpack_require__(7618);
|
|
4266
4444
|
// EXTERNAL MODULE: external "react"
|
|
4267
4445
|
var external_react_ = __webpack_require__(16689);
|
|
4268
|
-
// EXTERNAL MODULE: ./src/lib/index.ts +
|
|
4269
|
-
var lib = __webpack_require__(
|
|
4446
|
+
// EXTERNAL MODULE: ./src/lib/index.ts + 29 modules
|
|
4447
|
+
var lib = __webpack_require__(75558);
|
|
4270
4448
|
// EXTERNAL MODULE: external "classnames"
|
|
4271
4449
|
var external_classnames_ = __webpack_require__(59003);
|
|
4272
4450
|
var external_classnames_default = /*#__PURE__*/__webpack_require__.n(external_classnames_);
|
|
@@ -4278,8 +4456,7 @@ var Tile_module_default = /*#__PURE__*/__webpack_require__.n(Tile_module);
|
|
|
4278
4456
|
|
|
4279
4457
|
|
|
4280
4458
|
|
|
4281
|
-
const
|
|
4282
|
-
const TilePure = ({ autoFocus , canShowPoints , character , className , disabled , highlighted , inputRef , inputStyle , isBlank , placeholder , points , pointsStyle , raised , style , tabIndex , onFocus , onKeyDown , })=>/*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
|
|
4459
|
+
const TilePure = ({ autoFocus , canShowPoints , character , className , disabled , highlighted , inputRef , inputStyle , isBlank , placeholder , points , pointsStyle , raised , style , tabIndex , onChange , onFocus , onKeyDown , })=>/*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
|
|
4283
4460
|
className: external_classnames_default()((Tile_module_default()).tile, className, {
|
|
4284
4461
|
[(Tile_module_default()).highlighted]: highlighted,
|
|
4285
4462
|
[(Tile_module_default()).blank]: isBlank,
|
|
@@ -4299,14 +4476,13 @@ const TilePure = ({ autoFocus , canShowPoints , character , className , disabled
|
|
|
4299
4476
|
autoFocus: autoFocus,
|
|
4300
4477
|
className: (Tile_module_default()).character,
|
|
4301
4478
|
disabled: disabled,
|
|
4302
|
-
maxLength: 1,
|
|
4303
4479
|
placeholder: placeholder,
|
|
4304
4480
|
ref: inputRef,
|
|
4305
4481
|
spellCheck: false,
|
|
4306
4482
|
style: inputStyle,
|
|
4307
4483
|
tabIndex: tabIndex,
|
|
4308
4484
|
value: character || "",
|
|
4309
|
-
onChange:
|
|
4485
|
+
onChange: onChange,
|
|
4310
4486
|
onFocus: onFocus,
|
|
4311
4487
|
onKeyDown: onKeyDown
|
|
4312
4488
|
}),
|
|
@@ -4325,7 +4501,7 @@ const TilePure = ({ autoFocus , canShowPoints , character , className , disabled
|
|
|
4325
4501
|
|
|
4326
4502
|
|
|
4327
4503
|
|
|
4328
|
-
const Tile = ({ autoFocus , className , character ="" , disabled , highlighted , inputRef: ref , isBlank , placeholder , points , raised , size , tabIndex , onFocus , onKeyDown , })=>{
|
|
4504
|
+
const Tile = ({ autoFocus , className , character ="" , disabled , highlighted , inputRef: ref , isBlank , placeholder , points , raised , size , tabIndex , onChange , onFocus =lib/* noop */.ZT , onKeyDown =lib/* noop */.ZT , })=>{
|
|
4329
4505
|
const { pointsFontSize , tileFontSize , tileSize } = (0,lib/* getTileSizes */.vc)(size);
|
|
4330
4506
|
const style = (0,external_react_.useMemo)(()=>({
|
|
4331
4507
|
height: tileSize,
|
|
@@ -4348,6 +4524,10 @@ const Tile = ({ autoFocus , className , character ="" , disabled , highlighted ,
|
|
|
4348
4524
|
]);
|
|
4349
4525
|
const isEmpty = !character || character === build.EMPTY_CELL;
|
|
4350
4526
|
const canShowPoints = (isBlank || !isEmpty) && typeof points !== "undefined";
|
|
4527
|
+
const handleKeyDown = (event)=>{
|
|
4528
|
+
inputRef.current?.select();
|
|
4529
|
+
onKeyDown(event);
|
|
4530
|
+
};
|
|
4351
4531
|
(0,external_react_.useEffect)(()=>{
|
|
4352
4532
|
if (autoFocus && inputRef.current) {
|
|
4353
4533
|
inputRef.current.focus();
|
|
@@ -4372,8 +4552,9 @@ const Tile = ({ autoFocus , className , character ="" , disabled , highlighted ,
|
|
|
4372
4552
|
raised: raised,
|
|
4373
4553
|
style: style,
|
|
4374
4554
|
tabIndex: tabIndex,
|
|
4555
|
+
onChange: onChange,
|
|
4375
4556
|
onFocus: onFocus,
|
|
4376
|
-
onKeyDown:
|
|
4557
|
+
onKeyDown: handleKeyDown
|
|
4377
4558
|
});
|
|
4378
4559
|
};
|
|
4379
4560
|
/* harmony default export */ const Tile_Tile = (Tile);
|
|
@@ -4463,7 +4644,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
|
|
|
4463
4644
|
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69755);
|
|
4464
4645
|
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_4__);
|
|
4465
4646
|
/* harmony import */ var hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26183);
|
|
4466
|
-
/* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
|
|
4647
|
+
/* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(75558);
|
|
4467
4648
|
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(8550);
|
|
4468
4649
|
/* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(222);
|
|
4469
4650
|
/* harmony import */ var _Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Tooltip_module_scss__WEBPACK_IMPORTED_MODULE_8__);
|
|
@@ -5021,7 +5202,7 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
|
|
|
5021
5202
|
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
|
|
5022
5203
|
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69755);
|
|
5023
5204
|
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_use__WEBPACK_IMPORTED_MODULE_2__);
|
|
5024
|
-
/* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
|
|
5205
|
+
/* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(75558);
|
|
5025
5206
|
/* harmony import */ var state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(51413);
|
|
5026
5207
|
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([state__WEBPACK_IMPORTED_MODULE_4__]);
|
|
5027
5208
|
state__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
@@ -5120,7 +5301,7 @@ __webpack_async_result__();
|
|
|
5120
5301
|
/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom_client__WEBPACK_IMPORTED_MODULE_2__);
|
|
5121
5302
|
/* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(63938);
|
|
5122
5303
|
/* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_portal__WEBPACK_IMPORTED_MODULE_3__);
|
|
5123
|
-
/* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
|
|
5304
|
+
/* harmony import */ var lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75558);
|
|
5124
5305
|
|
|
5125
5306
|
|
|
5126
5307
|
|