@gamepark/react-game 7.4.1 → 7.5.0
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/dist/components/Avatar/SpeechBubble.js +1 -1
- package/dist/components/GameProvider/GameProvider.js +33 -1
- package/dist/components/GameProvider/GameProvider.js.map +1 -1
- package/dist/components/Header/Header.js +10 -7
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/JournalTabs/Chat/ChatTextInput.js +4 -1
- package/dist/components/JournalTabs/Chat/ChatTextInput.js.map +1 -1
- package/dist/components/JournalTabs/Chat/SignInToChat.js +13 -1
- package/dist/components/JournalTabs/Chat/SignInToChat.js.map +1 -1
- package/dist/components/JournalTabs/History/History.js +3 -2
- package/dist/components/JournalTabs/History/History.js.map +1 -1
- package/dist/components/JournalTabs/JournalTabs.js +8 -7
- package/dist/components/JournalTabs/JournalTabs.js.map +1 -1
- package/dist/components/LoadingScreen/LoadingScreen.js +2 -2
- package/dist/components/Log/LiveLogButton.js +2 -2
- package/dist/components/Log/LiveLogButton.js.map +1 -1
- package/dist/components/PlayerPanel/Counters.js +3 -1
- package/dist/components/PlayerPanel/Counters.js.map +1 -1
- package/dist/components/PlayerPanel/PlayerPanel.js +9 -7
- package/dist/components/PlayerPanel/PlayerPanel.js.map +1 -1
- package/dist/components/PlayerPanel/StyledPlayerPanel.js +6 -5
- package/dist/components/PlayerPanel/StyledPlayerPanel.js.map +1 -1
- package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js +6 -6
- package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js.map +1 -1
- package/dist/components/dialogs/Dialog.js +6 -5
- package/dist/components/dialogs/Dialog.js.map +1 -1
- package/dist/components/dialogs/FailuresDialog.js +5 -3
- package/dist/components/dialogs/FailuresDialog.js.map +1 -1
- package/dist/components/dialogs/ResultDialog/RematchDisplay.js +4 -3
- package/dist/components/dialogs/ResultDialog/RematchDisplay.js.map +1 -1
- package/dist/components/dialogs/ResultDialog/RematchSection.js +4 -3
- package/dist/components/dialogs/ResultDialog/RematchSection.js.map +1 -1
- package/dist/components/dialogs/ResultDialog/ResultDialog.js +36 -21
- package/dist/components/dialogs/ResultDialog/ResultDialog.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/DefaultHelpDisplay.d.ts +2 -0
- package/dist/components/dialogs/RulesDialog/DefaultHelpDisplay.js +25 -0
- package/dist/components/dialogs/RulesDialog/DefaultHelpDisplay.js.map +1 -0
- package/dist/components/dialogs/RulesDialog/LocationRulesDialogContent.js +3 -2
- package/dist/components/dialogs/RulesDialog/LocationRulesDialogContent.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js +8 -25
- package/dist/components/dialogs/RulesDialog/MaterialRulesDialogContent.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/RulesDialog.js +5 -4
- package/dist/components/dialogs/RulesDialog/RulesDialog.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/RulesHelpDialogContent.js +4 -3
- package/dist/components/dialogs/RulesDialog/RulesHelpDialogContent.js.map +1 -1
- package/dist/components/dialogs/RulesDialog/index.d.ts +1 -0
- package/dist/components/dialogs/RulesDialog/index.js +1 -0
- package/dist/components/dialogs/RulesDialog/index.js.map +1 -1
- package/dist/components/material/GameTable/GameTableNavigation.js +1 -1
- package/dist/components/material/MaterialDescription.d.ts +13 -0
- package/dist/components/material/MaterialDescription.js +7 -0
- package/dist/components/material/MaterialDescription.js.map +1 -1
- package/dist/components/material/animations/CreateItemAnimations.js +24 -17
- package/dist/components/material/animations/CreateItemAnimations.js.map +1 -1
- package/dist/components/material/animations/MoveItemAnimations.js +1 -2
- package/dist/components/material/animations/MoveItemAnimations.js.map +1 -1
- package/dist/components/menus/EjectPlayer/EjectPlayerButton.js +2 -22
- package/dist/components/menus/EjectPlayer/EjectPlayerButton.js.map +1 -1
- package/dist/components/menus/EjectPlayer/EjectPlayerDialog.js +6 -16
- package/dist/components/menus/EjectPlayer/EjectPlayerDialog.js.map +1 -1
- package/dist/components/menus/EjectPlayer/EjectPlayerPopButton.js +12 -1
- package/dist/components/menus/EjectPlayer/EjectPlayerPopButton.js.map +1 -1
- package/dist/components/menus/Fullscreen/FullscreenButton.js +4 -2
- package/dist/components/menus/Fullscreen/FullscreenButton.js.map +1 -1
- package/dist/components/menus/Fullscreen/FullscreenDialog.js +6 -4
- package/dist/components/menus/Fullscreen/FullscreenDialog.js.map +1 -1
- package/dist/components/menus/Fullscreen/FullscreenPopButton.js +4 -2
- package/dist/components/menus/Fullscreen/FullscreenPopButton.js.map +1 -1
- package/dist/components/menus/GiveUpButton/GiveUpButton.js +7 -16
- package/dist/components/menus/GiveUpButton/GiveUpButton.js.map +1 -1
- package/dist/components/menus/Menu/Menu.js +7 -6
- package/dist/components/menus/Menu/Menu.js.map +1 -1
- package/dist/components/menus/Menu/NavButton.js +4 -2
- package/dist/components/menus/Menu/NavButton.js.map +1 -1
- package/dist/components/menus/PlayerQuit/TrackPlayersQuit.js +4 -2
- package/dist/components/menus/PlayerQuit/TrackPlayersQuit.js.map +1 -1
- package/dist/components/menus/RestartTutorialButton/RestartTutorialButton.js +2 -2
- package/dist/components/menus/RestartTutorialButton/RestartTutorialButton.js.map +1 -1
- package/dist/components/menus/Result/ResultButton.js +2 -2
- package/dist/components/menus/Result/ResultButton.js.map +1 -1
- package/dist/components/menus/Result/ResultPopButton.js +4 -2
- package/dist/components/menus/Result/ResultPopButton.js.map +1 -1
- package/dist/components/menus/SoundButton/SoundButton.js +2 -2
- package/dist/components/menus/SoundButton/SoundButton.js.map +1 -1
- package/dist/components/menus/TimeStatsButton/TimeStatsButton.js +12 -11
- package/dist/components/menus/TimeStatsButton/TimeStatsButton.js.map +1 -1
- package/dist/components/menus/UndoButton/UndoButton.js +2 -2
- package/dist/components/menus/UndoButton/UndoButton.js.map +1 -1
- package/dist/components/menus/UndoButton/UndoPopButton.js +4 -2
- package/dist/components/menus/UndoButton/UndoPopButton.js.map +1 -1
- package/dist/components/menus/menuCss.d.ts +5 -0
- package/dist/components/menus/menuCss.js +58 -5
- package/dist/components/menus/menuCss.js.map +1 -1
- package/dist/components/tutorial/MaterialTutorialDisplay.js +7 -5
- package/dist/components/tutorial/MaterialTutorialDisplay.js.map +1 -1
- package/dist/css/GameTheme.d.ts +64 -0
- package/dist/css/GameTheme.js +17 -1
- package/dist/css/GameTheme.js.map +1 -1
- package/dist/css/buttonCss.d.ts +1 -0
- package/dist/css/buttonCss.js +25 -0
- package/dist/css/buttonCss.js.map +1 -1
- package/dist/locators/GridLocator.d.ts +88 -0
- package/dist/locators/GridLocator.js +156 -0
- package/dist/locators/GridLocator.js.map +1 -0
- package/dist/locators/HandLocator.d.ts +1 -1
- package/dist/locators/ListLocator.d.ts +1 -1
- package/dist/locators/PileLocator.d.ts +1 -1
- package/dist/locators/index.d.ts +1 -0
- package/dist/locators/index.js +1 -0
- package/dist/locators/index.js.map +1 -1
- package/dist/utilities/translation.util.js +7 -9
- package/dist/utilities/translation.util.js.map +1 -1
- package/package.json +3 -3
package/dist/css/buttonCss.js
CHANGED
|
@@ -32,6 +32,31 @@ export const buttonCss = (color, focus, active) => css `
|
|
|
32
32
|
opacity: 0.5;
|
|
33
33
|
}
|
|
34
34
|
`;
|
|
35
|
+
export const onSurfaceButtonCss = css `
|
|
36
|
+
${buttonResetCss};
|
|
37
|
+
|
|
38
|
+
padding: 0.2em 0.5em;
|
|
39
|
+
border-radius: 2em;
|
|
40
|
+
border: 0.05em solid var(--gp-on-surface);
|
|
41
|
+
color: var(--gp-on-surface);
|
|
42
|
+
background: transparent;
|
|
43
|
+
|
|
44
|
+
&:focus, &:hover {
|
|
45
|
+
background: var(--gp-on-surface-focus);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&:active {
|
|
49
|
+
background: var(--gp-on-surface-active);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
&:disabled {
|
|
53
|
+
color: #555555;
|
|
54
|
+
border-color: #555555;
|
|
55
|
+
background: transparent;
|
|
56
|
+
cursor: auto;
|
|
57
|
+
opacity: 0.5;
|
|
58
|
+
}
|
|
59
|
+
`;
|
|
35
60
|
export const linkButtonCss = css `
|
|
36
61
|
${buttonResetCss};
|
|
37
62
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttonCss.js","sourceRoot":"","sources":["../../src/css/buttonCss.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAEpC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;;CAOhC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,MAAc,EAAE,EAAE,CAAC,GAAG,CAAA;IAC1E,cAAc;;;;yBAIO,KAAK;WACnB,KAAK;;;;kBAIE,KAAK;;;;kBAIL,MAAM;;;;;;;;;;CAUvB,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;IAC5B,cAAc;;;;;;;;;;CAUjB,CAAA"}
|
|
1
|
+
{"version":3,"file":"buttonCss.js","sourceRoot":"","sources":["../../src/css/buttonCss.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAEpC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;;CAOhC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,MAAc,EAAE,EAAE,CAAC,GAAG,CAAA;IAC1E,cAAc;;;;yBAIO,KAAK;WACnB,KAAK;;;;kBAIE,KAAK;;;;kBAIL,MAAM;;;;;;;;;;CAUvB,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAA;IACjC,cAAc;;;;;;;;;;;;;;;;;;;;;;;CAuBjB,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;IAC5B,cAAc;;;;;;;;;;CAUjB,CAAA"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { Coordinates, Location } from '@gamepark/rules-api';
|
|
2
|
+
import { Locator, MaterialContext } from './Locator';
|
|
3
|
+
/**
|
|
4
|
+
* Boundaries of items on the grid, in grid coordinates (not em).
|
|
5
|
+
*/
|
|
6
|
+
export type GridBoundaries = {
|
|
7
|
+
xMin: number;
|
|
8
|
+
xMax: number;
|
|
9
|
+
yMin: number;
|
|
10
|
+
yMax: number;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Dimensions of the visible grid window, in cells.
|
|
14
|
+
*/
|
|
15
|
+
export type GridSize = {
|
|
16
|
+
columns: number;
|
|
17
|
+
rows: number;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* This Locator places items on a rectangular grid with automatic panning.
|
|
21
|
+
*
|
|
22
|
+
* Items are positioned using their `location.x` and `location.y` as grid coordinates.
|
|
23
|
+
* The gap between cells is defined by {@link gap} (in em).
|
|
24
|
+
*
|
|
25
|
+
* When a {@link gridSize} is provided, the locator maintains a stable visible window:
|
|
26
|
+
* as long as all items fit inside, nothing moves. When items exceed the window,
|
|
27
|
+
* the view recenters on the barycentre.
|
|
28
|
+
*
|
|
29
|
+
* Without {@link gridSize}, the grid always centers on the barycentre of the items.
|
|
30
|
+
*
|
|
31
|
+
* Multiple independent grids are supported via {@link getGridId}, following the same
|
|
32
|
+
* pattern as {@link PileLocator.getPileId}.
|
|
33
|
+
*
|
|
34
|
+
* Override {@link getBoundaries} to provide custom boundaries (e.g. from a game helper).
|
|
35
|
+
*/
|
|
36
|
+
export declare class GridLocator<P extends number = number, M extends number = number, L extends number = number> extends Locator<P, M, L> {
|
|
37
|
+
constructor(clone?: Partial<GridLocator>);
|
|
38
|
+
/**
|
|
39
|
+
* The gap between two consecutive grid cells, in em.
|
|
40
|
+
*/
|
|
41
|
+
gap?: Partial<Coordinates>;
|
|
42
|
+
/**
|
|
43
|
+
* Function to override to provide a {@link gap} that depends on the context.
|
|
44
|
+
* @param _location Location to position
|
|
45
|
+
* @param _context Context of the game
|
|
46
|
+
* @returns The gap between two consecutive grid cells
|
|
47
|
+
*/
|
|
48
|
+
getGap(_location: Location<P, L>, _context: MaterialContext<P, M, L>): Partial<Coordinates>;
|
|
49
|
+
/**
|
|
50
|
+
* The size of the visible grid window, in cells.
|
|
51
|
+
* When items fit inside the window, the view does not move.
|
|
52
|
+
* When items exceed it, the view recenters on the barycentre.
|
|
53
|
+
* Without gridSize, the view always centers on the barycentre.
|
|
54
|
+
*/
|
|
55
|
+
gridSize?: GridSize;
|
|
56
|
+
/**
|
|
57
|
+
* Function to override to provide a {@link gridSize} that depends on the context.
|
|
58
|
+
* @param _location Location to position
|
|
59
|
+
* @param _context Context of the game
|
|
60
|
+
* @returns The grid size
|
|
61
|
+
*/
|
|
62
|
+
getGridSize(_location: Location<P, L>, _context: MaterialContext<P, M, L>): GridSize | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Identifier for the grid. By default, distinct location areas (different player, id or parent) form distinct grids.
|
|
65
|
+
* @param location Location in the grid
|
|
66
|
+
* @param _context Context of the game
|
|
67
|
+
* @returns A unique identifier for the grid this location belongs to
|
|
68
|
+
*/
|
|
69
|
+
getGridId(location: Location<P, L>, _context: MaterialContext<P, M, L>): string;
|
|
70
|
+
/**
|
|
71
|
+
* Compute the boundaries of all items on this grid, in grid coordinates.
|
|
72
|
+
* Override this to provide custom boundaries (e.g. from a game helper).
|
|
73
|
+
*
|
|
74
|
+
* Default implementation scans all item types placed by this locator.
|
|
75
|
+
*
|
|
76
|
+
* @param location A location in the grid area
|
|
77
|
+
* @param context Context of the game
|
|
78
|
+
* @returns The grid boundaries, or undefined if no items exist
|
|
79
|
+
*/
|
|
80
|
+
getBoundaries(location: Location<P, L>, context: MaterialContext<P, M, L>): GridBoundaries | undefined;
|
|
81
|
+
private deltas;
|
|
82
|
+
private game?;
|
|
83
|
+
private refreshedGrids;
|
|
84
|
+
private refreshDelta;
|
|
85
|
+
private ensureRefreshed;
|
|
86
|
+
getCoordinates(location: Location<P, L>, context: MaterialContext<P, M, L>): Partial<Coordinates>;
|
|
87
|
+
getPositionDependencies(location: Location<P, L>, context: MaterialContext<P, M, L>): unknown;
|
|
88
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { isSameLocationArea } from '@gamepark/rules-api';
|
|
2
|
+
import { Locator } from './Locator';
|
|
3
|
+
/**
|
|
4
|
+
* This Locator places items on a rectangular grid with automatic panning.
|
|
5
|
+
*
|
|
6
|
+
* Items are positioned using their `location.x` and `location.y` as grid coordinates.
|
|
7
|
+
* The gap between cells is defined by {@link gap} (in em).
|
|
8
|
+
*
|
|
9
|
+
* When a {@link gridSize} is provided, the locator maintains a stable visible window:
|
|
10
|
+
* as long as all items fit inside, nothing moves. When items exceed the window,
|
|
11
|
+
* the view recenters on the barycentre.
|
|
12
|
+
*
|
|
13
|
+
* Without {@link gridSize}, the grid always centers on the barycentre of the items.
|
|
14
|
+
*
|
|
15
|
+
* Multiple independent grids are supported via {@link getGridId}, following the same
|
|
16
|
+
* pattern as {@link PileLocator.getPileId}.
|
|
17
|
+
*
|
|
18
|
+
* Override {@link getBoundaries} to provide custom boundaries (e.g. from a game helper).
|
|
19
|
+
*/
|
|
20
|
+
export class GridLocator extends Locator {
|
|
21
|
+
constructor(clone) {
|
|
22
|
+
super();
|
|
23
|
+
Object.assign(this, clone);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The gap between two consecutive grid cells, in em.
|
|
27
|
+
*/
|
|
28
|
+
gap;
|
|
29
|
+
/**
|
|
30
|
+
* Function to override to provide a {@link gap} that depends on the context.
|
|
31
|
+
* @param _location Location to position
|
|
32
|
+
* @param _context Context of the game
|
|
33
|
+
* @returns The gap between two consecutive grid cells
|
|
34
|
+
*/
|
|
35
|
+
getGap(_location, _context) {
|
|
36
|
+
return this.gap ?? {};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The size of the visible grid window, in cells.
|
|
40
|
+
* When items fit inside the window, the view does not move.
|
|
41
|
+
* When items exceed it, the view recenters on the barycentre.
|
|
42
|
+
* Without gridSize, the view always centers on the barycentre.
|
|
43
|
+
*/
|
|
44
|
+
gridSize;
|
|
45
|
+
/**
|
|
46
|
+
* Function to override to provide a {@link gridSize} that depends on the context.
|
|
47
|
+
* @param _location Location to position
|
|
48
|
+
* @param _context Context of the game
|
|
49
|
+
* @returns The grid size
|
|
50
|
+
*/
|
|
51
|
+
getGridSize(_location, _context) {
|
|
52
|
+
return this.gridSize;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Identifier for the grid. By default, distinct location areas (different player, id or parent) form distinct grids.
|
|
56
|
+
* @param location Location in the grid
|
|
57
|
+
* @param _context Context of the game
|
|
58
|
+
* @returns A unique identifier for the grid this location belongs to
|
|
59
|
+
*/
|
|
60
|
+
getGridId(location, _context) {
|
|
61
|
+
return [location.player, location.id, location.parent].filter(part => part !== undefined).join('_');
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Compute the boundaries of all items on this grid, in grid coordinates.
|
|
65
|
+
* Override this to provide custom boundaries (e.g. from a game helper).
|
|
66
|
+
*
|
|
67
|
+
* Default implementation scans all item types placed by this locator.
|
|
68
|
+
*
|
|
69
|
+
* @param location A location in the grid area
|
|
70
|
+
* @param context Context of the game
|
|
71
|
+
* @returns The grid boundaries, or undefined if no items exist
|
|
72
|
+
*/
|
|
73
|
+
getBoundaries(location, context) {
|
|
74
|
+
const { rules } = context;
|
|
75
|
+
let xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity;
|
|
76
|
+
let found = false;
|
|
77
|
+
for (const type of this.itemTypes) {
|
|
78
|
+
const items = rules.material(type).location(loc => isSameLocationArea(loc, location)).getItems();
|
|
79
|
+
for (const item of items) {
|
|
80
|
+
const x = item.location.x ?? 0;
|
|
81
|
+
const y = item.location.y ?? 0;
|
|
82
|
+
if (x < xMin)
|
|
83
|
+
xMin = x;
|
|
84
|
+
if (x > xMax)
|
|
85
|
+
xMax = x;
|
|
86
|
+
if (y < yMin)
|
|
87
|
+
yMin = y;
|
|
88
|
+
if (y > yMax)
|
|
89
|
+
yMax = y;
|
|
90
|
+
found = true;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return found ? { xMin, xMax, yMin, yMax } : undefined;
|
|
94
|
+
}
|
|
95
|
+
deltas = new Map();
|
|
96
|
+
game;
|
|
97
|
+
refreshedGrids = new Set();
|
|
98
|
+
refreshDelta(location, context, gridId) {
|
|
99
|
+
const boundaries = this.getBoundaries(location, context);
|
|
100
|
+
if (!boundaries) {
|
|
101
|
+
this.deltas.set(gridId, { deltaX: 0, deltaY: 0 });
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const centerX = (boundaries.xMin + boundaries.xMax) / 2;
|
|
105
|
+
const centerY = (boundaries.yMin + boundaries.yMax) / 2;
|
|
106
|
+
if (!this.deltas.has(gridId)) {
|
|
107
|
+
this.deltas.set(gridId, { deltaX: centerX, deltaY: centerY });
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const delta = this.deltas.get(gridId);
|
|
111
|
+
const size = this.getGridSize(location, context);
|
|
112
|
+
if (!size || (boundaries.xMin === boundaries.xMax && boundaries.yMin === boundaries.yMax)) {
|
|
113
|
+
// No gridSize, or single point: always center on barycentre
|
|
114
|
+
delta.deltaX = centerX;
|
|
115
|
+
delta.deltaY = centerY;
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
const halfW = (size.columns - 1) / 2;
|
|
119
|
+
const halfH = (size.rows - 1) / 2;
|
|
120
|
+
// Recenter only the axis that exceeds the window
|
|
121
|
+
if (boundaries.xMin < delta.deltaX - halfW || boundaries.xMax > delta.deltaX + halfW) {
|
|
122
|
+
delta.deltaX = centerX;
|
|
123
|
+
}
|
|
124
|
+
if (boundaries.yMin < delta.deltaY - halfH || boundaries.yMax > delta.deltaY + halfH) {
|
|
125
|
+
delta.deltaY = centerY;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
ensureRefreshed(location, context, gridId) {
|
|
129
|
+
if (context.rules.game !== this.game) {
|
|
130
|
+
this.game = context.rules.game;
|
|
131
|
+
this.refreshedGrids.clear();
|
|
132
|
+
}
|
|
133
|
+
if (!this.refreshedGrids.has(gridId)) {
|
|
134
|
+
this.refreshedGrids.add(gridId);
|
|
135
|
+
this.refreshDelta(location, context, gridId);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
getCoordinates(location, context) {
|
|
139
|
+
const gridId = this.getGridId(location, context);
|
|
140
|
+
this.ensureRefreshed(location, context, gridId);
|
|
141
|
+
const { x: gx = 0, y: gy = 0, z: gz = 0 } = this.getGap(location, context);
|
|
142
|
+
const delta = this.deltas.get(gridId) ?? { deltaX: 0, deltaY: 0 };
|
|
143
|
+
return {
|
|
144
|
+
x: ((location.x ?? 0) - delta.deltaX) * gx,
|
|
145
|
+
y: ((location.y ?? 0) - delta.deltaY) * gy,
|
|
146
|
+
z: (location.z ?? 0) * gz
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
getPositionDependencies(location, context) {
|
|
150
|
+
const gridId = this.getGridId(location, context);
|
|
151
|
+
this.ensureRefreshed(location, context, gridId);
|
|
152
|
+
const delta = this.deltas.get(gridId) ?? { deltaX: 0, deltaY: 0 };
|
|
153
|
+
return [delta.deltaX, delta.deltaY];
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=GridLocator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridLocator.js","sourceRoot":"","sources":["../../src/locators/GridLocator.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,7 +72,7 @@ export declare class HandLocator<P extends number = number, M extends number = n
|
|
|
72
72
|
* @returns The Z-axis position difference between 2 consecutive items in the hand. Default is 0.05cm.
|
|
73
73
|
*/
|
|
74
74
|
getDeltaZ(_location: Location<P, L>, _context: MaterialContext<P, M, L>): number;
|
|
75
|
-
getPositionDependencies(location: Location<P, L>, context: MaterialContext<P, M, L>):
|
|
75
|
+
getPositionDependencies(location: Location<P, L>, context: MaterialContext<P, M, L>): unknown;
|
|
76
76
|
/**
|
|
77
77
|
* See {@link Locator.getLocationCoordinates}.
|
|
78
78
|
* @param location Location to position
|
|
@@ -39,7 +39,7 @@ export declare class ListLocator<P extends number = number, M extends number = n
|
|
|
39
39
|
* @returns The maximum gap between the first and the last items
|
|
40
40
|
*/
|
|
41
41
|
getMaxGap(location: Location<P, L>, context: MaterialContext<P, M, L>): Partial<Coordinates>;
|
|
42
|
-
getPositionDependencies(location: Location<P, L>, context: MaterialContext<P, M, L>):
|
|
42
|
+
getPositionDependencies(location: Location<P, L>, context: MaterialContext<P, M, L>): unknown;
|
|
43
43
|
/**
|
|
44
44
|
* The number of items displayed in the list
|
|
45
45
|
* @param location Location area of the items
|
|
@@ -42,7 +42,7 @@ export declare class PileLocator<P extends number = number, M extends number = n
|
|
|
42
42
|
* @returns a unique identifier for the pile of items this location goes to
|
|
43
43
|
*/
|
|
44
44
|
getPileId(item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): string;
|
|
45
|
-
getPositionDependencies(location: Location<P, L>, context: MaterialContext<P, M, L>):
|
|
45
|
+
getPositionDependencies(location: Location<P, L>, context: MaterialContext<P, M, L>): unknown;
|
|
46
46
|
getItemCoordinates(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): Partial<Coordinates>;
|
|
47
47
|
generateItemPosition(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): {
|
|
48
48
|
x: number;
|
package/dist/locators/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './utils';
|
|
|
2
2
|
export * from './DeckLocator';
|
|
3
3
|
export * from './DelegateLocator';
|
|
4
4
|
export * from './FlexLocator';
|
|
5
|
+
export * from './GridLocator';
|
|
5
6
|
export * from './HandLocator';
|
|
6
7
|
export * from './HexagonalGridLocator';
|
|
7
8
|
export * from './LocationOrigin';
|
package/dist/locators/index.js
CHANGED
|
@@ -2,6 +2,7 @@ export * from './utils';
|
|
|
2
2
|
export * from './DeckLocator';
|
|
3
3
|
export * from './DelegateLocator';
|
|
4
4
|
export * from './FlexLocator';
|
|
5
|
+
export * from './GridLocator';
|
|
5
6
|
export * from './HandLocator';
|
|
6
7
|
export * from './HexagonalGridLocator';
|
|
7
8
|
export * from './LocationOrigin';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locators/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locators/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA"}
|
|
@@ -36,15 +36,13 @@ export const setupTranslation = (gameId, options) => {
|
|
|
36
36
|
const locale = lngs[0];
|
|
37
37
|
if (!locale || !namespace || !key)
|
|
38
38
|
return;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
console.error('[Translation] Failed to report missing key (client):', error);
|
|
47
|
-
});
|
|
39
|
+
try {
|
|
40
|
+
const body = JSON.stringify({ locale, namespace, key, defaultValue, origin: window.location.href });
|
|
41
|
+
navigator.sendBeacon(`${PLATFORM_URI}/api/translations/missing`, new Blob([body], { type: 'application/json' }));
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
console.error('[Translation] Failed to report missing key:', error);
|
|
45
|
+
}
|
|
48
46
|
},
|
|
49
47
|
...options
|
|
50
48
|
}).catch(error => console.error(error));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translation.util.js","sourceRoot":"","sources":["../../src/utilities/translation.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,iBAAiB,CAAA;AACxB,OAAO,iBAAiB,CAAA;AACxB,OAAO,iBAAiB,CAAA;AACxB,OAAO,OAAwB,MAAM,SAAS,CAAA;AAC9C,OAAO,WAAW,MAAM,sBAAsB,CAAA;AAC9C,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,IAAI,sBAAsB,GAAG,KAAK,CAAA;AAElC;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,OAAqB,EAAE,EAAE;IACxE,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAM;IACR,CAAC;IAED,sBAAsB,GAAG,IAAI,CAAA;IAE7B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IAEvD,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACzD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAA;IAC1C,QAAQ,CAAC,eAAe,CAAC,IAAI,GAAG,MAAM,CAAA;IAEtC,OAAO,CAAC,IAAI,CAAC;QACX,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM;QACjD,WAAW,EAAE,IAAI;QACjB,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;QACjC,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE;YACP,QAAQ,EAAE,wDAAwD;SACnE;QACD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;QAClD,iBAAiB,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACtB,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG;gBAAE,OAAM;YACzC,
|
|
1
|
+
{"version":3,"file":"translation.util.js","sourceRoot":"","sources":["../../src/utilities/translation.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,iBAAiB,CAAA;AACxB,OAAO,iBAAiB,CAAA;AACxB,OAAO,iBAAiB,CAAA;AACxB,OAAO,OAAwB,MAAM,SAAS,CAAA;AAC9C,OAAO,WAAW,MAAM,sBAAsB,CAAA;AAC9C,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,IAAI,sBAAsB,GAAG,KAAK,CAAA;AAElC;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,OAAqB,EAAE,EAAE;IACxE,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAM;IACR,CAAC;IAED,sBAAsB,GAAG,IAAI,CAAA;IAE7B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IAEvD,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACzD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAA;IAC1C,QAAQ,CAAC,eAAe,CAAC,IAAI,GAAG,MAAM,CAAA;IAEtC,OAAO,CAAC,IAAI,CAAC;QACX,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM;QACjD,WAAW,EAAE,IAAI;QACjB,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;QACjC,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE;YACP,QAAQ,EAAE,wDAAwD;SACnE;QACD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;QAClD,iBAAiB,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACtB,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG;gBAAE,OAAM;YACzC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;gBACnG,SAAS,CAAC,UAAU,CAAC,GAAG,YAAY,2BAA2B,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAA;YAClH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAA;YACrE,CAAC;QACH,CAAC;QACD,GAAG,OAAO;KACX,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAEvC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACtB,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gamepark/react-game",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.5.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "React components & tools to create a Board Game user interface for Game Park",
|
|
6
6
|
"author": "Romain Fromi <romain@game-park.com> (https://game-park.com/)",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
26
26
|
"@gamepark/api-types": "^1.0.0",
|
|
27
27
|
"@gamepark/avataaars": "^3.0.0",
|
|
28
|
-
"@gamepark/react-client": "^7.
|
|
28
|
+
"@gamepark/react-client": "^7.5.0",
|
|
29
29
|
"dayjs": "^1.11.19",
|
|
30
30
|
"fscreen": "^1.2.0",
|
|
31
31
|
"i18next-http-backend": "^3.0.2",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"@fortawesome/free-regular-svg-icons": "^7.2.0",
|
|
48
48
|
"@fortawesome/free-solid-svg-icons": "^7.2.0",
|
|
49
49
|
"@fortawesome/react-fontawesome": "^3.2.0",
|
|
50
|
-
"@gamepark/rules-api": "^7.
|
|
50
|
+
"@gamepark/rules-api": "^7.5.0",
|
|
51
51
|
"@types/fscreen": "^1.0.4",
|
|
52
52
|
"@types/node": "^25.3.1",
|
|
53
53
|
"@types/react": "^19.2.14",
|