valtech-components 4.0.385 → 4.0.387

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.
@@ -38,6 +38,7 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
38
38
  private readonly router;
39
39
  private readonly toast;
40
40
  private readonly auth;
41
+ private readonly haptics;
41
42
  private readonly playerProfiles;
42
43
  private boardOrientationTimer;
43
44
  private moveAnimationTimer;
@@ -75,11 +76,13 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
75
76
  readonly confirmAction: import("@angular/core").WritableSignal<ChessimalsConfirmAction>;
76
77
  readonly onlineJoinCode: import("@angular/core").WritableSignal<string>;
77
78
  readonly onlineLoading: import("@angular/core").WritableSignal<boolean>;
79
+ readonly onlineAction: import("@angular/core").WritableSignal<"join" | "create" | "accept" | "reject">;
78
80
  readonly onlineError: import("@angular/core").WritableSignal<string>;
79
81
  readonly onlineUid: import("@angular/core").WritableSignal<string>;
80
82
  readonly onlineHistory: import("@angular/core").WritableSignal<ChessimalsHistoryEntry[]>;
81
83
  readonly resumeSplashVisible: import("@angular/core").WritableSignal<boolean>;
82
84
  readonly rematchLoading: import("@angular/core").WritableSignal<boolean>;
85
+ readonly moveSyncing: import("@angular/core").WritableSignal<boolean>;
83
86
  readonly loggedInUser: import("@angular/core").Signal<import("valtech-components").AuthUser>;
84
87
  readonly localPlayerProfile: import("@angular/core").Signal<import("./types").MiniGamePlayerProfile>;
85
88
  readonly localPlayerAvatar: import("@angular/core").Signal<string>;
@@ -88,6 +91,7 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
88
91
  readonly loggedPlayerAvatarProps: import("@angular/core").Signal<UserAvatarMetadata>;
89
92
  set onlineGameId(value: string | null | undefined);
90
93
  miniGamesRoute: string;
94
+ projectionMode: boolean;
91
95
  readonly currentPlayer: import("@angular/core").Signal<import("./types").ChessimalsPlayerState>;
92
96
  readonly legalMoves: import("@angular/core").Signal<ChessimalsMove[]>;
93
97
  readonly legalMoveKeys: import("@angular/core").Signal<Set<string>>;
@@ -156,12 +160,15 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
156
160
  isMoveEffectCaptureCell(row: number, col: number): boolean;
157
161
  fileLabel(col: number): string;
158
162
  rankLabel(row: number): string;
163
+ showRankLabel(col: number): boolean;
164
+ showFileLabel(row: number): boolean;
159
165
  playerLabel(color: ChessimalsPlayerColor): string;
160
166
  modeChipLabel(): string;
161
167
  turnTitle(): string;
162
168
  normalizeGameId(value: string): string;
163
169
  copyOnlineLink(): Promise<void>;
164
170
  shareOnlineLink(): Promise<void>;
171
+ shareProjectionLink(): Promise<void>;
165
172
  canReviewPendingGuest(): boolean;
166
173
  pendingGuestName(): string;
167
174
  waitingTitle(): string;
@@ -185,6 +192,6 @@ export declare class ChessimalsGameComponent implements OnInit, OnDestroy {
185
192
  private chessimalsGameRoute;
186
193
  private capitalize;
187
194
  static ɵfac: i0.ɵɵFactoryDeclaration<ChessimalsGameComponent, never>;
188
- static ɵcmp: i0.ɵɵComponentDeclaration<ChessimalsGameComponent, "val-chessimals-game", never, { "onlineGameId": { "alias": "onlineGameId"; "required": false; }; "miniGamesRoute": { "alias": "miniGamesRoute"; "required": false; }; }, {}, never, never, true, never>;
195
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChessimalsGameComponent, "val-chessimals-game", never, { "onlineGameId": { "alias": "onlineGameId"; "required": false; }; "miniGamesRoute": { "alias": "miniGamesRoute"; "required": false; }; "projectionMode": { "alias": "projectionMode"; "required": false; }; }, {}, never, never, true, never>;
189
196
  }
190
197
  export {};
@@ -22,6 +22,7 @@ export declare class ChessimalsOnlineService {
22
22
  isParticipant(state: ChessimalsGameState, uid?: string): boolean;
23
23
  isHostWaiting(state: ChessimalsGameState, uid?: string): boolean;
24
24
  shareUrl(gameId: string, baseRoute?: string): string;
25
+ projectionShareUrl(gameId: string, baseRoute?: string): string;
25
26
  saveCurrentUserHistory(state: ChessimalsGameState): Promise<void>;
26
27
  private gameRef;
27
28
  private historyPath;
@@ -30,11 +31,15 @@ export declare class ChessimalsOnlineService {
30
31
  private decodeInput;
31
32
  private createParticipant;
32
33
  private withUpdatedAt;
34
+ private withMoveLog;
35
+ private createMoveLogEntry;
36
+ private sanitizeMove;
33
37
  private createHistoryEntry;
34
38
  private withoutUndefined;
35
39
  private historyOutcome;
36
40
  private assertNotExpired;
37
41
  private createGameId;
42
+ private createOperationId;
38
43
  private randomIndex;
39
44
  static ɵfac: i0.ɵɵFactoryDeclaration<ChessimalsOnlineService, never>;
40
45
  static ɵprov: i0.ɵɵInjectableDeclaration<ChessimalsOnlineService>;
@@ -30,10 +30,12 @@ export declare class RetroAudioService {
30
30
  chessimalsCapture(): void;
31
31
  chessimalsPower(power: ChessimalsPower): void;
32
32
  chessimalsVictory(): void;
33
+ chessimalsJoinRequest(): void;
33
34
  chessimalsPowerUnlocked(): void;
34
35
  private readEnabled;
35
36
  private ensureContext;
36
37
  private menuMelody;
38
+ private savannaPulse;
37
39
  private gameMelody;
38
40
  private sequence;
39
41
  private tone;
@@ -68,6 +68,20 @@ export interface ChessimalsMove {
68
68
  animal?: ChessimalsAnimalType;
69
69
  capturesPieceId?: string;
70
70
  }
71
+ export type ChessimalsMoveLogStatus = 'accepted' | 'rejected';
72
+ export interface ChessimalsMoveLogEntry {
73
+ id: string;
74
+ at: string;
75
+ uid: string;
76
+ side?: ChessimalsPlayerColor;
77
+ status: ChessimalsMoveLogStatus;
78
+ code?: string;
79
+ message?: string;
80
+ move: ChessimalsMove;
81
+ moveCountBefore: number;
82
+ moveCountAfter?: number;
83
+ currentTurnBefore: ChessimalsPlayerColor;
84
+ }
71
85
  export interface ChessimalsOnlineParticipant {
72
86
  uid: string;
73
87
  profileId: string;
@@ -90,6 +104,7 @@ export interface ChessimalsOnlineState {
90
104
  pendingGuest?: ChessimalsOnlineParticipant;
91
105
  participants?: Partial<Record<ChessimalsPlayerColor, ChessimalsOnlineParticipant>>;
92
106
  rematchRequests?: string[];
107
+ moveLog?: ChessimalsMoveLogEntry[];
93
108
  }
94
109
  export type ChessimalsHistoryOutcome = 'waiting' | 'pending' | 'in_progress' | 'won' | 'lost' | 'declined';
95
110
  export interface ChessimalsHistoryEntry {
package/lib/version.d.ts CHANGED
@@ -2,4 +2,4 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export declare const VERSION = "4.0.385";
5
+ export declare const VERSION = "4.0.387";
@@ -29,3 +29,9 @@ export declare class ChessimalsOnlineGamePageComponent {
29
29
  static ɵfac: i0.ɵɵFactoryDeclaration<ChessimalsOnlineGamePageComponent, never>;
30
30
  static ɵcmp: i0.ɵɵComponentDeclaration<ChessimalsOnlineGamePageComponent, "val-chessimals-online-game-page", never, {}, {}, never, never, true, never>;
31
31
  }
32
+ export declare class ChessimalsProjectionGamePageComponent {
33
+ private readonly route;
34
+ readonly gameId: string;
35
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChessimalsProjectionGamePageComponent, never>;
36
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChessimalsProjectionGamePageComponent, "val-chessimals-projection-game-page", never, {}, {}, never, never, true, never>;
37
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "valtech-components",
3
- "version": "4.0.385",
3
+ "version": "4.0.387",
4
4
  "private": false,
5
5
  "bin": {
6
6
  "valtech-firebase-config": "./src/lib/services/firebase/scripts/generate-sw-config.js"