@scrabble-solver/scrabble-solver 2.15.9 → 2.15.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 +9 -9
- package/.next/cache/.rscinfo +1 -1
- package/.next/cache/.tsbuildinfo +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/client-production/index.pack.old +0 -0
- package/.next/cache/webpack/edge-server-production/0.pack +0 -0
- package/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/.next/cache/webpack/edge-server-production/index.pack.old +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack.old +0 -0
- package/.next/diagnostics/framework.json +1 -1
- package/.next/next-minimal-server.js.nft.json +1 -1
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +4 -4
- package/.next/required-server-files.json +1 -2
- package/.next/routes-manifest.json +1 -1
- package/.next/server/chunks/60.js +1 -1
- package/.next/server/chunks/812.js +1 -1
- package/.next/server/chunks/974.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/404.js.nft.json +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/_app.js.nft.json +1 -1
- package/.next/server/pages/api/dictionary/[locale]/[word].js +2 -2
- package/.next/server/pages/api/dictionary/[locale]/[word].js.nft.json +1 -1
- package/.next/server/pages/api/dictionary/[locale].js +1 -1
- package/.next/server/pages/api/dictionary/[locale].js.nft.json +1 -1
- package/.next/server/pages/api/solve.js +1 -1
- package/.next/server/pages/api/solve.js.nft.json +1 -1
- package/.next/server/pages/api/verify.js +1 -1
- package/.next/server/pages/api/verify.js.nft.json +1 -1
- package/.next/server/pages/api/visit.js +1 -1
- package/.next/server/pages/index.html +1 -1
- 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/server/webpack-api-runtime.js +1 -1
- package/.next/static/chunks/{main-b934e2c3dd3b55b5.js → main-016492249b3393e2.js} +1 -1
- package/.next/static/chunks/pages/{404-7451dd58396eaa39.js → 404-590e2a3839c1d9e0.js} +1 -1
- package/.next/static/chunks/pages/_app-ac93a74c390f2ab8.js +1 -0
- package/.next/static/chunks/pages/index-e5f1caa581e6d3b8.js +1 -0
- package/.next/static/{3MlxnccTCLyz9bgD30zY2 → ylO_ttKeJTuoqDYywao5A}/_buildManifest.js +1 -1
- package/.next/trace +23 -23
- package/next.config.js +3 -0
- package/package.json +10 -10
- package/src/api/getServerLoggingData.ts +1 -3
- package/src/api/index.ts +5 -5
- package/src/api/isBoardValid.ts +3 -5
- package/src/api/isCellValid.ts +4 -6
- package/src/api/isCharacterValid.ts +2 -3
- package/src/api/isRowValid.ts +3 -5
- package/src/components/Alert/Alert.tsx +1 -3
- package/src/components/Alert/index.ts +1 -1
- package/src/components/Badge/Badge.tsx +1 -3
- package/src/components/Badge/index.ts +1 -1
- package/src/components/Board/Board.tsx +2 -4
- package/src/components/Board/BoardPure.tsx +2 -2
- package/src/components/Board/components/Actions/Actions.tsx +3 -5
- package/src/components/Board/components/Actions/index.ts +1 -1
- package/src/components/Board/components/Cell/Cell.tsx +3 -5
- package/src/components/Board/components/Cell/index.ts +1 -1
- package/src/components/Board/components/InputPrompt/InputPrompt.tsx +3 -5
- package/src/components/Board/components/InputPrompt/index.ts +1 -1
- package/src/components/Board/components/ToggleDirectionButton/ToggleDirectionButton.tsx +2 -4
- package/src/components/Board/components/ToggleDirectionButton/index.ts +1 -1
- package/src/components/Board/components/index.ts +4 -4
- package/src/components/Board/hooks/index.ts +6 -6
- package/src/components/Board/hooks/useBackgroundImage.tsx +7 -9
- package/src/components/Board/hooks/useBoardStyle.ts +7 -9
- package/src/components/Board/hooks/useFloatingActions.ts +1 -3
- package/src/components/Board/hooks/useFloatingFocus.ts +1 -3
- package/src/components/Board/hooks/useFloatingInputPrompt.ts +1 -3
- package/src/components/Board/hooks/useGrid.ts +2 -4
- package/src/components/Board/index.ts +1 -1
- package/src/components/Board/lib/getBonusColor.ts +1 -3
- package/src/components/Board/lib/getPositionInGrid.ts +1 -3
- package/src/components/Board/lib/index.ts +2 -2
- package/src/components/Button/Button.tsx +3 -3
- package/src/components/Button/Link.tsx +1 -3
- package/src/components/Button/index.ts +1 -1
- package/src/components/Dictionary/Dictionary.tsx +3 -5
- package/src/components/Dictionary/index.ts +1 -1
- package/src/components/DictionaryInput/DictionaryInput.tsx +1 -3
- package/src/components/DictionaryInput/index.ts +1 -1
- package/src/components/EmptyState/EmptyState.tsx +2 -4
- package/src/components/EmptyState/index.ts +1 -1
- package/src/components/IconButton/IconButton.tsx +3 -3
- package/src/components/IconButton/Link.tsx +1 -3
- package/src/components/IconButton/index.ts +1 -1
- package/src/components/Key/Key.tsx +1 -3
- package/src/components/Key/index.ts +1 -1
- package/src/components/Keys/Arrows/Arrows.tsx +2 -4
- package/src/components/Keys/Arrows/index.ts +1 -1
- package/src/components/{keys.tsx → Keys/index.tsx} +3 -1
- package/src/components/Loading/Loading.tsx +2 -4
- package/src/components/Loading/index.ts +1 -1
- package/src/components/Logo/Logo.tsx +1 -3
- package/src/components/Logo/LogoBlueprint.tsx +2 -4
- package/src/components/Logo/index.ts +1 -1
- package/src/components/Modal/Modal.tsx +3 -3
- package/src/components/Modal/components/Section/Section.tsx +1 -3
- package/src/components/Modal/components/Section/index.ts +1 -1
- package/src/components/Modal/components/index.ts +1 -1
- package/src/components/Modal/index.ts +1 -1
- package/src/components/NavButtons/NavButtons.tsx +3 -3
- package/src/components/NavButtons/index.ts +1 -1
- package/src/components/NotFound/NotFound.tsx +2 -4
- package/src/components/NotFound/index.ts +1 -1
- package/src/components/PlainTiles/PlainTiles.tsx +10 -4
- package/src/components/PlainTiles/Tile.tsx +1 -3
- package/src/components/PlainTiles/index.ts +1 -1
- package/src/components/PlainTiles/lib/createPlainTile.ts +10 -6
- package/src/components/PlainTiles/lib/createPlainTiles.ts +2 -4
- package/src/components/PlainTiles/lib/getViewbox.ts +1 -3
- package/src/components/PlainTiles/lib/getX.ts +1 -3
- package/src/components/PlainTiles/lib/getY.ts +1 -3
- package/src/components/PlainTiles/lib/index.ts +6 -6
- package/src/components/PlainTiles/lib/randomize.ts +1 -3
- package/src/components/Progress/Progress.tsx +1 -3
- package/src/components/Progress/index.ts +1 -1
- package/src/components/Rack/Rack.tsx +2 -4
- package/src/components/Rack/components/InputPrompt/InputPrompt.tsx +2 -2
- package/src/components/Rack/components/InputPrompt/index.ts +1 -1
- package/src/components/Rack/components/RackTile/RackTile.tsx +4 -7
- package/src/components/Rack/components/RackTile/index.ts +1 -1
- package/src/components/Rack/components/index.ts +2 -2
- package/src/components/Rack/index.ts +1 -1
- package/src/components/Radio/Radio.tsx +1 -3
- package/src/components/Radio/index.ts +1 -1
- package/src/components/Results/Cell.tsx +9 -3
- package/src/components/Results/Header.tsx +2 -4
- package/src/components/Results/HeaderButton.tsx +1 -3
- package/src/components/Results/Result.tsx +2 -4
- package/src/components/Results/Results.tsx +7 -9
- package/src/components/Results/SolveButton.tsx +2 -4
- package/src/components/Results/index.ts +1 -1
- package/src/components/ResultsInput/ResultsInput.tsx +1 -3
- package/src/components/ResultsInput/index.ts +1 -1
- package/src/components/SeoMessage/SeoMessage.tsx +4 -6
- package/src/components/SeoMessage/index.ts +1 -1
- package/src/components/Solver/Solver.tsx +8 -8
- package/src/components/Solver/components/InsertButton/InsertButton.tsx +2 -4
- package/src/components/Solver/components/InsertButton/index.ts +1 -1
- package/src/components/Solver/components/ResultCandidatePicker/ResultCandidatePicker.tsx +4 -6
- package/src/components/Solver/components/ResultCandidatePicker/index.ts +1 -1
- package/src/components/Solver/components/index.ts +2 -2
- package/src/components/Solver/index.ts +1 -1
- package/src/components/Spinner/Spinner.tsx +1 -3
- package/src/components/Spinner/index.ts +1 -1
- package/src/components/Tile/Tile.tsx +2 -4
- package/src/components/Tile/TilePure.tsx +2 -2
- package/src/components/Tile/index.ts +1 -1
- package/src/components/Tooltip/TooltipTrigger.tsx +5 -3
- package/src/components/index.ts +24 -25
- package/src/hooks/index.ts +13 -13
- package/src/hooks/useAppLayout.ts +19 -15
- package/src/hooks/useColumns.ts +2 -4
- package/src/hooks/useDirection.ts +1 -3
- package/src/hooks/useEffectOnce.ts +2 -4
- package/src/hooks/useIsTouchDevice.ts +2 -4
- package/src/hooks/useLanguage.ts +1 -3
- package/src/hooks/useLatest.ts +1 -3
- package/src/hooks/useLocalStorage.ts +1 -3
- package/src/hooks/useMedia.ts +1 -3
- package/src/hooks/useMediaQueries.ts +2 -4
- package/src/hooks/useMediaQuery.ts +2 -4
- package/src/hooks/useOnWindowResize.ts +1 -3
- package/src/hooks/useViewportSize.ts +2 -4
- package/src/i18n/i18n.ts +1 -3
- package/src/i18n/index.ts +1 -1
- package/src/lib/arrayEquals.ts +1 -3
- package/src/lib/createArray.ts +1 -3
- package/src/lib/createComparator.ts +3 -5
- package/src/lib/createGridOf.ts +2 -4
- package/src/lib/createKeyComparator.ts +6 -5
- package/src/lib/createKeyboardNavigation.ts +2 -4
- package/src/lib/createNullMovingComparator.test.ts +1 -1
- package/src/lib/createNullMovingComparator.ts +1 -3
- package/src/lib/createRegExp.ts +1 -3
- package/src/lib/createStringComparator.ts +5 -3
- package/src/lib/detectLocale.ts +1 -3
- package/src/lib/extractCharacters.test.ts +1 -1
- package/src/lib/extractCharacters.ts +1 -3
- package/src/lib/extractCharactersByCase.test.ts +1 -1
- package/src/lib/extractCharactersByCase.ts +2 -4
- package/src/lib/extractInputValue.ts +1 -3
- package/src/lib/findCell.ts +1 -3
- package/src/lib/getCellSize.ts +3 -5
- package/src/lib/getCoordinate.ts +1 -3
- package/src/lib/getCoordinates.ts +2 -4
- package/src/lib/getRemainingTiles.ts +8 -5
- package/src/lib/getRemainingTilesCount.ts +1 -3
- package/src/lib/getRemainingTilesGroups.ts +3 -5
- package/src/lib/getTileSizes.ts +1 -3
- package/src/lib/getTotalRemainingTilesCount.ts +1 -3
- package/src/lib/groupResults.ts +3 -5
- package/src/lib/guessLocale.ts +2 -4
- package/src/lib/index.ts +39 -39
- package/src/lib/inverseDirection.ts +1 -3
- package/src/lib/isCtrl.ts +1 -3
- package/src/lib/isMac.ts +3 -4
- package/src/lib/isRegExp.ts +1 -3
- package/src/lib/isStringArray.ts +1 -3
- package/src/lib/isUpperCase.ts +1 -3
- package/src/lib/memoize.ts +18 -20
- package/src/lib/noop.ts +1 -3
- package/src/lib/numberComparator.ts +1 -3
- package/src/lib/resultMatchesCellFilter.ts +1 -3
- package/src/lib/reverseComparator.ts +1 -3
- package/src/lib/sortGroupedResults.ts +2 -4
- package/src/lib/sortResults.ts +5 -7
- package/src/lib/unorderedArraysEqual.ts +2 -4
- package/src/lib/zipCharactersAndTiles.ts +1 -3
- package/src/modals/DictionaryModal/DictionaryModal.tsx +2 -2
- package/src/modals/DictionaryModal/index.ts +1 -1
- package/src/modals/KeyMapModal/KeyMapModal.tsx +2 -2
- package/src/modals/KeyMapModal/components/Mapping/Mapping.tsx +1 -3
- package/src/modals/KeyMapModal/components/Mapping/index.ts +1 -1
- package/src/modals/KeyMapModal/components/index.ts +1 -1
- package/src/modals/KeyMapModal/index.ts +1 -1
- package/src/modals/MenuModal/MenuModal.tsx +2 -2
- package/src/modals/MenuModal/index.ts +1 -1
- package/src/modals/RemainingTilesModal/RemainingTilesModal.tsx +2 -2
- package/src/modals/RemainingTilesModal/components/Character/Character.tsx +1 -3
- package/src/modals/RemainingTilesModal/components/Character/index.ts +1 -1
- package/src/modals/RemainingTilesModal/components/index.ts +1 -1
- package/src/modals/RemainingTilesModal/index.ts +1 -1
- package/src/modals/ResultsModal/ResultsModal.tsx +2 -2
- package/src/modals/ResultsModal/index.ts +1 -1
- package/src/modals/SettingsModal/SettingsModal.tsx +2 -2
- package/src/modals/SettingsModal/components/AutoGroupTilesSetting/AutoGroupTilesSetting.tsx +1 -3
- package/src/modals/SettingsModal/components/AutoGroupTilesSetting/index.ts +1 -1
- package/src/modals/SettingsModal/components/ConfigSetting/ConfigSetting.tsx +4 -10
- package/src/modals/SettingsModal/components/ConfigSetting/index.ts +1 -1
- package/src/modals/SettingsModal/components/ConfigSetting/lib.ts +19 -0
- package/src/modals/SettingsModal/components/InputModeSetting/InputModeSetting.tsx +1 -3
- package/src/modals/SettingsModal/components/InputModeSetting/index.ts +1 -1
- package/src/modals/SettingsModal/components/LocaleSetting/LocaleSetting.tsx +1 -3
- package/src/modals/SettingsModal/components/LocaleSetting/index.ts +1 -1
- package/src/modals/SettingsModal/components/ShowCoordinatesSetting/ShowCoordinatesSetting.tsx +1 -3
- package/src/modals/SettingsModal/components/ShowCoordinatesSetting/index.ts +1 -1
- package/src/modals/SettingsModal/components/index.ts +5 -5
- package/src/modals/SettingsModal/index.ts +1 -1
- package/src/modals/WordsModal/WordsModal.tsx +2 -2
- package/src/modals/WordsModal/index.ts +1 -1
- package/src/modals/index.ts +7 -7
- package/src/pages/_app.tsx +2 -1
- package/src/pages/api/dictionary/[locale]/[word].ts +1 -1
- package/src/pages/api/dictionary/[locale]/index.ts +1 -1
- package/src/pages/api/solve.ts +6 -4
- package/src/pages/api/verify.ts +6 -4
- package/src/pages/api/visit.ts +2 -2
- package/src/pages/index.tsx +7 -0
- package/src/sdk/fetch.ts +1 -3
- package/src/sdk/fetchJson.ts +2 -4
- package/src/sdk/findWordDefinitions.ts +2 -4
- package/src/sdk/getDictionary.ts +2 -4
- package/src/sdk/index.ts +4 -4
- package/src/sdk/solve.ts +2 -4
- package/src/sdk/verify.ts +2 -4
- package/src/sdk/visit.ts +1 -3
- package/src/service-worker/average.ts +1 -3
- package/src/service-worker/dictionaries/expirationManager.ts +1 -3
- package/src/service-worker/dictionaries/getDictionary.ts +3 -5
- package/src/service-worker/dictionaries/getDictionaryUrl.ts +1 -3
- package/src/service-worker/dictionaries/index.ts +2 -2
- package/src/service-worker/dictionaries/revalidateDictionary.ts +3 -5
- package/src/service-worker/getTrie.ts +1 -3
- package/src/service-worker/index.ts +4 -2
- package/src/service-worker/routeSolveRequests.ts +17 -11
- package/src/service-worker/routeVerifyRequests.ts +7 -5
- package/src/serviceWorkerManager.ts +4 -4
- package/src/state/index.ts +4 -4
- package/src/state/localStorage.ts +10 -12
- package/src/state/sagas.ts +4 -1
- package/src/state/selectors.ts +2 -5
- package/src/state/slices/boardInitialState.ts +6 -7
- package/src/state/slices/boardSlice.ts +5 -7
- package/src/state/slices/cellFilterInitialState.ts +1 -3
- package/src/state/slices/cellFilterSlice.ts +2 -4
- package/src/state/slices/dictionaryInitialState.ts +2 -4
- package/src/state/slices/dictionarySlice.ts +2 -4
- package/src/state/slices/index.ts +16 -16
- package/src/state/slices/rackInitialState.ts +2 -4
- package/src/state/slices/rackSlice.ts +2 -4
- package/src/state/slices/resultsInitialState.ts +1 -3
- package/src/state/slices/resultsSlice.ts +2 -4
- package/src/state/slices/settingsInitialState.ts +2 -4
- package/src/state/slices/settingsSlice.ts +2 -4
- package/src/state/slices/solveInitialState.ts +3 -5
- package/src/state/slices/solveSlice.ts +2 -4
- package/src/state/slices/verifyInitialState.ts +2 -4
- package/src/state/slices/verifySlice.ts +2 -4
- package/src/state/store.ts +1 -3
- package/src/state/useTranslate.ts +2 -4
- package/src/state/useTypedSelector.ts +1 -3
- package/src/types/api.ts +15 -0
- package/src/types/index.ts +2 -0
- package/tsconfig.json +1 -1
- package/.next/cache/eslint/.cache_8dgz12 +0 -1
- package/.next/static/chunks/pages/_app-735105409cfdb48f.js +0 -1
- package/.next/static/chunks/pages/index-d492616d9bc42176.js +0 -1
- package/src/components/Keys/index.ts +0 -1
- package/tsconfig.jest.json +0 -7
- /package/.next/static/{3MlxnccTCLyz9bgD30zY2 → ylO_ttKeJTuoqDYywao5A}/_ssgManifest.js +0 -0
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
useTypedSelector,
|
|
13
13
|
} from 'state';
|
|
14
14
|
|
|
15
|
-
const useLocalStorage = () => {
|
|
15
|
+
export const useLocalStorage = () => {
|
|
16
16
|
const autoGroupTiles = useTypedSelector(selectAutoGroupTiles);
|
|
17
17
|
const board = useTypedSelector(selectBoard);
|
|
18
18
|
const game = useTypedSelector(selectGame);
|
|
@@ -63,5 +63,3 @@ const useLocalStorage = () => {
|
|
|
63
63
|
}
|
|
64
64
|
}, [showCoordinates]);
|
|
65
65
|
};
|
|
66
|
-
|
|
67
|
-
export default useLocalStorage;
|
package/src/hooks/useMedia.ts
CHANGED
|
@@ -12,7 +12,7 @@ const getInitialState = (query: string, defaultState?: boolean) => {
|
|
|
12
12
|
return window.matchMedia(query).matches;
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
const useMedia = (query: string, defaultState?: boolean) => {
|
|
15
|
+
export const useMedia = (query: string, defaultState?: boolean) => {
|
|
16
16
|
const [state, setState] = useState(getInitialState(query, defaultState));
|
|
17
17
|
|
|
18
18
|
useEffect(() => {
|
|
@@ -32,5 +32,3 @@ const useMedia = (query: string, defaultState?: boolean) => {
|
|
|
32
32
|
|
|
33
33
|
return state;
|
|
34
34
|
};
|
|
35
|
-
|
|
36
|
-
export default useMedia;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import useMediaQuery from './useMediaQuery';
|
|
1
|
+
import { useMediaQuery } from './useMediaQuery';
|
|
2
2
|
|
|
3
|
-
const useMediaQueries = () => {
|
|
3
|
+
export const useMediaQueries = () => {
|
|
4
4
|
const isLessThanXs = useMediaQuery('<xs');
|
|
5
5
|
const isLessThanS = useMediaQuery('<s');
|
|
6
6
|
const isLessThanM = useMediaQuery('<m');
|
|
@@ -9,5 +9,3 @@ const useMediaQueries = () => {
|
|
|
9
9
|
|
|
10
10
|
return { isLessThanXs, isLessThanS, isLessThanM, isLessThanL, isLessThanXl };
|
|
11
11
|
};
|
|
12
|
-
|
|
13
|
-
export default useMediaQueries;
|
|
@@ -2,11 +2,9 @@ import { buildMediaQuery } from 'include-media-query-builder';
|
|
|
2
2
|
|
|
3
3
|
import { BREAKPOINTS } from 'parameters';
|
|
4
4
|
|
|
5
|
-
import useMedia from './useMedia';
|
|
5
|
+
import { useMedia } from './useMedia';
|
|
6
6
|
|
|
7
|
-
const useMediaQuery = (query: string | string[], defaultState?: boolean
|
|
7
|
+
export const useMediaQuery = (query: string | string[], defaultState?: boolean): boolean => {
|
|
8
8
|
const mediaQuery = buildMediaQuery(BREAKPOINTS, query);
|
|
9
9
|
return useMedia(mediaQuery, defaultState);
|
|
10
10
|
};
|
|
11
|
-
|
|
12
|
-
export default useMediaQuery;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useEffect } from 'react';
|
|
2
2
|
|
|
3
|
-
const useOnWindowResize = (onResize: (event: Event) => void) => {
|
|
3
|
+
export const useOnWindowResize = (onResize: (event: Event) => void) => {
|
|
4
4
|
useEffect(() => {
|
|
5
5
|
window.addEventListener('resize', onResize);
|
|
6
6
|
|
|
@@ -9,5 +9,3 @@ const useOnWindowResize = (onResize: (event: Event) => void) => {
|
|
|
9
9
|
};
|
|
10
10
|
}, [onResize]);
|
|
11
11
|
};
|
|
12
|
-
|
|
13
|
-
export default useOnWindowResize;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useCallback, useState } from 'react';
|
|
2
2
|
|
|
3
|
-
import useOnWindowResize from './useOnWindowResize';
|
|
3
|
+
import { useOnWindowResize } from './useOnWindowResize';
|
|
4
4
|
|
|
5
|
-
const useViewportSize = () => {
|
|
5
|
+
export const useViewportSize = () => {
|
|
6
6
|
const [viewportHeight, setViewportHeight] = useState(typeof window === 'undefined' ? 0 : window.innerHeight);
|
|
7
7
|
const [viewportWidth, setViewportWidth] = useState(typeof window === 'undefined' ? 0 : window.innerWidth);
|
|
8
8
|
|
|
@@ -15,5 +15,3 @@ const useViewportSize = () => {
|
|
|
15
15
|
|
|
16
16
|
return { viewportHeight, viewportWidth };
|
|
17
17
|
};
|
|
18
|
-
|
|
19
|
-
export default useViewportSize;
|
package/src/i18n/i18n.ts
CHANGED
|
@@ -11,7 +11,7 @@ import romanian from './languages/romanian.json';
|
|
|
11
11
|
import spanish from './languages/spanish.json';
|
|
12
12
|
import turkish from './languages/turkish.json';
|
|
13
13
|
|
|
14
|
-
const i18n: Record<Locale, Translations> = {
|
|
14
|
+
export const i18n: Record<Locale, Translations> = {
|
|
15
15
|
[Locale.DE_DE]: german,
|
|
16
16
|
[Locale.EN_GB]: english,
|
|
17
17
|
[Locale.EN_US]: english,
|
|
@@ -22,5 +22,3 @@ const i18n: Record<Locale, Translations> = {
|
|
|
22
22
|
[Locale.RO_RO]: romanian,
|
|
23
23
|
[Locale.TR_TR]: turkish,
|
|
24
24
|
};
|
|
25
|
-
|
|
26
|
-
export default i18n;
|
package/src/i18n/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './constants';
|
|
2
|
-
export {
|
|
2
|
+
export { i18n } from './i18n';
|
package/src/lib/arrayEquals.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
const arrayEquals = <T>(array1: T[], array2: T[]): boolean => {
|
|
1
|
+
export const arrayEquals = <T>(array1: T[], array2: T[]): boolean => {
|
|
2
2
|
return array1.length === array2.length && array1.every((value, index) => value === array2[index]);
|
|
3
3
|
};
|
|
4
|
-
|
|
5
|
-
export default arrayEquals;
|
package/src/lib/createArray.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Comparator } from 'types';
|
|
2
2
|
|
|
3
|
-
import createStringComparator from './createStringComparator';
|
|
4
|
-
import numberComparator from './numberComparator';
|
|
3
|
+
import { createStringComparator } from './createStringComparator';
|
|
4
|
+
import { numberComparator } from './numberComparator';
|
|
5
5
|
|
|
6
|
-
const createComparator = <T>(locale: string): Comparator<T> => {
|
|
6
|
+
export const createComparator = <T>(locale: string): Comparator<T> => {
|
|
7
7
|
const stringComparator = createStringComparator(locale);
|
|
8
8
|
|
|
9
9
|
return (a: T, b: T): number => {
|
|
@@ -18,5 +18,3 @@ const createComparator = <T>(locale: string): Comparator<T> => {
|
|
|
18
18
|
return 0;
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
|
-
|
|
22
|
-
export default createComparator;
|
package/src/lib/createGridOf.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import createArray from './createArray';
|
|
1
|
+
import { createArray } from './createArray';
|
|
2
2
|
|
|
3
|
-
const createGridOf = <T>(width: number, height: number, getInitialValue: (x: number, y: number) => T): T[][] => {
|
|
3
|
+
export const createGridOf = <T>(width: number, height: number, getInitialValue: (x: number, y: number) => T): T[][] => {
|
|
4
4
|
return createArray(height).map((_row, y) => {
|
|
5
5
|
return createArray(width).map((_cell, x) => {
|
|
6
6
|
return getInitialValue(x, y);
|
|
7
7
|
});
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
|
|
11
|
-
export default createGridOf;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { Comparator } from 'types';
|
|
2
2
|
|
|
3
|
-
import createStringComparator from './createStringComparator';
|
|
4
|
-
import numberComparator from './numberComparator';
|
|
3
|
+
import { createStringComparator } from './createStringComparator';
|
|
4
|
+
import { numberComparator } from './numberComparator';
|
|
5
5
|
|
|
6
|
-
const createKeyComparator = <T extends Record<keyof T, unknown>>(
|
|
6
|
+
export const createKeyComparator = <T extends Record<keyof T, unknown>>(
|
|
7
|
+
key: keyof T,
|
|
8
|
+
locale: string,
|
|
9
|
+
): Comparator<T> => {
|
|
7
10
|
const stringComparator = createStringComparator(locale);
|
|
8
11
|
|
|
9
12
|
return (a: T, b: T): number => {
|
|
@@ -21,5 +24,3 @@ const createKeyComparator = <T extends Record<keyof T, unknown>>(key: keyof T, l
|
|
|
21
24
|
return 0;
|
|
22
25
|
};
|
|
23
26
|
};
|
|
24
|
-
|
|
25
|
-
export default createKeyComparator;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { KeyboardEventHandler } from 'react';
|
|
2
2
|
|
|
3
|
-
import noop from './noop';
|
|
3
|
+
import { noop } from './noop';
|
|
4
4
|
|
|
5
5
|
interface Parameters {
|
|
6
6
|
onArrowDown?: KeyboardEventHandler<HTMLInputElement>;
|
|
@@ -14,7 +14,7 @@ interface Parameters {
|
|
|
14
14
|
onSpace?: KeyboardEventHandler<HTMLInputElement>;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
const createKeyboardNavigation = ({
|
|
17
|
+
export const createKeyboardNavigation = ({
|
|
18
18
|
onArrowDown = noop,
|
|
19
19
|
onArrowLeft = noop,
|
|
20
20
|
onArrowRight = noop,
|
|
@@ -44,5 +44,3 @@ const createKeyboardNavigation = ({
|
|
|
44
44
|
|
|
45
45
|
return handleKeyDown;
|
|
46
46
|
};
|
|
47
|
-
|
|
48
|
-
export default createKeyboardNavigation;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const createNullMovingComparator = <T>(direction: 'left' | 'right') => {
|
|
1
|
+
export const createNullMovingComparator = <T>(direction: 'left' | 'right') => {
|
|
2
2
|
return (a: T | null, b: T | null): number => {
|
|
3
3
|
if (a === b) {
|
|
4
4
|
return 0;
|
|
@@ -15,5 +15,3 @@ const createNullMovingComparator = <T>(direction: 'left' | 'right') => {
|
|
|
15
15
|
return 0;
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
|
-
|
|
19
|
-
export default createNullMovingComparator;
|
package/src/lib/createRegExp.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const createRegExp = (input: string): RegExp => {
|
|
1
|
+
export const createRegExp = (input: string): RegExp => {
|
|
2
2
|
if (input.trim().length === 0) {
|
|
3
3
|
return /.*/;
|
|
4
4
|
}
|
|
@@ -9,5 +9,3 @@ const createRegExp = (input: string): RegExp => {
|
|
|
9
9
|
return /.*/;
|
|
10
10
|
}
|
|
11
11
|
};
|
|
12
|
-
|
|
13
|
-
export default createRegExp;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Comparator } from 'types';
|
|
2
2
|
|
|
3
|
-
const createStringComparator: (locale: string) => Comparator<string> = (locale) =>
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export const createStringComparator: (locale: string) => Comparator<string> = (locale) => {
|
|
4
|
+
return (a, b) => {
|
|
5
|
+
return a.localeCompare(b, locale);
|
|
6
|
+
};
|
|
7
|
+
};
|
package/src/lib/detectLocale.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Locale } from '@scrabble-solver/types';
|
|
2
2
|
|
|
3
|
-
const detectLocale = (): Locale => {
|
|
3
|
+
export const detectLocale = (): Locale => {
|
|
4
4
|
const languages = window.navigator.languages;
|
|
5
5
|
|
|
6
6
|
if (languages.includes('pl') || languages.includes('pl-PL')) {
|
|
@@ -25,5 +25,3 @@ const detectLocale = (): Locale => {
|
|
|
25
25
|
|
|
26
26
|
return Locale.EN_US;
|
|
27
27
|
};
|
|
28
|
-
|
|
29
|
-
export default detectLocale;
|
|
@@ -2,7 +2,7 @@ import { getConfig } from '@scrabble-solver/configs';
|
|
|
2
2
|
import { BLANK } from '@scrabble-solver/constants';
|
|
3
3
|
import { Game, Locale } from '@scrabble-solver/types';
|
|
4
4
|
|
|
5
|
-
import extractCharacters from './extractCharacters';
|
|
5
|
+
import { extractCharacters } from './extractCharacters';
|
|
6
6
|
|
|
7
7
|
const tests = [
|
|
8
8
|
{ input: 'ab ', expected: ['a', 'b', BLANK] },
|
|
@@ -14,7 +14,7 @@ const transliteratePerLocale: Record<Locale, (word: string) => string> = {
|
|
|
14
14
|
[Locale.TR_TR]: (word) => word,
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
-
const extractCharacters = (config: Config, value: string): string[] => {
|
|
17
|
+
export const extractCharacters = (config: Config, value: string): string[] => {
|
|
18
18
|
let index = 0;
|
|
19
19
|
const characters: string[] = [];
|
|
20
20
|
const localeTransliterate = transliteratePerLocale[config.locale];
|
|
@@ -38,5 +38,3 @@ const extractCharacters = (config: Config, value: string): string[] => {
|
|
|
38
38
|
|
|
39
39
|
return characters;
|
|
40
40
|
};
|
|
41
|
-
|
|
42
|
-
export default extractCharacters;
|
|
@@ -2,7 +2,7 @@ import { getConfig } from '@scrabble-solver/configs';
|
|
|
2
2
|
import { BLANK } from '@scrabble-solver/constants';
|
|
3
3
|
import { Game, Locale } from '@scrabble-solver/types';
|
|
4
4
|
|
|
5
|
-
import extractCharactersByCase from './extractCharactersByCase';
|
|
5
|
+
import { extractCharactersByCase } from './extractCharactersByCase';
|
|
6
6
|
|
|
7
7
|
const tests = [
|
|
8
8
|
{ input: 'ab ', expected: ['a', 'b', BLANK] },
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { BLANK } from '@scrabble-solver/constants';
|
|
2
2
|
import { Config } from '@scrabble-solver/types';
|
|
3
3
|
|
|
4
|
-
import isUpperCase from './isUpperCase';
|
|
4
|
+
import { isUpperCase } from './isUpperCase';
|
|
5
5
|
|
|
6
|
-
const extractCharactersByCase = (config: Config, value: string): string[] => {
|
|
6
|
+
export const extractCharactersByCase = (config: Config, value: string): string[] => {
|
|
7
7
|
let index = 0;
|
|
8
8
|
const characters: string[] = [];
|
|
9
9
|
|
|
@@ -27,5 +27,3 @@ const extractCharactersByCase = (config: Config, value: string): string[] => {
|
|
|
27
27
|
|
|
28
28
|
return characters;
|
|
29
29
|
};
|
|
30
|
-
|
|
31
|
-
export default extractCharactersByCase;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const extractInputValue = (input: HTMLInputElement) => {
|
|
1
|
+
export const extractInputValue = (input: HTMLInputElement) => {
|
|
2
2
|
const value = input.value.toLocaleLowerCase();
|
|
3
3
|
|
|
4
4
|
if (input.selectionStart === null || input.selectionEnd === null) {
|
|
@@ -13,5 +13,3 @@ const extractInputValue = (input: HTMLInputElement) => {
|
|
|
13
13
|
|
|
14
14
|
return value;
|
|
15
15
|
};
|
|
16
|
-
|
|
17
|
-
export default extractInputValue;
|
package/src/lib/findCell.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { Cell } from '@scrabble-solver/types';
|
|
2
2
|
|
|
3
|
-
const findCell = (cells: Cell[], x: number, y: number): Cell | undefined => {
|
|
3
|
+
export const findCell = (cells: Cell[], x: number, y: number): Cell | undefined => {
|
|
4
4
|
return cells.find((cell) => cell.x === x && cell.y === y);
|
|
5
5
|
};
|
|
6
|
-
|
|
7
|
-
export default findCell;
|
package/src/lib/getCellSize.ts
CHANGED
|
@@ -2,11 +2,9 @@ import { Config } from '@scrabble-solver/types';
|
|
|
2
2
|
|
|
3
3
|
import { BOARD_CELL_BORDER_WIDTH, BOARD_TILE_SIZE_MAX } from 'parameters';
|
|
4
4
|
|
|
5
|
-
const getCellSize = (config: Config, width: number, height: number): number => {
|
|
6
|
-
const maxWidth = (width - BOARD_CELL_BORDER_WIDTH) / config.
|
|
7
|
-
const maxHeight = (height - BOARD_CELL_BORDER_WIDTH) / config.
|
|
5
|
+
export const getCellSize = (config: Config, width: number, height: number): number => {
|
|
6
|
+
const maxWidth = (width - BOARD_CELL_BORDER_WIDTH) / config.boardWidth - BOARD_CELL_BORDER_WIDTH;
|
|
7
|
+
const maxHeight = (height - BOARD_CELL_BORDER_WIDTH) / config.boardHeight - BOARD_CELL_BORDER_WIDTH;
|
|
8
8
|
const cellSize = Math.min(maxWidth, maxHeight);
|
|
9
9
|
return Math.floor(Math.min(cellSize, BOARD_TILE_SIZE_MAX));
|
|
10
10
|
};
|
|
11
|
-
|
|
12
|
-
export default getCellSize;
|
package/src/lib/getCoordinate.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
2
2
|
|
|
3
|
-
const getCoordinate = (index: number, type: 'letter' | 'number'): string => {
|
|
3
|
+
export const getCoordinate = (index: number, type: 'letter' | 'number'): string => {
|
|
4
4
|
if (type === 'number') {
|
|
5
5
|
return String(index + 1);
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
return alphabet[index];
|
|
9
9
|
};
|
|
10
|
-
|
|
11
|
-
export default getCoordinate;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Result, ShowCoordinates } from '@scrabble-solver/types';
|
|
2
2
|
|
|
3
|
-
import getCoordinate from './getCoordinate';
|
|
3
|
+
import { getCoordinate } from './getCoordinate';
|
|
4
4
|
|
|
5
|
-
const getCoordinates = (result: Result, showCoordinates: ShowCoordinates): string => {
|
|
5
|
+
export const getCoordinates = (result: Result, showCoordinates: ShowCoordinates): string => {
|
|
6
6
|
if (showCoordinates === 'hidden') {
|
|
7
7
|
return '';
|
|
8
8
|
}
|
|
@@ -14,5 +14,3 @@ const getCoordinates = (result: Result, showCoordinates: ShowCoordinates): strin
|
|
|
14
14
|
|
|
15
15
|
return isHorizontal ? `${y}${x}` : `${x}${y}`;
|
|
16
16
|
};
|
|
17
|
-
|
|
18
|
-
export default getCoordinates;
|
|
@@ -3,9 +3,14 @@ import { Board, Config } from '@scrabble-solver/types';
|
|
|
3
3
|
|
|
4
4
|
import { RemainingTile } from 'types';
|
|
5
5
|
|
|
6
|
-
import createKeyComparator from './createKeyComparator';
|
|
7
|
-
|
|
8
|
-
const getRemainingTiles = (
|
|
6
|
+
import { createKeyComparator } from './createKeyComparator';
|
|
7
|
+
|
|
8
|
+
export const getRemainingTiles = (
|
|
9
|
+
config: Config,
|
|
10
|
+
board: Board,
|
|
11
|
+
characters: string[],
|
|
12
|
+
locale: string,
|
|
13
|
+
): RemainingTile[] => {
|
|
9
14
|
const nonEmptyCells = board.rows.flat().filter((cell) => !cell.isEmpty);
|
|
10
15
|
const letterCells = nonEmptyCells.filter((cell) => !cell.tile.isBlank);
|
|
11
16
|
const remainingTiles = Object.fromEntries(config.tiles.map((tile) => [tile.character, { ...tile, usedCount: 0 }]));
|
|
@@ -40,5 +45,3 @@ const getRemainingTiles = (config: Config, board: Board, characters: string[], l
|
|
|
40
45
|
|
|
41
46
|
return [...Object.values(remainingTiles).sort(comparator), blank];
|
|
42
47
|
};
|
|
43
|
-
|
|
44
|
-
export default getRemainingTiles;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { RemainingTile } from 'types';
|
|
2
2
|
|
|
3
|
-
const getRemainingTilesCount = (remainingTiles: RemainingTile[]): number => {
|
|
3
|
+
export const getRemainingTilesCount = (remainingTiles: RemainingTile[]): number => {
|
|
4
4
|
return remainingTiles.reduce((sum, { count, usedCount }) => sum + count - usedCount, 0);
|
|
5
5
|
};
|
|
6
|
-
|
|
7
|
-
export default getRemainingTilesCount;
|
|
@@ -2,10 +2,10 @@ import { BLANK, CONSONANTS, VOWELS } from '@scrabble-solver/constants';
|
|
|
2
2
|
|
|
3
3
|
import { RemainingTile, RemainingTilesGroup } from 'types';
|
|
4
4
|
|
|
5
|
-
import getRemainingTilesCount from './getRemainingTilesCount';
|
|
6
|
-
import getTotalRemainingTilesCount from './getTotalRemainingTilesCount';
|
|
5
|
+
import { getRemainingTilesCount } from './getRemainingTilesCount';
|
|
6
|
+
import { getTotalRemainingTilesCount } from './getTotalRemainingTilesCount';
|
|
7
7
|
|
|
8
|
-
const getRemainingTilesGroups = (remainingTiles: RemainingTile[]): RemainingTilesGroup[] => {
|
|
8
|
+
export const getRemainingTilesGroups = (remainingTiles: RemainingTile[]): RemainingTilesGroup[] => {
|
|
9
9
|
const consonants = remainingTiles.filter(isConsonant);
|
|
10
10
|
const vowels = remainingTiles.filter(isVowel);
|
|
11
11
|
const other = remainingTiles.filter(isOther);
|
|
@@ -62,5 +62,3 @@ const isBlank = (tile: RemainingTile): boolean => tile.character === BLANK;
|
|
|
62
62
|
|
|
63
63
|
const isOther = (tile: RemainingTile) =>
|
|
64
64
|
!isConsonant(tile) && !isVowel(tile) && !isBlank(tile) && !isTwoCharacter(tile);
|
|
65
|
-
|
|
66
|
-
export default getRemainingTilesGroups;
|
package/src/lib/getTileSizes.ts
CHANGED
|
@@ -6,10 +6,8 @@ interface TileSizes {
|
|
|
6
6
|
tileSize: number;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
const getTileSizes = (tileSize: number): TileSizes => ({
|
|
9
|
+
export const getTileSizes = (tileSize: number): TileSizes => ({
|
|
10
10
|
pointsFontSize: Math.max(Math.round(tileSize * 0.25), BOARD_TILE_FONT_SIZE_POINTS_MIN),
|
|
11
11
|
tileFontSize: Math.max(Math.round(tileSize * 0.6), BOARD_TILE_FONT_SIZE_MIN),
|
|
12
12
|
tileSize,
|
|
13
13
|
});
|
|
14
|
-
|
|
15
|
-
export default getTileSizes;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { RemainingTile } from 'types';
|
|
2
2
|
|
|
3
|
-
const getTotalRemainingTilesCount = (remainingTiles: RemainingTile[]): number => {
|
|
3
|
+
export const getTotalRemainingTilesCount = (remainingTiles: RemainingTile[]): number => {
|
|
4
4
|
return remainingTiles.reduce((sum, { count }) => sum + count, 0);
|
|
5
5
|
};
|
|
6
|
-
|
|
7
|
-
export default getTotalRemainingTilesCount;
|
package/src/lib/groupResults.ts
CHANGED
|
@@ -2,10 +2,10 @@ import { Result } from '@scrabble-solver/types';
|
|
|
2
2
|
|
|
3
3
|
import { CellFilterEntry, GroupedResults } from 'types';
|
|
4
4
|
|
|
5
|
-
import createRegExp from './createRegExp';
|
|
6
|
-
import resultMatchesCellFilter from './resultMatchesCellFilter';
|
|
5
|
+
import { createRegExp } from './createRegExp';
|
|
6
|
+
import { resultMatchesCellFilter } from './resultMatchesCellFilter';
|
|
7
7
|
|
|
8
|
-
const groupResults = (
|
|
8
|
+
export const groupResults = (
|
|
9
9
|
results: Result[] | undefined,
|
|
10
10
|
query: string,
|
|
11
11
|
cellFilter: CellFilterEntry[],
|
|
@@ -33,5 +33,3 @@ const groupResults = (
|
|
|
33
33
|
|
|
34
34
|
return { matching, other };
|
|
35
35
|
};
|
|
36
|
-
|
|
37
|
-
export default groupResults;
|
package/src/lib/guessLocale.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Locale } from '@scrabble-solver/types';
|
|
2
2
|
|
|
3
|
-
const guessLocale = (): Locale => {
|
|
3
|
+
export const guessLocale = (): Locale => {
|
|
4
4
|
if (!globalThis.navigator) {
|
|
5
5
|
return Locale.EN_US;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
const locales = Object.values(Locale);
|
|
9
|
-
const exactMatch = locales.find((locale) => globalThis.navigator.language === locale);
|
|
9
|
+
const exactMatch = locales.find((locale) => globalThis.navigator.language === String(locale));
|
|
10
10
|
|
|
11
11
|
if (exactMatch) {
|
|
12
12
|
return exactMatch;
|
|
@@ -18,5 +18,3 @@ const guessLocale = (): Locale => {
|
|
|
18
18
|
|
|
19
19
|
return partialMatch || Locale.EN_US;
|
|
20
20
|
};
|
|
21
|
-
|
|
22
|
-
export default guessLocale;
|
package/src/lib/index.ts
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
18
|
-
export {
|
|
19
|
-
export {
|
|
20
|
-
export {
|
|
21
|
-
export {
|
|
22
|
-
export {
|
|
23
|
-
export {
|
|
24
|
-
export {
|
|
25
|
-
export {
|
|
26
|
-
export {
|
|
27
|
-
export {
|
|
28
|
-
export {
|
|
29
|
-
export {
|
|
30
|
-
export {
|
|
31
|
-
export {
|
|
32
|
-
export {
|
|
33
|
-
export {
|
|
34
|
-
export {
|
|
35
|
-
export {
|
|
36
|
-
export {
|
|
37
|
-
export {
|
|
38
|
-
export {
|
|
39
|
-
export {
|
|
1
|
+
export { arrayEquals } from './arrayEquals';
|
|
2
|
+
export { createArray } from './createArray';
|
|
3
|
+
export { createComparator } from './createComparator';
|
|
4
|
+
export { createGridOf } from './createGridOf';
|
|
5
|
+
export { createKeyComparator } from './createKeyComparator';
|
|
6
|
+
export { createKeyboardNavigation } from './createKeyboardNavigation';
|
|
7
|
+
export { createNullMovingComparator } from './createNullMovingComparator';
|
|
8
|
+
export { createRegExp } from './createRegExp';
|
|
9
|
+
export { createStringComparator } from './createStringComparator';
|
|
10
|
+
export { detectLocale } from './detectLocale';
|
|
11
|
+
export { extractCharacters } from './extractCharacters';
|
|
12
|
+
export { extractCharactersByCase } from './extractCharactersByCase';
|
|
13
|
+
export { extractInputValue } from './extractInputValue';
|
|
14
|
+
export { findCell } from './findCell';
|
|
15
|
+
export { getCellSize } from './getCellSize';
|
|
16
|
+
export { getCoordinate } from './getCoordinate';
|
|
17
|
+
export { getCoordinates } from './getCoordinates';
|
|
18
|
+
export { getRemainingTiles } from './getRemainingTiles';
|
|
19
|
+
export { getRemainingTilesCount } from './getRemainingTilesCount';
|
|
20
|
+
export { getRemainingTilesGroups } from './getRemainingTilesGroups';
|
|
21
|
+
export { getTileSizes } from './getTileSizes';
|
|
22
|
+
export { getTotalRemainingTilesCount } from './getTotalRemainingTilesCount';
|
|
23
|
+
export { groupResults } from './groupResults';
|
|
24
|
+
export { guessLocale } from './guessLocale';
|
|
25
|
+
export { inverseDirection } from './inverseDirection';
|
|
26
|
+
export { isCtrl } from './isCtrl';
|
|
27
|
+
export { isMac } from './isMac';
|
|
28
|
+
export { isRegExp } from './isRegExp';
|
|
29
|
+
export { isStringArray } from './isStringArray';
|
|
30
|
+
export { isUpperCase } from './isUpperCase';
|
|
31
|
+
export { memoize } from './memoize';
|
|
32
|
+
export { noop } from './noop';
|
|
33
|
+
export { numberComparator } from './numberComparator';
|
|
34
|
+
export { resultMatchesCellFilter } from './resultMatchesCellFilter';
|
|
35
|
+
export { reverseComparator } from './reverseComparator';
|
|
36
|
+
export { sortGroupedResults } from './sortGroupedResults';
|
|
37
|
+
export { sortResults } from './sortResults';
|
|
38
|
+
export { unorderedArraysEqual } from './unorderedArraysEqual';
|
|
39
|
+
export { zipCharactersAndTiles } from './zipCharactersAndTiles';
|
package/src/lib/isCtrl.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { KeyboardEvent } from 'react';
|
|
2
2
|
|
|
3
|
-
const isCtrl = <T>(event: KeyboardEvent<T> | globalThis.KeyboardEvent): boolean => {
|
|
3
|
+
export const isCtrl = <T>(event: KeyboardEvent<T> | globalThis.KeyboardEvent): boolean => {
|
|
4
4
|
return event.ctrlKey || event.metaKey;
|
|
5
5
|
};
|
|
6
|
-
|
|
7
|
-
export default isCtrl;
|
package/src/lib/isMac.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
const isMac = (): boolean => {
|
|
1
|
+
export const isMac = (): boolean => {
|
|
2
2
|
if (!globalThis.navigator) {
|
|
3
3
|
return false;
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
7
|
+
return globalThis.navigator.platform.startsWith('Mac') || globalThis.navigator.platform === 'iPhone';
|
|
7
8
|
};
|
|
8
|
-
|
|
9
|
-
export default isMac;
|
package/src/lib/isRegExp.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const isRegExp = (value: string): boolean => {
|
|
1
|
+
export const isRegExp = (value: string): boolean => {
|
|
2
2
|
try {
|
|
3
3
|
// eslint-disable-next-line no-new
|
|
4
4
|
new RegExp(value);
|
|
@@ -7,5 +7,3 @@ const isRegExp = (value: string): boolean => {
|
|
|
7
7
|
return false;
|
|
8
8
|
}
|
|
9
9
|
};
|
|
10
|
-
|
|
11
|
-
export default isRegExp;
|