@jjlmoya/utils-sports 1.61.0 → 1.62.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jjlmoya/utils-sports",
3
- "version": "1.61.0",
3
+ "version": "1.62.0",
4
4
  "type": "module",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -15,11 +15,6 @@ const t = (ui ?? {}) as unknown as RugbyScoreKeeperUI;
15
15
 
16
16
  <div class="rg-main-card">
17
17
 
18
- <div class="rg-save-status" id="rg-save-status" role="status">
19
- <span class="rg-save-dot" aria-hidden="true"></span>
20
- <span id="rg-save-status-text">{t.savedLocally}</span>
21
- </div>
22
-
23
18
  <div class="rg-strip">
24
19
  <div class="rg-team rg-team-home">
25
20
  <input type="text" class="rg-name" id="rg-name-home" value={t.home} maxlength="40" aria-label={t.home} />
@@ -172,7 +172,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
172
172
  ],
173
173
  ui: {
174
174
  title: 'Rugby Punktezähler',
175
- description: 'Verfolge Spielergebnisse und Zeitstrafen.',
176
175
  home: 'Heim',
177
176
  away: 'Gast',
178
177
  score: 'Punktestand',
@@ -180,26 +179,20 @@ export const content: RugbyScoreKeeperLocaleContent = {
180
179
  conversion: 'Erhöhung +2',
181
180
  penalty: 'Straftritt +3',
182
181
  dropGoal: 'Dropgoal +3',
183
- conversionYes: 'Ja',
184
- conversionNo: 'Nein',
185
182
  sinBin: 'Gelbe Karte',
186
183
  sinBinTitle: 'Zeitstrafe',
187
184
  sinBinPlayer: 'Name oder Nummer des Spielers:',
188
185
  sinBinAdd: 'Strafe Starten',
189
186
  sinBinEmpty: 'Keine aktiven Zeitstrafen',
190
- sinBinReturn: 'Zurückgekehrt',
191
187
  matchClock: 'Spieluhr',
192
188
  half: 'Hälfte',
193
189
  half1: 'Erste Hälfte',
194
190
  half2: 'Zweite Hälfte',
195
191
  startMatch: 'Anstoß',
196
- pauseMatch: 'Pause',
197
- resumeMatch: 'Fortsetzen',
198
192
  resetMatch: 'Spiel Zurücksetzen',
199
193
  resetConfirm: 'Aktuelles Spiel zurücksetzen? Alle Punkte und Timer gehen verloren.',
200
194
  cancel: 'Abbrechen',
201
195
  confirm: 'Zurücksetzen Bestätigen',
202
- period: 'Spielabschnitt',
203
196
  scoringSummary: 'Punktezusammenfassung',
204
197
  tryScored: 'Versuche',
205
198
  conversionSuccess: 'Erhöhungen',
@@ -207,8 +200,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
207
200
  penaltyScored: 'Straftritte',
208
201
  dropGoalScored: 'Dropgoals',
209
202
  totalPoints: 'Gesamt',
210
- fullscreen: 'Vollbild',
211
- toggleSound: 'Ton Ein/Aus',
212
203
  eventLog: 'Ereignisprotokoll',
213
204
  eventEmpty: 'Noch keine Ereignisse',
214
205
  undoBtn: 'Letztes Rückgängig',
@@ -216,8 +207,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
216
207
  timeOn: 'Zeit Läuft',
217
208
  fullTime: 'Spielende',
218
209
  minutesShort: 'Min.',
219
- savedLocally: 'Auf diesem Gerät gespeichert',
220
- saveUnavailable: 'Speichern nicht verfügbar',
221
210
  teamLabel: 'Team',
222
211
  durationLabel: 'Dauer',
223
212
  },
@@ -172,7 +172,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
172
172
  ],
173
173
  ui: {
174
174
  title: 'Rugby Scorekeeper',
175
- description: 'Track match scores and sin bin timers.',
176
175
  home: 'Home',
177
176
  away: 'Away',
178
177
  score: 'Score',
@@ -180,26 +179,20 @@ export const content: RugbyScoreKeeperLocaleContent = {
180
179
  conversion: 'Conversion +2',
181
180
  penalty: 'Penalty +3',
182
181
  dropGoal: 'Drop Goal +3',
183
- conversionYes: 'Yes',
184
- conversionNo: 'No',
185
182
  sinBin: 'Yellow Card',
186
183
  sinBinTitle: 'Sin Bin Suspension',
187
184
  sinBinPlayer: 'Player name or number:',
188
185
  sinBinAdd: 'Start Suspension',
189
186
  sinBinEmpty: 'No active suspensions',
190
- sinBinReturn: 'Returned',
191
187
  matchClock: 'Match Clock',
192
188
  half: 'Half',
193
189
  half1: 'First Half',
194
190
  half2: 'Second Half',
195
191
  startMatch: 'Kick Off',
196
- pauseMatch: 'Pause',
197
- resumeMatch: 'Resume',
198
192
  resetMatch: 'Reset Match',
199
193
  resetConfirm: 'Reset the current match? All scores and timers will be lost.',
200
194
  cancel: 'Cancel',
201
195
  confirm: 'Confirm Reset',
202
- period: 'Period',
203
196
  scoringSummary: 'Scoring Summary',
204
197
  tryScored: 'Tries',
205
198
  conversionSuccess: 'Conversions',
@@ -207,8 +200,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
207
200
  penaltyScored: 'Penalties',
208
201
  dropGoalScored: 'Drop Goals',
209
202
  totalPoints: 'Total',
210
- fullscreen: 'Fullscreen',
211
- toggleSound: 'Toggle Sound',
212
203
  eventLog: 'Event Log',
213
204
  eventEmpty: 'No events yet',
214
205
  undoBtn: 'Undo Last',
@@ -216,8 +207,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
216
207
  timeOn: 'Time On',
217
208
  fullTime: 'Full time',
218
209
  minutesShort: 'min',
219
- savedLocally: 'Saved on this device',
220
- saveUnavailable: 'Saving unavailable',
221
210
  teamLabel: 'Team',
222
211
  durationLabel: 'Duration',
223
212
  },
@@ -172,7 +172,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
172
172
  ],
173
173
  ui: {
174
174
  title: 'Marcador de Rugby',
175
- description: 'Sigue los resultados del partido y los cronómetros de castigo.',
176
175
  home: 'Local',
177
176
  away: 'Visitante',
178
177
  score: 'Marcador',
@@ -180,26 +179,20 @@ export const content: RugbyScoreKeeperLocaleContent = {
180
179
  conversion: 'Conversión +2',
181
180
  penalty: 'Penalti +3',
182
181
  dropGoal: 'Drop +3',
183
- conversionYes: 'Sí',
184
- conversionNo: 'No',
185
182
  sinBin: 'Tarjeta Amarilla',
186
183
  sinBinTitle: 'Suspensión de Castigo',
187
184
  sinBinPlayer: 'Nombre o número del jugador:',
188
185
  sinBinAdd: 'Iniciar Suspensión',
189
186
  sinBinEmpty: 'Sin suspensiones activas',
190
- sinBinReturn: 'Regresó',
191
187
  matchClock: 'Reloj de Partido',
192
188
  half: 'Tiempo',
193
189
  half1: 'Primer Tiempo',
194
190
  half2: 'Segundo Tiempo',
195
191
  startMatch: 'Saque Inicial',
196
- pauseMatch: 'Pausa',
197
- resumeMatch: 'Reanudar',
198
192
  resetMatch: 'Reiniciar Partido',
199
193
  resetConfirm: '¿Reiniciar el partido actual? Se perderán todos los puntos y cronómetros.',
200
194
  cancel: 'Cancelar',
201
195
  confirm: 'Confirmar Reinicio',
202
- period: 'Periodo',
203
196
  scoringSummary: 'Resumen de Anotaciones',
204
197
  tryScored: 'Ensayos',
205
198
  conversionSuccess: 'Conversiones',
@@ -207,8 +200,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
207
200
  penaltyScored: 'Penaltis',
208
201
  dropGoalScored: 'Drops',
209
202
  totalPoints: 'Total',
210
- fullscreen: 'Pantalla Completa',
211
- toggleSound: 'Activar Sonido',
212
203
  eventLog: 'Historial de Eventos',
213
204
  eventEmpty: 'Aún no hay eventos',
214
205
  undoBtn: 'Deshacer Último',
@@ -216,8 +207,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
216
207
  timeOn: 'Tiempo en Marcha',
217
208
  fullTime: 'Fin del partido',
218
209
  minutesShort: 'min',
219
- savedLocally: 'Guardado en este dispositivo',
220
- saveUnavailable: 'No se puede guardar',
221
210
  teamLabel: 'Equipo',
222
211
  durationLabel: 'Duración',
223
212
  },
@@ -172,7 +172,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
172
172
  ],
173
173
  ui: {
174
174
  title: 'Tableau de Score Rugby',
175
- description: 'Suivez les scores et les chronomètres d exclusion.',
176
175
  home: 'Domicile',
177
176
  away: 'Extérieur',
178
177
  score: 'Score',
@@ -180,26 +179,20 @@ export const content: RugbyScoreKeeperLocaleContent = {
180
179
  conversion: 'Transformation +2',
181
180
  penalty: 'Pénalité +3',
182
181
  dropGoal: 'Drop +3',
183
- conversionYes: 'Oui',
184
- conversionNo: 'Non',
185
182
  sinBin: 'Carton Jaune',
186
183
  sinBinTitle: 'Exclusion Temporaire',
187
184
  sinBinPlayer: 'Nom ou numéro du joueur :',
188
185
  sinBinAdd: 'Démarrer l Exclusion',
189
186
  sinBinEmpty: 'Aucune exclusion en cours',
190
- sinBinReturn: 'De retour',
191
187
  matchClock: 'Horloge de Match',
192
188
  half: 'Mi-temps',
193
189
  half1: 'Première Mi-temps',
194
190
  half2: 'Deuxième Mi-temps',
195
191
  startMatch: 'Coup d Envoi',
196
- pauseMatch: 'Pause',
197
- resumeMatch: 'Reprendre',
198
192
  resetMatch: 'Réinitialiser le Match',
199
193
  resetConfirm: 'Réinitialiser le match en cours ? Tous les scores et chronomètres seront perdus.',
200
194
  cancel: 'Annuler',
201
195
  confirm: 'Confirmer la Réinitialisation',
202
- period: 'Période',
203
196
  scoringSummary: 'Résumé des Scores',
204
197
  tryScored: 'Essais',
205
198
  conversionSuccess: 'Transformations',
@@ -207,8 +200,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
207
200
  penaltyScored: 'Pénalités',
208
201
  dropGoalScored: 'Drops',
209
202
  totalPoints: 'Total',
210
- fullscreen: 'Plein Écran',
211
- toggleSound: 'Activer le Son',
212
203
  eventLog: 'Journal des Événements',
213
204
  eventEmpty: 'Aucun événement pour le moment',
214
205
  undoBtn: 'Annuler le Dernier',
@@ -216,8 +207,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
216
207
  timeOn: 'Temps en Marche',
217
208
  fullTime: 'Fin du match',
218
209
  minutesShort: 'min',
219
- savedLocally: 'Enregistré sur cet appareil',
220
- saveUnavailable: 'Enregistrement indisponible',
221
210
  teamLabel: 'Équipe',
222
211
  durationLabel: 'Durée',
223
212
  },
@@ -172,7 +172,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
172
172
  ],
173
173
  ui: {
174
174
  title: 'Papan Skor Rugbi',
175
- description: 'Lacak skor pertandingan dan pengatur waktu sin bin.',
176
175
  home: 'Tuan Rumah',
177
176
  away: 'Tamu',
178
177
  score: 'Skor',
@@ -180,26 +179,20 @@ export const content: RugbyScoreKeeperLocaleContent = {
180
179
  conversion: 'Konversi +2',
181
180
  penalty: 'Penalti +3',
182
181
  dropGoal: 'Drop Goal +3',
183
- conversionYes: 'Ya',
184
- conversionNo: 'Tidak',
185
182
  sinBin: 'Kartu kuning',
186
183
  sinBinTitle: 'Skorsing Sin Bin',
187
184
  sinBinPlayer: 'Nama atau nomor pemain:',
188
185
  sinBinAdd: 'Mulai Skorsing',
189
186
  sinBinEmpty: 'Tidak ada skorsing aktif',
190
- sinBinReturn: 'Kembali',
191
187
  matchClock: 'Jam Pertandingan',
192
188
  half: 'Babak',
193
189
  half1: 'Babak Pertama',
194
190
  half2: 'Babak Kedua',
195
191
  startMatch: 'Mulai',
196
- pauseMatch: 'Jeda',
197
- resumeMatch: 'Lanjutkan',
198
192
  resetMatch: 'Reset Pertandingan',
199
193
  resetConfirm: 'Reset pertandingan saat ini? Semua skor dan pengatur waktu akan hilang.',
200
194
  cancel: 'Batal',
201
195
  confirm: 'Konfirmasi Reset',
202
- period: 'Periode',
203
196
  scoringSummary: 'Ringkasan Skor',
204
197
  tryScored: 'Try',
205
198
  conversionSuccess: 'Konversi',
@@ -207,8 +200,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
207
200
  penaltyScored: 'Penalti',
208
201
  dropGoalScored: 'Drop Goal',
209
202
  totalPoints: 'Total',
210
- fullscreen: 'Layar penuh',
211
- toggleSound: 'Suara',
212
203
  eventLog: 'Catatan Kejadian',
213
204
  eventEmpty: 'Belum ada kejadian',
214
205
  undoBtn: 'Batalkan terakhir',
@@ -216,8 +207,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
216
207
  timeOn: 'Waktu Berjalan',
217
208
  fullTime: 'Pertandingan Selesai',
218
209
  minutesShort: 'mnt',
219
- savedLocally: 'Tersimpan di perangkat ini',
220
- saveUnavailable: 'Penyimpanan tidak tersedia',
221
210
  teamLabel: 'Tim',
222
211
  durationLabel: 'Durasi',
223
212
  },
@@ -172,7 +172,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
172
172
  ],
173
173
  ui: {
174
174
  title: 'Segnapunti Rugby',
175
- description: 'Registra i punteggi delle partite e i timer delle espulsioni temporanee.',
176
175
  home: 'Casa',
177
176
  away: 'Ospiti',
178
177
  score: 'Punteggio',
@@ -180,26 +179,20 @@ export const content: RugbyScoreKeeperLocaleContent = {
180
179
  conversion: 'Trasformazione +2',
181
180
  penalty: 'Punizione +3',
182
181
  dropGoal: 'Drop +3',
183
- conversionYes: 'Sì',
184
- conversionNo: 'No',
185
182
  sinBin: 'Cartellino Giallo',
186
183
  sinBinTitle: 'Espulsione Temporanea',
187
184
  sinBinPlayer: 'Nome o numero del giocatore:',
188
185
  sinBinAdd: 'Avvia Sospensione',
189
186
  sinBinEmpty: 'Nessuna sospensione attiva',
190
- sinBinReturn: 'Rientrato',
191
187
  matchClock: 'Cronometro Partita',
192
188
  half: 'Tempo',
193
189
  half1: 'Primo Tempo',
194
190
  half2: 'Secondo Tempo',
195
191
  startMatch: 'Calcio d\'Inizio',
196
- pauseMatch: 'Pausa',
197
- resumeMatch: 'Riprendi',
198
192
  resetMatch: 'Reimposta Partita',
199
193
  resetConfirm: 'Reimpostare la partita? Tutti i punteggi e i timer andranno persi.',
200
194
  cancel: 'Annulla',
201
195
  confirm: 'Conferma Reset',
202
- period: 'Periodo',
203
196
  scoringSummary: 'Riepilogo Punteggi',
204
197
  tryScored: 'Mete',
205
198
  conversionSuccess: 'Trasformazioni',
@@ -207,8 +200,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
207
200
  penaltyScored: 'Punizioni',
208
201
  dropGoalScored: 'Drop',
209
202
  totalPoints: 'Totale',
210
- fullscreen: 'Schermo Intero',
211
- toggleSound: 'Attiva Disattiva Suono',
212
203
  eventLog: 'Registro Eventi',
213
204
  eventEmpty: 'Nessun evento ancora',
214
205
  undoBtn: 'Annulla Ultimo',
@@ -216,8 +207,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
216
207
  timeOn: 'Tempo in Gioco',
217
208
  fullTime: 'Fine partita',
218
209
  minutesShort: 'min',
219
- savedLocally: 'Salvato su questo dispositivo',
220
- saveUnavailable: 'Salvataggio non disponibile',
221
210
  teamLabel: 'Squadra',
222
211
  durationLabel: 'Durata',
223
212
  },
@@ -172,7 +172,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
172
172
  ],
173
173
  ui: {
174
174
  title: 'ラグビースコアキーパー',
175
- description: '試合スコアとシンビンタイマーを管理。',
176
175
  home: 'ホーム',
177
176
  away: 'アウェイ',
178
177
  score: 'スコア',
@@ -180,26 +179,20 @@ export const content: RugbyScoreKeeperLocaleContent = {
180
179
  conversion: 'コンバージョン +2',
181
180
  penalty: 'ペナルティ +3',
182
181
  dropGoal: 'ドロップゴール +3',
183
- conversionYes: '成功',
184
- conversionNo: '失敗',
185
182
  sinBin: 'イエローカード',
186
183
  sinBinTitle: 'シンビン出場停止',
187
184
  sinBinPlayer: '選手名または背番号:',
188
185
  sinBinAdd: '出場停止開始',
189
186
  sinBinEmpty: 'アクティブな出場停止なし',
190
- sinBinReturn: '復帰',
191
187
  matchClock: 'マッチクロック',
192
188
  half: 'ハーフ',
193
189
  half1: '前半',
194
190
  half2: '後半',
195
191
  startMatch: 'キックオフ',
196
- pauseMatch: '一時停止',
197
- resumeMatch: '再開',
198
192
  resetMatch: '試合をリセット',
199
193
  resetConfirm: '現在の試合をリセットしますか?すべてのスコアとタイマーが失われます。',
200
194
  cancel: 'キャンセル',
201
195
  confirm: 'リセット確定',
202
- period: 'ピリオド',
203
196
  scoringSummary: '得点サマリー',
204
197
  tryScored: 'トライ',
205
198
  conversionSuccess: 'コンバージョン成功',
@@ -207,8 +200,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
207
200
  penaltyScored: 'ペナルティ',
208
201
  dropGoalScored: 'ドロップゴール',
209
202
  totalPoints: '合計',
210
- fullscreen: '全画面表示',
211
- toggleSound: 'サウンド切替',
212
203
  eventLog: 'イベントログ',
213
204
  eventEmpty: 'まだイベントはありません',
214
205
  undoBtn: '最後を元に戻す',
@@ -216,8 +207,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
216
207
  timeOn: 'タイムオン',
217
208
  fullTime: '試合終了',
218
209
  minutesShort: '分',
219
- savedLocally: 'この端末に保存済み',
220
- saveUnavailable: '保存できません',
221
210
  teamLabel: 'チーム',
222
211
  durationLabel: '時間',
223
212
  },
@@ -172,7 +172,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
172
172
  ],
173
173
  ui: {
174
174
  title: '럭비 스코어키퍼',
175
- description: '경기 점수와 신빈 타이머를 추적합니다.',
176
175
  home: '홈',
177
176
  away: '어웨이',
178
177
  score: '점수',
@@ -180,26 +179,20 @@ export const content: RugbyScoreKeeperLocaleContent = {
180
179
  conversion: '컨버전 +2',
181
180
  penalty: '페널티 +3',
182
181
  dropGoal: '드롭골 +3',
183
- conversionYes: '성공',
184
- conversionNo: '실패',
185
182
  sinBin: '옐로카드',
186
183
  sinBinTitle: '신빈 출장 정지',
187
184
  sinBinPlayer: '선수 이름 또는 번호:',
188
185
  sinBinAdd: '출장 정지 시작',
189
186
  sinBinEmpty: '진행 중인 출장 정지 없음',
190
- sinBinReturn: '복귀',
191
187
  matchClock: '경기 시계',
192
188
  half: '하프',
193
189
  half1: '전반',
194
190
  half2: '후반',
195
191
  startMatch: '킥오프',
196
- pauseMatch: '일시 정지',
197
- resumeMatch: '재개',
198
192
  resetMatch: '경기 초기화',
199
193
  resetConfirm: '현재 경기를 초기화하시겠습니까? 모든 점수와 타이머가 사라집니다.',
200
194
  cancel: '취소',
201
195
  confirm: '초기화 확인',
202
- period: '피리어드',
203
196
  scoringSummary: '득점 요약',
204
197
  tryScored: '트라이',
205
198
  conversionSuccess: '컨버전 성공',
@@ -207,8 +200,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
207
200
  penaltyScored: '페널티',
208
201
  dropGoalScored: '드롭골',
209
202
  totalPoints: '합계',
210
- fullscreen: '전체 화면',
211
- toggleSound: '사운드 전환',
212
203
  eventLog: '이벤트 로그',
213
204
  eventEmpty: '아직 이벤트 없음',
214
205
  undoBtn: '마지막 실행 취소',
@@ -216,8 +207,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
216
207
  timeOn: '타임 온',
217
208
  fullTime: '경기 종료',
218
209
  minutesShort: '분',
219
- savedLocally: '이 기기에 저장됨',
220
- saveUnavailable: '저장할 수 없음',
221
210
  teamLabel: '팀',
222
211
  durationLabel: '시간',
223
212
  },
@@ -172,7 +172,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
172
172
  ],
173
173
  ui: {
174
174
  title: 'Rugbyscorebord',
175
- description: 'Volg wedstrijdscores en sin bin timers.',
176
175
  home: 'Thuis',
177
176
  away: 'Uit',
178
177
  score: 'Score',
@@ -180,26 +179,20 @@ export const content: RugbyScoreKeeperLocaleContent = {
180
179
  conversion: 'Conversie +2',
181
180
  penalty: 'Strafschop +3',
182
181
  dropGoal: 'Dropgoal +3',
183
- conversionYes: 'Ja',
184
- conversionNo: 'Nee',
185
182
  sinBin: 'Gele Kaart',
186
183
  sinBinTitle: 'Sin Bin Schorsing',
187
184
  sinBinPlayer: 'Naam of nummer van speler:',
188
185
  sinBinAdd: 'Start Schorsing',
189
186
  sinBinEmpty: 'Geen actieve schorsingen',
190
- sinBinReturn: 'Teruggekeerd',
191
187
  matchClock: 'Wedstrijdklok',
192
188
  half: 'Helft',
193
189
  half1: 'Eerste Helft',
194
190
  half2: 'Tweede Helft',
195
191
  startMatch: 'Afrap',
196
- pauseMatch: 'Pauze',
197
- resumeMatch: 'Hervat',
198
192
  resetMatch: 'Reset Wedstrijd',
199
193
  resetConfirm: 'De huidige wedstrijd resetten? Alle scores en timers gaan verloren.',
200
194
  cancel: 'Annuleren',
201
195
  confirm: 'Bevestig Reset',
202
- period: 'Periode',
203
196
  scoringSummary: 'Scoreoverzicht',
204
197
  tryScored: 'Tries',
205
198
  conversionSuccess: 'Conversies',
@@ -207,8 +200,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
207
200
  penaltyScored: 'Strafschoppen',
208
201
  dropGoalScored: 'Dropgoals',
209
202
  totalPoints: 'Totaal',
210
- fullscreen: 'Volledig Scherm',
211
- toggleSound: 'Geluid Aan Uit',
212
203
  eventLog: 'Gebeurtenissenlog',
213
204
  eventEmpty: 'Nog geen gebeurtenissen',
214
205
  undoBtn: 'Ongedaan Maken Laatste',
@@ -216,8 +207,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
216
207
  timeOn: 'Tijd Loopt',
217
208
  fullTime: 'Einde wedstrijd',
218
209
  minutesShort: 'min',
219
- savedLocally: 'Op dit apparaat opgeslagen',
220
- saveUnavailable: 'Opslaan niet beschikbaar',
221
210
  teamLabel: 'Team',
222
211
  durationLabel: 'Duur',
223
212
  },
@@ -172,7 +172,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
172
172
  ],
173
173
  ui: {
174
174
  title: 'Licznik Punktów Rugby',
175
- description: 'Śledź wyniki meczu i czasy kar.',
176
175
  home: 'Gospodarze',
177
176
  away: 'Goście',
178
177
  score: 'Wynik',
@@ -180,26 +179,20 @@ export const content: RugbyScoreKeeperLocaleContent = {
180
179
  conversion: 'Podwyższenie +2',
181
180
  penalty: 'Karny +3',
182
181
  dropGoal: 'Drop Goal +3',
183
- conversionYes: 'Tak',
184
- conversionNo: 'Nie',
185
182
  sinBin: 'Żółta kartka',
186
183
  sinBinTitle: 'Kara czasowa',
187
184
  sinBinPlayer: 'Imię lub numer zawodnika:',
188
185
  sinBinAdd: 'Rozpocznij karę',
189
186
  sinBinEmpty: 'Brak aktywnych kar',
190
- sinBinReturn: 'Powrót',
191
187
  matchClock: 'Zegar meczu',
192
188
  half: 'Połowa',
193
189
  half1: 'Pierwsza połowa',
194
190
  half2: 'Druga połowa',
195
191
  startMatch: 'Rozpocznij mecz',
196
- pauseMatch: 'Pauza',
197
- resumeMatch: 'Wznów',
198
192
  resetMatch: 'Resetuj mecz',
199
193
  resetConfirm: 'Zresetować bieżący mecz? Wszystkie wyniki i timery zostaną utracone.',
200
194
  cancel: 'Anuluj',
201
195
  confirm: 'Potwierdź reset',
202
- period: 'Okres',
203
196
  scoringSummary: 'Podsumowanie punktacji',
204
197
  tryScored: 'Przyłożenia',
205
198
  conversionSuccess: 'Podwyższenia',
@@ -207,8 +200,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
207
200
  penaltyScored: 'Karne',
208
201
  dropGoalScored: 'Drop gole',
209
202
  totalPoints: 'Razem',
210
- fullscreen: 'Pełny ekran',
211
- toggleSound: 'Dźwięk',
212
203
  eventLog: 'Rejestr zdarzeń',
213
204
  eventEmpty: 'Brak zdarzeń',
214
205
  undoBtn: 'Cofnij ostatnie',
@@ -216,8 +207,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
216
207
  timeOn: 'Czas włączony',
217
208
  fullTime: 'Koniec meczu',
218
209
  minutesShort: 'min',
219
- savedLocally: 'Zapisano na tym urządzeniu',
220
- saveUnavailable: 'Zapisywanie niedostępne',
221
210
  teamLabel: 'Drużyna',
222
211
  durationLabel: 'Czas',
223
212
  },
@@ -172,7 +172,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
172
172
  ],
173
173
  ui: {
174
174
  title: 'Placar de Rugby',
175
- description: 'Registre pontuações de partidas e cronômetros de sin bin.',
176
175
  home: 'Casa',
177
176
  away: 'Visitante',
178
177
  score: 'Placar',
@@ -180,26 +179,20 @@ export const content: RugbyScoreKeeperLocaleContent = {
180
179
  conversion: 'Conversão +2',
181
180
  penalty: 'Penalidade +3',
182
181
  dropGoal: 'Drop Goal +3',
183
- conversionYes: 'Sim',
184
- conversionNo: 'Não',
185
182
  sinBin: 'Cartão Amarelo',
186
183
  sinBinTitle: 'Suspensão Temporária',
187
184
  sinBinPlayer: 'Nome ou número do jogador:',
188
185
  sinBinAdd: 'Iniciar Suspensão',
189
186
  sinBinEmpty: 'Nenhuma suspensão ativa',
190
- sinBinReturn: 'Retornou',
191
187
  matchClock: 'Relógio da Partida',
192
188
  half: 'Tempo',
193
189
  half1: 'Primeiro Tempo',
194
190
  half2: 'Segundo Tempo',
195
191
  startMatch: 'Pontapé Inicial',
196
- pauseMatch: 'Pausar',
197
- resumeMatch: 'Retomar',
198
192
  resetMatch: 'Reiniciar Partida',
199
193
  resetConfirm: 'Reiniciar a partida atual? Todas as pontuações e cronômetros serão perdidos.',
200
194
  cancel: 'Cancelar',
201
195
  confirm: 'Confirmar Reinício',
202
- period: 'Período',
203
196
  scoringSummary: 'Resumo da Pontuação',
204
197
  tryScored: 'Tries',
205
198
  conversionSuccess: 'Conversões',
@@ -207,8 +200,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
207
200
  penaltyScored: 'Penalidades',
208
201
  dropGoalScored: 'Drop Goals',
209
202
  totalPoints: 'Total',
210
- fullscreen: 'Tela Cheia',
211
- toggleSound: 'Ativar Desativar Som',
212
203
  eventLog: 'Registro de Eventos',
213
204
  eventEmpty: 'Nenhum evento ainda',
214
205
  undoBtn: 'Desfazer Último',
@@ -216,8 +207,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
216
207
  timeOn: 'Tempo em Jogo',
217
208
  fullTime: 'Fim de jogo',
218
209
  minutesShort: 'min',
219
- savedLocally: 'Guardado neste dispositivo',
220
- saveUnavailable: 'Não foi possível guardar',
221
210
  teamLabel: 'Equipa',
222
211
  durationLabel: 'Duração',
223
212
  },
@@ -172,7 +172,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
172
172
  ],
173
173
  ui: {
174
174
  title: 'Счётчик регби',
175
- description: 'Отслеживайте счёт матча и таймеры штрафников.',
176
175
  home: 'Хозяева',
177
176
  away: 'Гости',
178
177
  score: 'Счёт',
@@ -180,26 +179,20 @@ export const content: RugbyScoreKeeperLocaleContent = {
180
179
  conversion: 'Реализация +2',
181
180
  penalty: 'Штрафной +3',
182
181
  dropGoal: 'Дроп-гол +3',
183
- conversionYes: 'Да',
184
- conversionNo: 'Нет',
185
182
  sinBin: 'Жёлтая карточка',
186
183
  sinBinTitle: 'Скамейка штрафников',
187
184
  sinBinPlayer: 'Имя или номер игрока:',
188
185
  sinBinAdd: 'Начать отстранение',
189
186
  sinBinEmpty: 'Нет активных отстранений',
190
- sinBinReturn: 'Вернулся',
191
187
  matchClock: 'Часы матча',
192
188
  half: 'Половина',
193
189
  half1: 'Первая половина',
194
190
  half2: 'Вторая половина',
195
191
  startMatch: 'Начало матча',
196
- pauseMatch: 'Пауза',
197
- resumeMatch: 'Продолжить',
198
192
  resetMatch: 'Сбросить матч',
199
193
  resetConfirm: 'Сбросить текущий матч? Все очки и таймеры будут потеряны.',
200
194
  cancel: 'Отмена',
201
195
  confirm: 'Подтвердить сброс',
202
- period: 'Период',
203
196
  scoringSummary: 'Сводка очков',
204
197
  tryScored: 'Попытки',
205
198
  conversionSuccess: 'Реализации',
@@ -207,8 +200,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
207
200
  penaltyScored: 'Штрафные',
208
201
  dropGoalScored: 'Дроп-голы',
209
202
  totalPoints: 'Всего',
210
- fullscreen: 'Полный экран',
211
- toggleSound: 'Вкл/Выкл звук',
212
203
  eventLog: 'Журнал событий',
213
204
  eventEmpty: 'Событий пока нет',
214
205
  undoBtn: 'Отменить последнее',
@@ -216,8 +207,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
216
207
  timeOn: 'Время вкл',
217
208
  fullTime: 'Матч окончен',
218
209
  minutesShort: 'мин',
219
- savedLocally: 'Сохранено на этом устройстве',
220
- saveUnavailable: 'Сохранение недоступно',
221
210
  teamLabel: 'Команда',
222
211
  durationLabel: 'Длительность',
223
212
  },
@@ -172,7 +172,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
172
172
  ],
173
173
  ui: {
174
174
  title: 'Rugbypoängräknare',
175
- description: 'Spåra matchpoäng och utvisningstimer.',
176
175
  home: 'Hemma',
177
176
  away: 'Borta',
178
177
  score: 'Poäng',
@@ -180,26 +179,20 @@ export const content: RugbyScoreKeeperLocaleContent = {
180
179
  conversion: 'Omvandling +2',
181
180
  penalty: 'Straff +3',
182
181
  dropGoal: 'Drop Goal +3',
183
- conversionYes: 'Ja',
184
- conversionNo: 'Nej',
185
182
  sinBin: 'Gult kort',
186
183
  sinBinTitle: 'Utvisning',
187
184
  sinBinPlayer: 'Spelarens namn eller nummer:',
188
185
  sinBinAdd: 'Starta utvisning',
189
186
  sinBinEmpty: 'Inga aktiva utvisningar',
190
- sinBinReturn: 'Återvände',
191
187
  matchClock: 'Matchklocka',
192
188
  half: 'Halvlek',
193
189
  half1: 'Första halvlek',
194
190
  half2: 'Andra halvlek',
195
191
  startMatch: 'Avspark',
196
- pauseMatch: 'Pausa',
197
- resumeMatch: 'Återuppta',
198
192
  resetMatch: 'Återställ match',
199
193
  resetConfirm: 'Återställa pågående match? Alla poäng och timer kommer att förloras.',
200
194
  cancel: 'Avbryt',
201
195
  confirm: 'Bekräfta återställning',
202
- period: 'Period',
203
196
  scoringSummary: 'Poängsammanställning',
204
197
  tryScored: 'Försök',
205
198
  conversionSuccess: 'Omvandlingar',
@@ -207,8 +200,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
207
200
  penaltyScored: 'Straffar',
208
201
  dropGoalScored: 'Drop goals',
209
202
  totalPoints: 'Totalt',
210
- fullscreen: 'Helskärm',
211
- toggleSound: 'Ljud på/av',
212
203
  eventLog: 'Händelselogg',
213
204
  eventEmpty: 'Inga händelser ännu',
214
205
  undoBtn: 'Ångra senaste',
@@ -216,8 +207,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
216
207
  timeOn: 'Tid igång',
217
208
  fullTime: 'Matchen är slut',
218
209
  minutesShort: 'min',
219
- savedLocally: 'Sparat på den här enheten',
220
- saveUnavailable: 'Det går inte att spara',
221
210
  teamLabel: 'Lag',
222
211
  durationLabel: 'Längd',
223
212
  },
@@ -172,7 +172,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
172
172
  ],
173
173
  ui: {
174
174
  title: 'Rugby Skorboardu',
175
- description: 'Maç skorlarını ve sin bin sürelerini takip edin.',
176
175
  home: 'Ev Sahibi',
177
176
  away: 'Deplasman',
178
177
  score: 'Skor',
@@ -180,26 +179,20 @@ export const content: RugbyScoreKeeperLocaleContent = {
180
179
  conversion: 'Dönüşüm +2',
181
180
  penalty: 'Penaltı +3',
182
181
  dropGoal: 'Drop Goal +3',
183
- conversionYes: 'Evet',
184
- conversionNo: 'Hayır',
185
182
  sinBin: 'Sarı kart',
186
183
  sinBinTitle: 'Sin Bin Cezası',
187
184
  sinBinPlayer: 'Oyuncu adı veya numarası:',
188
185
  sinBinAdd: 'Cezayı başlat',
189
186
  sinBinEmpty: 'Aktif ceza yok',
190
- sinBinReturn: 'Döndü',
191
187
  matchClock: 'Maç Saati',
192
188
  half: 'Devre',
193
189
  half1: 'İlk devre',
194
190
  half2: 'İkinci devre',
195
191
  startMatch: 'Başlama vuruşu',
196
- pauseMatch: 'Duraklat',
197
- resumeMatch: 'Devam et',
198
192
  resetMatch: 'Maçı sıfırla',
199
193
  resetConfirm: 'Geçerli maç sıfırlansın mı? Tüm skorlar ve süreölçerler silinecek.',
200
194
  cancel: 'İptal',
201
195
  confirm: 'Sıfırlamayı onayla',
202
- period: 'Periyot',
203
196
  scoringSummary: 'Skor Özeti',
204
197
  tryScored: 'Denemeler',
205
198
  conversionSuccess: 'Dönüşümler',
@@ -207,8 +200,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
207
200
  penaltyScored: 'Penaltılar',
208
201
  dropGoalScored: 'Drop Goller',
209
202
  totalPoints: 'Toplam',
210
- fullscreen: 'Tam ekran',
211
- toggleSound: 'Sesi aç/kapat',
212
203
  eventLog: 'Olay Kaydı',
213
204
  eventEmpty: 'Henüz olay yok',
214
205
  undoBtn: 'Son işlemi geri al',
@@ -216,8 +207,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
216
207
  timeOn: 'Süre başladı',
217
208
  fullTime: 'Maç bitti',
218
209
  minutesShort: 'dk',
219
- savedLocally: 'Bu cihazda kaydedildi',
220
- saveUnavailable: 'Kaydetme kullanılamıyor',
221
210
  teamLabel: 'Takım',
222
211
  durationLabel: 'Süre',
223
212
  },
@@ -172,7 +172,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
172
172
  ],
173
173
  ui: {
174
174
  title: '橄榄球计分板',
175
- description: '追踪比赛得分和罚时计时器。',
176
175
  home: '主队',
177
176
  away: '客队',
178
177
  score: '得分',
@@ -180,26 +179,20 @@ export const content: RugbyScoreKeeperLocaleContent = {
180
179
  conversion: '转换攻门 +2',
181
180
  penalty: '罚踢 +3',
182
181
  dropGoal: '落踢射门 +3',
183
- conversionYes: '是',
184
- conversionNo: '否',
185
182
  sinBin: '黄牌',
186
183
  sinBinTitle: '罚时离场',
187
184
  sinBinPlayer: '球员姓名或号码:',
188
185
  sinBinAdd: '开始处罚',
189
186
  sinBinEmpty: '无执行中的处罚',
190
- sinBinReturn: '已回归',
191
187
  matchClock: '比赛时钟',
192
188
  half: '半场',
193
189
  half1: '上半场',
194
190
  half2: '下半场',
195
191
  startMatch: '开球',
196
- pauseMatch: '暂停',
197
- resumeMatch: '继续',
198
192
  resetMatch: '重置比赛',
199
193
  resetConfirm: '重置当前比赛?所有得分和计时器都将丢失。',
200
194
  cancel: '取消',
201
195
  confirm: '确认重置',
202
- period: '时段',
203
196
  scoringSummary: '得分摘要',
204
197
  tryScored: '达阵',
205
198
  conversionSuccess: '转换攻门成功',
@@ -207,8 +200,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
207
200
  penaltyScored: '罚踢',
208
201
  dropGoalScored: '落踢射门',
209
202
  totalPoints: '总计',
210
- fullscreen: '全屏',
211
- toggleSound: '切换音效',
212
203
  eventLog: '事件日志',
213
204
  eventEmpty: '暂无事件',
214
205
  undoBtn: '撤销上一步',
@@ -216,8 +207,6 @@ export const content: RugbyScoreKeeperLocaleContent = {
216
207
  timeOn: '时间开',
217
208
  fullTime: '比赛结束',
218
209
  minutesShort: '分钟',
219
- savedLocally: '已保存到此设备',
220
- saveUnavailable: '无法保存',
221
210
  teamLabel: '球队',
222
211
  durationLabel: '时长',
223
212
  },
@@ -53,27 +53,6 @@
53
53
  gap: 10px;
54
54
  }
55
55
 
56
- .rg-save-status {
57
- align-self: flex-end;
58
- display: inline-flex;
59
- align-items: center;
60
- gap: 6px;
61
- color: var(--rg-text-muted);
62
- font-size: 0.7rem;
63
- font-weight: 600;
64
- }
65
-
66
- .rg-save-dot {
67
- width: 7px;
68
- height: 7px;
69
- border-radius: 50%;
70
- background: var(--rg-success);
71
- box-shadow: 0 0 0 3px rgba(46, 160, 67, 0.14);
72
- }
73
-
74
- .rg-save-status.is-error { color: var(--rg-danger); }
75
- .rg-save-status.is-error .rg-save-dot { background: var(--rg-danger); }
76
-
77
56
  .theme-dark .rg-app {
78
57
  --rg-gold: #e3b341;
79
58
  --rg-field: #238636;
@@ -53,17 +53,8 @@ function session(ctx: RuntimeContext): RugbySession {
53
53
  };
54
54
  }
55
55
 
56
- function showSaveStatus(saved: boolean, ui: RugbyScoreKeeperUI) {
57
- const status = q('rg-save-status');
58
- const text = q('rg-save-status-text');
59
- status?.classList.toggle('is-error', !saved);
60
- if (text) text.textContent = saved ? ui.savedLocally : ui.saveUnavailable;
61
- }
62
-
63
- function persist(ctx: RuntimeContext, ui: RugbyScoreKeeperUI): boolean {
64
- const saved = ctx.storage ? saveRugbySession(ctx.storage, session(ctx)) : false;
65
- showSaveStatus(saved, ui);
66
- return saved;
56
+ function persist(ctx: RuntimeContext): void {
57
+ if (ctx.storage) saveRugbySession(ctx.storage, session(ctx));
67
58
  }
68
59
 
69
60
  function toggleConversion(team: TeamKey | null) {
@@ -147,7 +138,7 @@ function wireScoreButtons(ctx: RuntimeContext, ui: RugbyScoreKeeperUI) {
147
138
  if (ctx.state.matchEnded) return;
148
139
  const message = applyScore(ctx, team, button.dataset.action as ScoreAction, ui);
149
140
  if (message) showBanner(message, true);
150
- persist(ctx, ui); renderAll(ctx, ui);
141
+ persist(ctx); renderAll(ctx, ui);
151
142
  });
152
143
  });
153
144
  });
@@ -163,7 +154,7 @@ function syncClock(ctx: RuntimeContext, clock: ClockId, ui: RugbyScoreKeeperUI)
163
154
  if (clock.value) return;
164
155
  clock.value = setInterval(() => {
165
156
  ctx.state = tickClock(ctx.state, 1);
166
- persist(ctx, ui); renderAll(ctx, ui);
157
+ persist(ctx); renderAll(ctx, ui);
167
158
  if (!ctx.state.clockRunning) {
168
159
  stopClock(clock);
169
160
  if (ctx.state.matchEnded) showBanner(ui.fullTime, false);
@@ -176,7 +167,7 @@ function handleClock(ctx: RuntimeContext, clock: ClockId, ui: RugbyScoreKeeperUI
176
167
  if (!ctx.state.matchStarted) ctx.state = startMatch(ctx.state);
177
168
  else if (ctx.state.half === 1 && ctx.state.elapsed >= 2400) ctx.state = startSecondHalf(ctx.state);
178
169
  else ctx.state = toggleClock(ctx.state);
179
- persist(ctx, ui); renderAll(ctx, ui); syncClock(ctx, clock, ui);
170
+ persist(ctx); renderAll(ctx, ui); syncClock(ctx, clock, ui);
180
171
  }
181
172
 
182
173
  function handleSinBin(ctx: RuntimeContext, ui: RugbyScoreKeeperUI) {
@@ -185,20 +176,20 @@ function handleSinBin(ctx: RuntimeContext, ui: RugbyScoreKeeperUI) {
185
176
  ctx.state = addSinBin(ctx.state, input.value, ctx.sinBinDuration, ctx.sinBinTeam);
186
177
  showBanner(`${ui.sinBin} · ${ctx.teamNames[ctx.sinBinTeam]} · ${formatSinBinTime(ctx.sinBinDuration)}`, false);
187
178
  input.value = '';
188
- persist(ctx, ui); renderAll(ctx, ui); input.focus();
179
+ persist(ctx); renderAll(ctx, ui); input.focus();
189
180
  }
190
181
 
191
- function wireChoices(ctx: RuntimeContext, ui: RugbyScoreKeeperUI) {
182
+ function wireChoices(ctx: RuntimeContext) {
192
183
  document.querySelectorAll<HTMLElement>('[data-sinbin-team]').forEach((button) => {
193
184
  button.addEventListener('click', () => {
194
185
  ctx.sinBinTeam = button.dataset.sinbinTeam as TeamKey;
195
- persist(ctx, ui); renderChoices(ctx);
186
+ persist(ctx); renderChoices(ctx);
196
187
  });
197
188
  });
198
189
  document.querySelectorAll<HTMLElement>('[data-sinbin-duration]').forEach((button) => {
199
190
  button.addEventListener('click', () => {
200
191
  ctx.sinBinDuration = Number(button.dataset.sinbinDuration) as SinBinDuration;
201
- persist(ctx, ui); renderChoices(ctx);
192
+ persist(ctx); renderChoices(ctx);
202
193
  });
203
194
  });
204
195
  }
@@ -211,7 +202,7 @@ function wireTeamNames(ctx: RuntimeContext, ui: RugbyScoreKeeperUI) {
211
202
  input.maxLength = 40;
212
203
  input.addEventListener('input', () => {
213
204
  ctx.teamNames[team] = input.value.trim() || ui[team];
214
- persist(ctx, ui); renderAll(ctx, ui);
205
+ persist(ctx); renderAll(ctx, ui);
215
206
  });
216
207
  });
217
208
  }
@@ -231,7 +222,7 @@ function wireReset(ctx: RuntimeContext, clock: ClockId, ui: RugbyScoreKeeperUI)
231
222
  q('rg-modal-confirm')?.addEventListener('click', () => {
232
223
  stopClock(clock); ctx.state = createInitialState(); ctx.convTeam = null;
233
224
  if (ctx.storage) clearRugbySession(ctx.storage);
234
- persist(ctx, ui); renderAll(ctx, ui); setModal(false);
225
+ persist(ctx); renderAll(ctx, ui); setModal(false);
235
226
  });
236
227
  q('rg-modal')?.addEventListener('click', (event) => {
237
228
  if (event.target === q('rg-modal')) setModal(false);
@@ -246,15 +237,15 @@ export function initRugbyScorekeeper() {
246
237
  const ui = getUI();
247
238
  const ctx = createContext(ui);
248
239
  const clock: ClockId = { value: undefined };
249
- wireScoreButtons(ctx, ui); wireChoices(ctx, ui); wireTeamNames(ctx, ui); wireReset(ctx, clock, ui);
240
+ wireScoreButtons(ctx, ui); wireChoices(ctx); wireTeamNames(ctx, ui); wireReset(ctx, clock, ui);
250
241
  q('rg-btn-clock')?.addEventListener('click', () => handleClock(ctx, clock, ui));
251
242
  q('rg-btn-sinbin')?.addEventListener('click', () => handleSinBin(ctx, ui));
252
243
  q('rg-btn-undo')?.addEventListener('click', () => {
253
- ctx.state = undoLast(ctx.state); ctx.convTeam = null; persist(ctx, ui); renderAll(ctx, ui);
244
+ ctx.state = undoLast(ctx.state); ctx.convTeam = null; persist(ctx); renderAll(ctx, ui);
254
245
  });
255
246
  q<HTMLInputElement>('rg-sinbin-input')?.addEventListener('keydown', (event) => {
256
247
  if (event.key === 'Enter') handleSinBin(ctx, ui);
257
248
  });
258
- window.addEventListener('pagehide', () => { persist(ctx, ui); stopClock(clock); });
259
- persist(ctx, ui); renderAll(ctx, ui); syncClock(ctx, clock, ui);
249
+ window.addEventListener('pagehide', () => { persist(ctx); stopClock(clock); });
250
+ persist(ctx); renderAll(ctx, ui); syncClock(ctx, clock, ui);
260
251
  }
@@ -1,6 +1,5 @@
1
1
  export interface RugbyScoreKeeperUI {
2
2
  title: string;
3
- description: string;
4
3
  home: string;
5
4
  away: string;
6
5
  score: string;
@@ -8,26 +7,20 @@ export interface RugbyScoreKeeperUI {
8
7
  conversion: string;
9
8
  penalty: string;
10
9
  dropGoal: string;
11
- conversionYes: string;
12
- conversionNo: string;
13
10
  sinBin: string;
14
11
  sinBinTitle: string;
15
12
  sinBinPlayer: string;
16
13
  sinBinAdd: string;
17
14
  sinBinEmpty: string;
18
- sinBinReturn: string;
19
15
  matchClock: string;
20
16
  half: string;
21
17
  half1: string;
22
18
  half2: string;
23
19
  startMatch: string;
24
- pauseMatch: string;
25
- resumeMatch: string;
26
20
  resetMatch: string;
27
21
  resetConfirm: string;
28
22
  cancel: string;
29
23
  confirm: string;
30
- period: string;
31
24
  scoringSummary: string;
32
25
  tryScored: string;
33
26
  conversionSuccess: string;
@@ -35,8 +28,6 @@ export interface RugbyScoreKeeperUI {
35
28
  penaltyScored: string;
36
29
  dropGoalScored: string;
37
30
  totalPoints: string;
38
- fullscreen: string;
39
- toggleSound: string;
40
31
  eventLog: string;
41
32
  eventEmpty: string;
42
33
  undoBtn: string;
@@ -44,8 +35,6 @@ export interface RugbyScoreKeeperUI {
44
35
  timeOn: string;
45
36
  fullTime: string;
46
37
  minutesShort: string;
47
- savedLocally: string;
48
- saveUnavailable: string;
49
38
  teamLabel: string;
50
39
  durationLabel: string;
51
40
  }