valtech-components 4.0.426 → 4.0.428
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/esm2022/lib/components/organisms/mini-games/bubble-blitz-game.component.mjs +18 -9
- package/esm2022/lib/components/organisms/mini-games/chessimals-game.component.mjs +18 -9
- package/esm2022/lib/components/organisms/mini-games/christianity-game.component.mjs +528 -0
- package/esm2022/lib/components/organisms/mini-games/memory-game.component.mjs +18 -9
- package/esm2022/lib/components/organisms/mini-games/mini-games.i18n.mjs +51 -1
- package/esm2022/lib/components/organisms/mini-games/simon-game.component.mjs +18 -9
- package/esm2022/lib/components/organisms/mini-games/types.mjs +1 -1
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/mini-games/public-api.mjs +34 -2
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/valtech-components-mini-games.mjs +34 -2
- package/fesm2022/valtech-components-mini-games.mjs.map +1 -1
- package/fesm2022/valtech-components.mjs +644 -34
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/mini-games/bubble-blitz-game.component.d.ts +2 -0
- package/lib/components/organisms/mini-games/chessimals-game.component.d.ts +3 -1
- package/lib/components/organisms/mini-games/christianity-game.component.d.ts +36 -0
- package/lib/components/organisms/mini-games/memory-game.component.d.ts +2 -0
- package/lib/components/organisms/mini-games/simon-game.component.d.ts +2 -0
- package/lib/components/organisms/mini-games/types.d.ts +45 -0
- package/lib/version.d.ts +1 -1
- package/mini-games/public-api.d.ts +4 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -58,7 +58,7 @@ import fixWebmDuration from 'fix-webm-duration';
|
|
|
58
58
|
* Current version of valtech-components.
|
|
59
59
|
* This is automatically updated during the publish process.
|
|
60
60
|
*/
|
|
61
|
-
const VERSION = '4.0.
|
|
61
|
+
const VERSION = '4.0.428';
|
|
62
62
|
|
|
63
63
|
// Control de estado de refresco (singleton a nivel de módulo)
|
|
64
64
|
let isRefreshing = false;
|
|
@@ -62455,6 +62455,31 @@ const MINI_GAMES_I18N = {
|
|
|
62455
62455
|
bubbleDescription: 'Revienta grupos de burbujas, encadena combos y sube tu puntaje.',
|
|
62456
62456
|
chessimalsTitle: 'Chessimals',
|
|
62457
62457
|
chessimalsDescription: 'Una carrera de peones con cartas de animales y poderes tácticos.',
|
|
62458
|
+
christianityTitle: 'Christianity',
|
|
62459
|
+
christianityDescription: 'Un juego de cartas familiar con líderes, ofrendas y decisiones tácticas.',
|
|
62460
|
+
christianityEyebrow: 'MVP de mesa',
|
|
62461
|
+
christianityTable: 'Mesa de Christianity',
|
|
62462
|
+
christianityTurn: 'Turno',
|
|
62463
|
+
christianityOfferings: 'Ofrendas',
|
|
62464
|
+
christianityHand: 'Mano',
|
|
62465
|
+
christianityOpponentBattle: 'Zona de batalla rival',
|
|
62466
|
+
christianityYourBattle: 'Tu zona de batalla',
|
|
62467
|
+
christianitySharedZone: 'Zona compartida',
|
|
62468
|
+
christianityHistory: 'Historia',
|
|
62469
|
+
christianityDeck: 'Mazo',
|
|
62470
|
+
christianityPlace: 'Lugar',
|
|
62471
|
+
christianityEmpty: 'Vacío',
|
|
62472
|
+
christianityYourHand: 'Tu mano',
|
|
62473
|
+
christianityCost: 'Coste',
|
|
62474
|
+
christianityEndTurn: 'Terminar turno',
|
|
62475
|
+
christianityPlayCard: 'Jugar carta',
|
|
62476
|
+
christianityReset: 'Reiniciar mock',
|
|
62477
|
+
christianityWaitTurn: 'Espera el turno rival.',
|
|
62478
|
+
christianityChooseTarget: 'Elige un objetivo para atacar.',
|
|
62479
|
+
christianityReadyToPlay: 'Puedes jugar esta carta.',
|
|
62480
|
+
christianityNeedOfferings: 'Necesitas más ofrendas para jugar esa carta.',
|
|
62481
|
+
christianityChooseCard: 'Elige una carta o un personaje listo para actuar.',
|
|
62482
|
+
christianityHistoryEmpty: 'Todavía no hay cartas en historia.',
|
|
62458
62483
|
soonTitle: 'Próximamente',
|
|
62459
62484
|
openGame: 'Jugar',
|
|
62460
62485
|
close: 'Cerrar',
|
|
@@ -62834,6 +62859,31 @@ const MINI_GAMES_I18N = {
|
|
|
62834
62859
|
bubbleDescription: 'Pop bubble groups, chain combos, and push your score higher.',
|
|
62835
62860
|
chessimalsTitle: 'Chessimals',
|
|
62836
62861
|
chessimalsDescription: 'A pawn race with animal cards and tactical powers.',
|
|
62862
|
+
christianityTitle: 'Christianity',
|
|
62863
|
+
christianityDescription: 'A family card game with leaders, offerings, and tactical choices.',
|
|
62864
|
+
christianityEyebrow: 'Table MVP',
|
|
62865
|
+
christianityTable: 'Christianity table',
|
|
62866
|
+
christianityTurn: 'Turn',
|
|
62867
|
+
christianityOfferings: 'Offerings',
|
|
62868
|
+
christianityHand: 'Hand',
|
|
62869
|
+
christianityOpponentBattle: 'Opponent battle zone',
|
|
62870
|
+
christianityYourBattle: 'Your battle zone',
|
|
62871
|
+
christianitySharedZone: 'Shared zone',
|
|
62872
|
+
christianityHistory: 'History',
|
|
62873
|
+
christianityDeck: 'Deck',
|
|
62874
|
+
christianityPlace: 'Place',
|
|
62875
|
+
christianityEmpty: 'Empty',
|
|
62876
|
+
christianityYourHand: 'Your hand',
|
|
62877
|
+
christianityCost: 'Cost',
|
|
62878
|
+
christianityEndTurn: 'End turn',
|
|
62879
|
+
christianityPlayCard: 'Play card',
|
|
62880
|
+
christianityReset: 'Reset mock',
|
|
62881
|
+
christianityWaitTurn: 'Wait for the opponent turn.',
|
|
62882
|
+
christianityChooseTarget: 'Choose a target to attack.',
|
|
62883
|
+
christianityReadyToPlay: 'You can play this card.',
|
|
62884
|
+
christianityNeedOfferings: 'You need more offerings to play that card.',
|
|
62885
|
+
christianityChooseCard: 'Choose a card or a ready character.',
|
|
62886
|
+
christianityHistoryEmpty: 'There are no cards in history yet.',
|
|
62837
62887
|
soonTitle: 'Coming soon',
|
|
62838
62888
|
openGame: 'Play',
|
|
62839
62889
|
close: 'Close',
|
|
@@ -64311,6 +64361,7 @@ class ChessimalsGameComponent {
|
|
|
64311
64361
|
});
|
|
64312
64362
|
this.botThinking = signal(false);
|
|
64313
64363
|
this.confirmAction = signal(undefined);
|
|
64364
|
+
this.confirmedAction = signal(undefined);
|
|
64314
64365
|
this.onlineJoinCode = signal('');
|
|
64315
64366
|
this.onlineLoading = signal(false);
|
|
64316
64367
|
this.onlineAction = signal(undefined);
|
|
@@ -65085,13 +65136,12 @@ class ChessimalsGameComponent {
|
|
|
65085
65136
|
closeConfirmModal() {
|
|
65086
65137
|
this.confirmAction.set(undefined);
|
|
65087
65138
|
}
|
|
65088
|
-
|
|
65089
|
-
if (token !== 'confirm') {
|
|
65090
|
-
this.closeConfirmModal();
|
|
65091
|
-
return;
|
|
65092
|
-
}
|
|
65093
|
-
const action = this.confirmAction();
|
|
65139
|
+
handleConfirmModalDismissed() {
|
|
65094
65140
|
this.confirmAction.set(undefined);
|
|
65141
|
+
const action = this.confirmedAction();
|
|
65142
|
+
this.confirmedAction.set(undefined);
|
|
65143
|
+
if (!action)
|
|
65144
|
+
return;
|
|
65095
65145
|
if (action === 'restart') {
|
|
65096
65146
|
this.restartGame();
|
|
65097
65147
|
return;
|
|
@@ -65108,6 +65158,15 @@ class ChessimalsGameComponent {
|
|
|
65108
65158
|
this.resignGame();
|
|
65109
65159
|
}
|
|
65110
65160
|
}
|
|
65161
|
+
confirmPendingAction(token) {
|
|
65162
|
+
if (token !== 'confirm') {
|
|
65163
|
+
this.closeConfirmModal();
|
|
65164
|
+
return;
|
|
65165
|
+
}
|
|
65166
|
+
const action = this.confirmAction();
|
|
65167
|
+
this.confirmedAction.set(action);
|
|
65168
|
+
this.confirmAction.set(undefined);
|
|
65169
|
+
}
|
|
65111
65170
|
resignGame() {
|
|
65112
65171
|
const game = this.game();
|
|
65113
65172
|
if (game.status === 'finished')
|
|
@@ -66955,7 +67014,7 @@ class ChessimalsGameComponent {
|
|
|
66955
67014
|
<ion-modal
|
|
66956
67015
|
[isOpen]="!!confirmAction()"
|
|
66957
67016
|
cssClass="val-modal-adaptive"
|
|
66958
|
-
(didDismiss)="
|
|
67017
|
+
(didDismiss)="handleConfirmModalDismissed()"
|
|
66959
67018
|
>
|
|
66960
67019
|
<ng-template>
|
|
66961
67020
|
<val-modal-layout
|
|
@@ -67796,7 +67855,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
67796
67855
|
<ion-modal
|
|
67797
67856
|
[isOpen]="!!confirmAction()"
|
|
67798
67857
|
cssClass="val-modal-adaptive"
|
|
67799
|
-
(didDismiss)="
|
|
67858
|
+
(didDismiss)="handleConfirmModalDismissed()"
|
|
67800
67859
|
>
|
|
67801
67860
|
<ng-template>
|
|
67802
67861
|
<val-modal-layout
|
|
@@ -67822,6 +67881,530 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
67822
67881
|
type: Input
|
|
67823
67882
|
}] } });
|
|
67824
67883
|
|
|
67884
|
+
const STARTER_CARDS = {
|
|
67885
|
+
p_scout: { id: 'p_scout', name: 'Scout', cost: 1, attack: 1, life: 1 },
|
|
67886
|
+
p_guard: { id: 'p_guard', name: 'Guard', cost: 2, attack: 1, life: 3 },
|
|
67887
|
+
p_warrior: { id: 'p_warrior', name: 'Warrior', cost: 2, attack: 2, life: 2 },
|
|
67888
|
+
p_elder: { id: 'p_elder', name: 'Elder', cost: 3, attack: 2, life: 4 },
|
|
67889
|
+
p_champion: { id: 'p_champion', name: 'Champion', cost: 4, attack: 4, life: 4 },
|
|
67890
|
+
};
|
|
67891
|
+
const STARTING_GAME = {
|
|
67892
|
+
gameId: 'mock-christianity',
|
|
67893
|
+
status: 'in_progress',
|
|
67894
|
+
mode: 'local_pass',
|
|
67895
|
+
turnOwner: 'P1',
|
|
67896
|
+
revision: 0,
|
|
67897
|
+
turnCount: 1,
|
|
67898
|
+
sharedDeckCount: 12,
|
|
67899
|
+
historyZone: [],
|
|
67900
|
+
players: {
|
|
67901
|
+
P1: {
|
|
67902
|
+
seat: 'P1',
|
|
67903
|
+
displayName: 'Jugador',
|
|
67904
|
+
leaderName: 'Adam',
|
|
67905
|
+
leaderHp: 15,
|
|
67906
|
+
leaderMaxHp: 15,
|
|
67907
|
+
maxOfferings: 3,
|
|
67908
|
+
offeringPoints: 3,
|
|
67909
|
+
hand: ['p_scout', 'p_warrior', 'p_guard', 'p_elder'],
|
|
67910
|
+
battleZone: [],
|
|
67911
|
+
},
|
|
67912
|
+
P2: {
|
|
67913
|
+
seat: 'P2',
|
|
67914
|
+
displayName: 'Rival',
|
|
67915
|
+
leaderName: 'Noah',
|
|
67916
|
+
leaderHp: 15,
|
|
67917
|
+
leaderMaxHp: 15,
|
|
67918
|
+
maxOfferings: 3,
|
|
67919
|
+
offeringPoints: 3,
|
|
67920
|
+
handCount: 4,
|
|
67921
|
+
battleZone: [
|
|
67922
|
+
{
|
|
67923
|
+
instanceId: 'opp_001',
|
|
67924
|
+
cardId: 'p_scout',
|
|
67925
|
+
name: 'Scout',
|
|
67926
|
+
owner: 'P2',
|
|
67927
|
+
controller: 'P2',
|
|
67928
|
+
attack: 1,
|
|
67929
|
+
currentHp: 1,
|
|
67930
|
+
maxHp: 1,
|
|
67931
|
+
canAttack: false,
|
|
67932
|
+
},
|
|
67933
|
+
],
|
|
67934
|
+
},
|
|
67935
|
+
},
|
|
67936
|
+
log: ['Partida iniciada.'],
|
|
67937
|
+
};
|
|
67938
|
+
class ChristianityGameComponent {
|
|
67939
|
+
constructor() {
|
|
67940
|
+
this.i18n = inject(I18nService);
|
|
67941
|
+
this.game = signal(structuredClone(STARTING_GAME));
|
|
67942
|
+
this.selectedHandCard = signal(null);
|
|
67943
|
+
this.selectedAttacker = signal(null);
|
|
67944
|
+
this.showHistory = signal(false);
|
|
67945
|
+
this.player = computed(() => this.game().players.P1);
|
|
67946
|
+
this.opponent = computed(() => this.game().players.P2);
|
|
67947
|
+
this.currentPlayer = computed(() => this.game().players[this.game().turnOwner]);
|
|
67948
|
+
this.isOwnTurn = computed(() => this.game().turnOwner === 'P1');
|
|
67949
|
+
this.opponentHandCount = computed(() => this.opponent().handCount ?? this.opponent().hand?.length ?? 0);
|
|
67950
|
+
this.statusText = computed(() => {
|
|
67951
|
+
const attacker = this.selectedAttacker();
|
|
67952
|
+
const handCard = this.selectedHandCard();
|
|
67953
|
+
if (!this.isOwnTurn()) {
|
|
67954
|
+
return this.t('christianityWaitTurn');
|
|
67955
|
+
}
|
|
67956
|
+
if (attacker) {
|
|
67957
|
+
return this.t('christianityChooseTarget');
|
|
67958
|
+
}
|
|
67959
|
+
if (handCard) {
|
|
67960
|
+
const card = this.cardDefinition(handCard);
|
|
67961
|
+
return this.canPlay(card) ? this.t('christianityReadyToPlay') : this.t('christianityNeedOfferings');
|
|
67962
|
+
}
|
|
67963
|
+
return this.t('christianityChooseCard');
|
|
67964
|
+
});
|
|
67965
|
+
this.i18n.registerDefaults('MiniGames', MINI_GAMES_I18N);
|
|
67966
|
+
}
|
|
67967
|
+
t(key) {
|
|
67968
|
+
this.i18n.lang();
|
|
67969
|
+
return this.i18n.t(key, 'MiniGames');
|
|
67970
|
+
}
|
|
67971
|
+
cardDefinition(cardId) {
|
|
67972
|
+
return STARTER_CARDS[cardId] ?? STARTER_CARDS['p_scout'];
|
|
67973
|
+
}
|
|
67974
|
+
battleSlots(seat) {
|
|
67975
|
+
const cards = this.game().players[seat].battleZone;
|
|
67976
|
+
return Array.from({ length: 5 }, (_, index) => ({
|
|
67977
|
+
trackId: cards[index]?.instanceId ?? `${seat}-empty-${index}`,
|
|
67978
|
+
card: cards[index],
|
|
67979
|
+
}));
|
|
67980
|
+
}
|
|
67981
|
+
offeringCards(player) {
|
|
67982
|
+
return Array.from({ length: Math.max(0, player.maxOfferings) });
|
|
67983
|
+
}
|
|
67984
|
+
canPlay(card) {
|
|
67985
|
+
return this.isOwnTurn() && this.player().offeringPoints >= card.cost && this.player().battleZone.length < 5;
|
|
67986
|
+
}
|
|
67987
|
+
canPlaySelected() {
|
|
67988
|
+
const selected = this.selectedHandCard();
|
|
67989
|
+
return !!selected && this.canPlay(this.cardDefinition(selected));
|
|
67990
|
+
}
|
|
67991
|
+
selectHandCard(cardId) {
|
|
67992
|
+
this.selectedAttacker.set(null);
|
|
67993
|
+
this.selectedHandCard.set(this.selectedHandCard() === cardId ? null : cardId);
|
|
67994
|
+
}
|
|
67995
|
+
playSelectedCard() {
|
|
67996
|
+
const cardId = this.selectedHandCard();
|
|
67997
|
+
if (!cardId)
|
|
67998
|
+
return;
|
|
67999
|
+
const card = this.cardDefinition(cardId);
|
|
68000
|
+
if (!this.canPlay(card))
|
|
68001
|
+
return;
|
|
68002
|
+
this.game.update(game => {
|
|
68003
|
+
const next = structuredClone(game);
|
|
68004
|
+
const player = next.players.P1;
|
|
68005
|
+
const handIndex = player.hand?.indexOf(cardId) ?? -1;
|
|
68006
|
+
if (handIndex < 0 || !player.hand)
|
|
68007
|
+
return game;
|
|
68008
|
+
player.hand.splice(handIndex, 1);
|
|
68009
|
+
player.offeringPoints -= card.cost;
|
|
68010
|
+
player.battleZone.push({
|
|
68011
|
+
instanceId: `p1_${next.revision + 1}_${player.battleZone.length}`,
|
|
68012
|
+
cardId: card.id,
|
|
68013
|
+
name: card.name,
|
|
68014
|
+
owner: 'P1',
|
|
68015
|
+
controller: 'P1',
|
|
68016
|
+
attack: card.attack,
|
|
68017
|
+
currentHp: card.life,
|
|
68018
|
+
maxHp: card.life,
|
|
68019
|
+
canAttack: false,
|
|
68020
|
+
});
|
|
68021
|
+
next.revision++;
|
|
68022
|
+
next.log = [`${card.name} entra en batalla.`, ...next.log].slice(0, 4);
|
|
68023
|
+
return next;
|
|
68024
|
+
});
|
|
68025
|
+
this.selectedHandCard.set(null);
|
|
68026
|
+
}
|
|
68027
|
+
selectAttacker(card) {
|
|
68028
|
+
this.selectedHandCard.set(null);
|
|
68029
|
+
if (!this.isOwnTurn() || !card.canAttack)
|
|
68030
|
+
return;
|
|
68031
|
+
this.selectedAttacker.set(this.selectedAttacker()?.instanceId === card.instanceId ? null : card);
|
|
68032
|
+
}
|
|
68033
|
+
attackLeader() {
|
|
68034
|
+
const attacker = this.selectedAttacker();
|
|
68035
|
+
if (!attacker)
|
|
68036
|
+
return;
|
|
68037
|
+
this.game.update(game => {
|
|
68038
|
+
const next = structuredClone(game);
|
|
68039
|
+
const liveAttacker = next.players.P1.battleZone.find(card => card.instanceId === attacker.instanceId);
|
|
68040
|
+
if (!liveAttacker || !liveAttacker.canAttack)
|
|
68041
|
+
return game;
|
|
68042
|
+
next.players.P2.leaderHp = Math.max(0, next.players.P2.leaderHp - liveAttacker.attack);
|
|
68043
|
+
liveAttacker.canAttack = false;
|
|
68044
|
+
next.revision++;
|
|
68045
|
+
next.log = [`${liveAttacker.name} ataca al lider rival.`, ...next.log].slice(0, 4);
|
|
68046
|
+
return next;
|
|
68047
|
+
});
|
|
68048
|
+
this.selectedAttacker.set(null);
|
|
68049
|
+
}
|
|
68050
|
+
attackCharacter(target) {
|
|
68051
|
+
const attacker = this.selectedAttacker();
|
|
68052
|
+
if (!attacker)
|
|
68053
|
+
return;
|
|
68054
|
+
this.game.update(game => {
|
|
68055
|
+
const next = structuredClone(game);
|
|
68056
|
+
const liveAttacker = next.players.P1.battleZone.find(card => card.instanceId === attacker.instanceId);
|
|
68057
|
+
const liveTarget = next.players.P2.battleZone.find(card => card.instanceId === target.instanceId);
|
|
68058
|
+
if (!liveAttacker || !liveTarget || !liveAttacker.canAttack)
|
|
68059
|
+
return game;
|
|
68060
|
+
liveTarget.currentHp -= liveAttacker.attack;
|
|
68061
|
+
liveAttacker.currentHp -= liveTarget.attack;
|
|
68062
|
+
liveAttacker.canAttack = false;
|
|
68063
|
+
this.cleanupDestroyed(next.players.P1, next);
|
|
68064
|
+
this.cleanupDestroyed(next.players.P2, next);
|
|
68065
|
+
next.revision++;
|
|
68066
|
+
next.log = [`${liveAttacker.name} combate contra ${liveTarget.name}.`, ...next.log].slice(0, 4);
|
|
68067
|
+
return next;
|
|
68068
|
+
});
|
|
68069
|
+
this.selectedAttacker.set(null);
|
|
68070
|
+
}
|
|
68071
|
+
endTurn() {
|
|
68072
|
+
this.selectedHandCard.set(null);
|
|
68073
|
+
this.selectedAttacker.set(null);
|
|
68074
|
+
this.game.update(game => {
|
|
68075
|
+
const next = structuredClone(game);
|
|
68076
|
+
next.turnOwner = next.turnOwner === 'P1' ? 'P2' : 'P1';
|
|
68077
|
+
next.turnCount++;
|
|
68078
|
+
const current = next.players[next.turnOwner];
|
|
68079
|
+
current.maxOfferings = Math.min(10, current.maxOfferings + 1);
|
|
68080
|
+
current.offeringPoints = current.maxOfferings;
|
|
68081
|
+
current.battleZone = current.battleZone.map(card => ({ ...card, canAttack: true }));
|
|
68082
|
+
next.revision++;
|
|
68083
|
+
next.log = [`Turno de ${current.displayName}.`, ...next.log].slice(0, 4);
|
|
68084
|
+
return next;
|
|
68085
|
+
});
|
|
68086
|
+
}
|
|
68087
|
+
resetMock() {
|
|
68088
|
+
this.game.set(structuredClone(STARTING_GAME));
|
|
68089
|
+
this.selectedHandCard.set(null);
|
|
68090
|
+
this.selectedAttacker.set(null);
|
|
68091
|
+
}
|
|
68092
|
+
historyNames() {
|
|
68093
|
+
return this.game()
|
|
68094
|
+
.historyZone.map(cardId => this.cardDefinition(cardId).name)
|
|
68095
|
+
.join(', ');
|
|
68096
|
+
}
|
|
68097
|
+
cleanupDestroyed(player, game) {
|
|
68098
|
+
const destroyed = player.battleZone.filter(card => card.currentHp <= 0);
|
|
68099
|
+
if (!destroyed.length)
|
|
68100
|
+
return;
|
|
68101
|
+
game.historyZone.push(...destroyed.map(card => card.cardId));
|
|
68102
|
+
player.battleZone = player.battleZone.filter(card => card.currentHp > 0);
|
|
68103
|
+
}
|
|
68104
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChristianityGameComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
68105
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChristianityGameComponent, isStandalone: true, selector: "val-christianity-game", ngImport: i0, template: `
|
|
68106
|
+
<main class="christianity-shell">
|
|
68107
|
+
<section class="christianity-header">
|
|
68108
|
+
<div>
|
|
68109
|
+
<p>{{ t('christianityEyebrow') }}</p>
|
|
68110
|
+
<h1>{{ t('christianityTitle') }}</h1>
|
|
68111
|
+
</div>
|
|
68112
|
+
<div class="christianity-turn" [class.is-own-turn]="isOwnTurn()">
|
|
68113
|
+
<span>{{ t('christianityTurn') }}</span>
|
|
68114
|
+
<strong>{{ currentPlayer().displayName }}</strong>
|
|
68115
|
+
</div>
|
|
68116
|
+
</section>
|
|
68117
|
+
|
|
68118
|
+
<section class="christianity-table" [attr.aria-label]="t('christianityTable')">
|
|
68119
|
+
<section class="christianity-player christianity-player--opponent">
|
|
68120
|
+
<div class="christianity-player__summary">
|
|
68121
|
+
<div class="christianity-leader">
|
|
68122
|
+
<span>{{ opponent().leaderName }}</span>
|
|
68123
|
+
<strong>{{ opponent().leaderHp }}/{{ opponent().leaderMaxHp }}</strong>
|
|
68124
|
+
</div>
|
|
68125
|
+
<div class="christianity-offerings">
|
|
68126
|
+
<span>{{ t('christianityOfferings') }}</span>
|
|
68127
|
+
<strong>{{ opponent().offeringPoints }}/{{ opponent().maxOfferings }}</strong>
|
|
68128
|
+
<div class="christianity-offering-cards" aria-hidden="true">
|
|
68129
|
+
@for (_ of offeringCards(opponent()); track $index) {
|
|
68130
|
+
<i [class.is-used]="$index >= opponent().offeringPoints"></i>
|
|
68131
|
+
}
|
|
68132
|
+
</div>
|
|
68133
|
+
</div>
|
|
68134
|
+
<div class="christianity-hidden-hand">
|
|
68135
|
+
<span>{{ t('christianityHand') }}</span>
|
|
68136
|
+
<strong>{{ opponentHandCount() }}</strong>
|
|
68137
|
+
</div>
|
|
68138
|
+
</div>
|
|
68139
|
+
<div class="christianity-battle-zone" [attr.aria-label]="t('christianityOpponentBattle')">
|
|
68140
|
+
@for (slot of battleSlots('P2'); track slot.trackId) {
|
|
68141
|
+
@if (slot.card) {
|
|
68142
|
+
<button
|
|
68143
|
+
type="button"
|
|
68144
|
+
class="christianity-card christianity-card--battle"
|
|
68145
|
+
[class.is-target]="selectedAttacker()"
|
|
68146
|
+
(click)="attackCharacter(slot.card)"
|
|
68147
|
+
>
|
|
68148
|
+
<span>{{ slot.card.name }}</span>
|
|
68149
|
+
<strong>{{ slot.card.attack }} / {{ slot.card.currentHp }}</strong>
|
|
68150
|
+
</button>
|
|
68151
|
+
} @else {
|
|
68152
|
+
<span class="christianity-slot"></span>
|
|
68153
|
+
}
|
|
68154
|
+
}
|
|
68155
|
+
</div>
|
|
68156
|
+
</section>
|
|
68157
|
+
|
|
68158
|
+
<section class="christianity-shared-zone" [attr.aria-label]="t('christianitySharedZone')">
|
|
68159
|
+
<button type="button" class="christianity-pile" (click)="showHistory.set(!showHistory())">
|
|
68160
|
+
<span>{{ t('christianityHistory') }}</span>
|
|
68161
|
+
<strong>{{ game().historyZone.length }}</strong>
|
|
68162
|
+
</button>
|
|
68163
|
+
<div class="christianity-deck" aria-live="polite">
|
|
68164
|
+
<span>{{ t('christianityDeck') }}</span>
|
|
68165
|
+
<strong>{{ game().sharedDeckCount }}</strong>
|
|
68166
|
+
</div>
|
|
68167
|
+
<div class="christianity-place">
|
|
68168
|
+
<span>{{ t('christianityPlace') }}</span>
|
|
68169
|
+
<strong>{{ t('christianityEmpty') }}</strong>
|
|
68170
|
+
</div>
|
|
68171
|
+
</section>
|
|
68172
|
+
|
|
68173
|
+
<section class="christianity-player">
|
|
68174
|
+
<div class="christianity-battle-zone" [attr.aria-label]="t('christianityYourBattle')">
|
|
68175
|
+
@for (slot of battleSlots('P1'); track slot.trackId) {
|
|
68176
|
+
@if (slot.card) {
|
|
68177
|
+
<button
|
|
68178
|
+
type="button"
|
|
68179
|
+
class="christianity-card christianity-card--battle"
|
|
68180
|
+
[class.is-selected]="selectedAttacker()?.instanceId === slot.card.instanceId"
|
|
68181
|
+
[class.is-exhausted]="!slot.card.canAttack"
|
|
68182
|
+
(click)="selectAttacker(slot.card)"
|
|
68183
|
+
>
|
|
68184
|
+
<span>{{ slot.card.name }}</span>
|
|
68185
|
+
<strong>{{ slot.card.attack }} / {{ slot.card.currentHp }}</strong>
|
|
68186
|
+
</button>
|
|
68187
|
+
} @else {
|
|
68188
|
+
<span class="christianity-slot"></span>
|
|
68189
|
+
}
|
|
68190
|
+
}
|
|
68191
|
+
</div>
|
|
68192
|
+
<div class="christianity-player__summary">
|
|
68193
|
+
<div class="christianity-offerings">
|
|
68194
|
+
<span>{{ t('christianityOfferings') }}</span>
|
|
68195
|
+
<strong>{{ player().offeringPoints }}/{{ player().maxOfferings }}</strong>
|
|
68196
|
+
<div class="christianity-offering-cards" aria-hidden="true">
|
|
68197
|
+
@for (_ of offeringCards(player()); track $index) {
|
|
68198
|
+
<i [class.is-used]="$index >= player().offeringPoints"></i>
|
|
68199
|
+
}
|
|
68200
|
+
</div>
|
|
68201
|
+
</div>
|
|
68202
|
+
<button type="button" class="christianity-leader christianity-leader--target" (click)="attackLeader()">
|
|
68203
|
+
<span>{{ player().leaderName }}</span>
|
|
68204
|
+
<strong>{{ player().leaderHp }}/{{ player().leaderMaxHp }}</strong>
|
|
68205
|
+
</button>
|
|
68206
|
+
<button type="button" class="christianity-end-turn" (click)="endTurn()">
|
|
68207
|
+
{{ t('christianityEndTurn') }}
|
|
68208
|
+
</button>
|
|
68209
|
+
</div>
|
|
68210
|
+
</section>
|
|
68211
|
+
</section>
|
|
68212
|
+
|
|
68213
|
+
<section class="christianity-hand" [attr.aria-label]="t('christianityYourHand')">
|
|
68214
|
+
@for (cardId of player().hand ?? []; track cardId + $index) {
|
|
68215
|
+
@let card = cardDefinition(cardId);
|
|
68216
|
+
<button
|
|
68217
|
+
type="button"
|
|
68218
|
+
class="christianity-card christianity-card--hand"
|
|
68219
|
+
[class.is-selected]="selectedHandCard() === cardId"
|
|
68220
|
+
[class.is-disabled]="!canPlay(card)"
|
|
68221
|
+
(click)="selectHandCard(cardId)"
|
|
68222
|
+
>
|
|
68223
|
+
<small>{{ t('christianityCost') }} {{ card.cost }}</small>
|
|
68224
|
+
<span>{{ card.name }}</span>
|
|
68225
|
+
<strong>{{ card.attack }} / {{ card.life }}</strong>
|
|
68226
|
+
</button>
|
|
68227
|
+
}
|
|
68228
|
+
</section>
|
|
68229
|
+
|
|
68230
|
+
<section class="christianity-actions" aria-live="polite">
|
|
68231
|
+
<p>{{ statusText() }}</p>
|
|
68232
|
+
<div>
|
|
68233
|
+
<button type="button" [disabled]="!selectedHandCard() || !canPlaySelected()" (click)="playSelectedCard()">
|
|
68234
|
+
{{ t('christianityPlayCard') }}
|
|
68235
|
+
</button>
|
|
68236
|
+
<button type="button" (click)="resetMock()">
|
|
68237
|
+
{{ t('christianityReset') }}
|
|
68238
|
+
</button>
|
|
68239
|
+
</div>
|
|
68240
|
+
</section>
|
|
68241
|
+
|
|
68242
|
+
@if (showHistory()) {
|
|
68243
|
+
<section class="christianity-history">
|
|
68244
|
+
<h2>{{ t('christianityHistory') }}</h2>
|
|
68245
|
+
@if (game().historyZone.length) {
|
|
68246
|
+
<p>{{ historyNames() }}</p>
|
|
68247
|
+
} @else {
|
|
68248
|
+
<p>{{ t('christianityHistoryEmpty') }}</p>
|
|
68249
|
+
}
|
|
68250
|
+
</section>
|
|
68251
|
+
}
|
|
68252
|
+
</main>
|
|
68253
|
+
`, isInline: true, styles: [":host{display:block;color:var(--val-text-color, #1f2933)}.christianity-shell{display:grid;gap:.875rem;padding:.75rem .25rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#f6f8fb}.christianity-header,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-table{display:grid;gap:.75rem;padding:.55rem .35rem;border-radius:.75rem;background:#dceafb}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{display:grid;grid-template-columns:repeat(5,minmax(4.2rem,1fr));gap:.5rem;min-height:7rem;padding:.55rem .4rem;border-radius:.75rem;background:#ffffffc2}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:#ffffffe6}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:#2563eb;box-shadow:0 0 0 .2rem #2563eb29}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{min-height:5.8rem;border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff73}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{align-items:flex-start;padding:.75rem;border-radius:.75rem;background:#fff}.christianity-actions div{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn{background:#102a43;color:#fff}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid rgba(37,99,235,.24);outline-offset:.125rem}@media (max-width: 720px){.christianity-shell{padding:.55rem 0;border-right:0;border-left:0;border-radius:0}.christianity-header,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{align-items:stretch;flex-direction:column}.christianity-battle-zone{grid-template-columns:repeat(5,minmax(3.8rem,1fr));overflow-x:auto}}\n"] }); }
|
|
68254
|
+
}
|
|
68255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChristianityGameComponent, decorators: [{
|
|
68256
|
+
type: Component,
|
|
68257
|
+
args: [{ selector: 'val-christianity-game', standalone: true, template: `
|
|
68258
|
+
<main class="christianity-shell">
|
|
68259
|
+
<section class="christianity-header">
|
|
68260
|
+
<div>
|
|
68261
|
+
<p>{{ t('christianityEyebrow') }}</p>
|
|
68262
|
+
<h1>{{ t('christianityTitle') }}</h1>
|
|
68263
|
+
</div>
|
|
68264
|
+
<div class="christianity-turn" [class.is-own-turn]="isOwnTurn()">
|
|
68265
|
+
<span>{{ t('christianityTurn') }}</span>
|
|
68266
|
+
<strong>{{ currentPlayer().displayName }}</strong>
|
|
68267
|
+
</div>
|
|
68268
|
+
</section>
|
|
68269
|
+
|
|
68270
|
+
<section class="christianity-table" [attr.aria-label]="t('christianityTable')">
|
|
68271
|
+
<section class="christianity-player christianity-player--opponent">
|
|
68272
|
+
<div class="christianity-player__summary">
|
|
68273
|
+
<div class="christianity-leader">
|
|
68274
|
+
<span>{{ opponent().leaderName }}</span>
|
|
68275
|
+
<strong>{{ opponent().leaderHp }}/{{ opponent().leaderMaxHp }}</strong>
|
|
68276
|
+
</div>
|
|
68277
|
+
<div class="christianity-offerings">
|
|
68278
|
+
<span>{{ t('christianityOfferings') }}</span>
|
|
68279
|
+
<strong>{{ opponent().offeringPoints }}/{{ opponent().maxOfferings }}</strong>
|
|
68280
|
+
<div class="christianity-offering-cards" aria-hidden="true">
|
|
68281
|
+
@for (_ of offeringCards(opponent()); track $index) {
|
|
68282
|
+
<i [class.is-used]="$index >= opponent().offeringPoints"></i>
|
|
68283
|
+
}
|
|
68284
|
+
</div>
|
|
68285
|
+
</div>
|
|
68286
|
+
<div class="christianity-hidden-hand">
|
|
68287
|
+
<span>{{ t('christianityHand') }}</span>
|
|
68288
|
+
<strong>{{ opponentHandCount() }}</strong>
|
|
68289
|
+
</div>
|
|
68290
|
+
</div>
|
|
68291
|
+
<div class="christianity-battle-zone" [attr.aria-label]="t('christianityOpponentBattle')">
|
|
68292
|
+
@for (slot of battleSlots('P2'); track slot.trackId) {
|
|
68293
|
+
@if (slot.card) {
|
|
68294
|
+
<button
|
|
68295
|
+
type="button"
|
|
68296
|
+
class="christianity-card christianity-card--battle"
|
|
68297
|
+
[class.is-target]="selectedAttacker()"
|
|
68298
|
+
(click)="attackCharacter(slot.card)"
|
|
68299
|
+
>
|
|
68300
|
+
<span>{{ slot.card.name }}</span>
|
|
68301
|
+
<strong>{{ slot.card.attack }} / {{ slot.card.currentHp }}</strong>
|
|
68302
|
+
</button>
|
|
68303
|
+
} @else {
|
|
68304
|
+
<span class="christianity-slot"></span>
|
|
68305
|
+
}
|
|
68306
|
+
}
|
|
68307
|
+
</div>
|
|
68308
|
+
</section>
|
|
68309
|
+
|
|
68310
|
+
<section class="christianity-shared-zone" [attr.aria-label]="t('christianitySharedZone')">
|
|
68311
|
+
<button type="button" class="christianity-pile" (click)="showHistory.set(!showHistory())">
|
|
68312
|
+
<span>{{ t('christianityHistory') }}</span>
|
|
68313
|
+
<strong>{{ game().historyZone.length }}</strong>
|
|
68314
|
+
</button>
|
|
68315
|
+
<div class="christianity-deck" aria-live="polite">
|
|
68316
|
+
<span>{{ t('christianityDeck') }}</span>
|
|
68317
|
+
<strong>{{ game().sharedDeckCount }}</strong>
|
|
68318
|
+
</div>
|
|
68319
|
+
<div class="christianity-place">
|
|
68320
|
+
<span>{{ t('christianityPlace') }}</span>
|
|
68321
|
+
<strong>{{ t('christianityEmpty') }}</strong>
|
|
68322
|
+
</div>
|
|
68323
|
+
</section>
|
|
68324
|
+
|
|
68325
|
+
<section class="christianity-player">
|
|
68326
|
+
<div class="christianity-battle-zone" [attr.aria-label]="t('christianityYourBattle')">
|
|
68327
|
+
@for (slot of battleSlots('P1'); track slot.trackId) {
|
|
68328
|
+
@if (slot.card) {
|
|
68329
|
+
<button
|
|
68330
|
+
type="button"
|
|
68331
|
+
class="christianity-card christianity-card--battle"
|
|
68332
|
+
[class.is-selected]="selectedAttacker()?.instanceId === slot.card.instanceId"
|
|
68333
|
+
[class.is-exhausted]="!slot.card.canAttack"
|
|
68334
|
+
(click)="selectAttacker(slot.card)"
|
|
68335
|
+
>
|
|
68336
|
+
<span>{{ slot.card.name }}</span>
|
|
68337
|
+
<strong>{{ slot.card.attack }} / {{ slot.card.currentHp }}</strong>
|
|
68338
|
+
</button>
|
|
68339
|
+
} @else {
|
|
68340
|
+
<span class="christianity-slot"></span>
|
|
68341
|
+
}
|
|
68342
|
+
}
|
|
68343
|
+
</div>
|
|
68344
|
+
<div class="christianity-player__summary">
|
|
68345
|
+
<div class="christianity-offerings">
|
|
68346
|
+
<span>{{ t('christianityOfferings') }}</span>
|
|
68347
|
+
<strong>{{ player().offeringPoints }}/{{ player().maxOfferings }}</strong>
|
|
68348
|
+
<div class="christianity-offering-cards" aria-hidden="true">
|
|
68349
|
+
@for (_ of offeringCards(player()); track $index) {
|
|
68350
|
+
<i [class.is-used]="$index >= player().offeringPoints"></i>
|
|
68351
|
+
}
|
|
68352
|
+
</div>
|
|
68353
|
+
</div>
|
|
68354
|
+
<button type="button" class="christianity-leader christianity-leader--target" (click)="attackLeader()">
|
|
68355
|
+
<span>{{ player().leaderName }}</span>
|
|
68356
|
+
<strong>{{ player().leaderHp }}/{{ player().leaderMaxHp }}</strong>
|
|
68357
|
+
</button>
|
|
68358
|
+
<button type="button" class="christianity-end-turn" (click)="endTurn()">
|
|
68359
|
+
{{ t('christianityEndTurn') }}
|
|
68360
|
+
</button>
|
|
68361
|
+
</div>
|
|
68362
|
+
</section>
|
|
68363
|
+
</section>
|
|
68364
|
+
|
|
68365
|
+
<section class="christianity-hand" [attr.aria-label]="t('christianityYourHand')">
|
|
68366
|
+
@for (cardId of player().hand ?? []; track cardId + $index) {
|
|
68367
|
+
@let card = cardDefinition(cardId);
|
|
68368
|
+
<button
|
|
68369
|
+
type="button"
|
|
68370
|
+
class="christianity-card christianity-card--hand"
|
|
68371
|
+
[class.is-selected]="selectedHandCard() === cardId"
|
|
68372
|
+
[class.is-disabled]="!canPlay(card)"
|
|
68373
|
+
(click)="selectHandCard(cardId)"
|
|
68374
|
+
>
|
|
68375
|
+
<small>{{ t('christianityCost') }} {{ card.cost }}</small>
|
|
68376
|
+
<span>{{ card.name }}</span>
|
|
68377
|
+
<strong>{{ card.attack }} / {{ card.life }}</strong>
|
|
68378
|
+
</button>
|
|
68379
|
+
}
|
|
68380
|
+
</section>
|
|
68381
|
+
|
|
68382
|
+
<section class="christianity-actions" aria-live="polite">
|
|
68383
|
+
<p>{{ statusText() }}</p>
|
|
68384
|
+
<div>
|
|
68385
|
+
<button type="button" [disabled]="!selectedHandCard() || !canPlaySelected()" (click)="playSelectedCard()">
|
|
68386
|
+
{{ t('christianityPlayCard') }}
|
|
68387
|
+
</button>
|
|
68388
|
+
<button type="button" (click)="resetMock()">
|
|
68389
|
+
{{ t('christianityReset') }}
|
|
68390
|
+
</button>
|
|
68391
|
+
</div>
|
|
68392
|
+
</section>
|
|
68393
|
+
|
|
68394
|
+
@if (showHistory()) {
|
|
68395
|
+
<section class="christianity-history">
|
|
68396
|
+
<h2>{{ t('christianityHistory') }}</h2>
|
|
68397
|
+
@if (game().historyZone.length) {
|
|
68398
|
+
<p>{{ historyNames() }}</p>
|
|
68399
|
+
} @else {
|
|
68400
|
+
<p>{{ t('christianityHistoryEmpty') }}</p>
|
|
68401
|
+
}
|
|
68402
|
+
</section>
|
|
68403
|
+
}
|
|
68404
|
+
</main>
|
|
68405
|
+
`, styles: [":host{display:block;color:var(--val-text-color, #1f2933)}.christianity-shell{display:grid;gap:.875rem;padding:.75rem .25rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#f6f8fb}.christianity-header,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-table{display:grid;gap:.75rem;padding:.55rem .35rem;border-radius:.75rem;background:#dceafb}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{display:grid;grid-template-columns:repeat(5,minmax(4.2rem,1fr));gap:.5rem;min-height:7rem;padding:.55rem .4rem;border-radius:.75rem;background:#ffffffc2}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:#ffffffe6}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:#2563eb;box-shadow:0 0 0 .2rem #2563eb29}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{min-height:5.8rem;border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff73}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{align-items:flex-start;padding:.75rem;border-radius:.75rem;background:#fff}.christianity-actions div{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn{background:#102a43;color:#fff}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid rgba(37,99,235,.24);outline-offset:.125rem}@media (max-width: 720px){.christianity-shell{padding:.55rem 0;border-right:0;border-left:0;border-radius:0}.christianity-header,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{align-items:stretch;flex-direction:column}.christianity-battle-zone{grid-template-columns:repeat(5,minmax(3.8rem,1fr));overflow-x:auto}}\n"] }]
|
|
68406
|
+
}], ctorParameters: () => [] });
|
|
68407
|
+
|
|
67825
68408
|
addIcons({ refreshOutline, sparklesOutline, trophyOutline });
|
|
67826
68409
|
const BUBBLE_COLORS = {
|
|
67827
68410
|
rose: '#ff4f9f',
|
|
@@ -67878,6 +68461,7 @@ class BubbleBlitzGameComponent {
|
|
|
67878
68461
|
this.animating = signal(false);
|
|
67879
68462
|
this.leaderboard = signal(this.readLeaderboard());
|
|
67880
68463
|
this.confirmAction = signal(undefined);
|
|
68464
|
+
this.confirmedAction = signal(undefined);
|
|
67881
68465
|
this.config = computed(() => MODE_CONFIG[this.mode()]);
|
|
67882
68466
|
this.feverReady = computed(() => this.fever() >= this.config().feverTarget);
|
|
67883
68467
|
this.feverProgress = computed(() => Math.min(100, Math.round((this.fever() / this.config().feverTarget) * 100)));
|
|
@@ -68057,13 +68641,12 @@ class BubbleBlitzGameComponent {
|
|
|
68057
68641
|
closeConfirmModal() {
|
|
68058
68642
|
this.confirmAction.set(undefined);
|
|
68059
68643
|
}
|
|
68060
|
-
|
|
68061
|
-
if (token !== 'confirm') {
|
|
68062
|
-
this.closeConfirmModal();
|
|
68063
|
-
return;
|
|
68064
|
-
}
|
|
68065
|
-
const action = this.confirmAction();
|
|
68644
|
+
handleConfirmModalDismissed() {
|
|
68066
68645
|
this.confirmAction.set(undefined);
|
|
68646
|
+
const action = this.confirmedAction();
|
|
68647
|
+
this.confirmedAction.set(undefined);
|
|
68648
|
+
if (!action)
|
|
68649
|
+
return;
|
|
68067
68650
|
if (action === 'restart') {
|
|
68068
68651
|
this.start();
|
|
68069
68652
|
return;
|
|
@@ -68076,6 +68659,15 @@ class BubbleBlitzGameComponent {
|
|
|
68076
68659
|
this.resetToGamesMenu();
|
|
68077
68660
|
}
|
|
68078
68661
|
}
|
|
68662
|
+
confirmPendingAction(token) {
|
|
68663
|
+
if (token !== 'confirm') {
|
|
68664
|
+
this.closeConfirmModal();
|
|
68665
|
+
return;
|
|
68666
|
+
}
|
|
68667
|
+
const action = this.confirmAction();
|
|
68668
|
+
this.confirmedAction.set(action);
|
|
68669
|
+
this.confirmAction.set(undefined);
|
|
68670
|
+
}
|
|
68079
68671
|
startTimer() {
|
|
68080
68672
|
this.stopTimer();
|
|
68081
68673
|
this.timer = window.setInterval(() => {
|
|
@@ -68379,7 +68971,7 @@ class BubbleBlitzGameComponent {
|
|
|
68379
68971
|
<ion-modal
|
|
68380
68972
|
[isOpen]="!!confirmAction()"
|
|
68381
68973
|
cssClass="val-modal-adaptive"
|
|
68382
|
-
(didDismiss)="
|
|
68974
|
+
(didDismiss)="handleConfirmModalDismissed()"
|
|
68383
68975
|
>
|
|
68384
68976
|
<ng-template>
|
|
68385
68977
|
<val-modal-layout
|
|
@@ -68529,7 +69121,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
68529
69121
|
<ion-modal
|
|
68530
69122
|
[isOpen]="!!confirmAction()"
|
|
68531
69123
|
cssClass="val-modal-adaptive"
|
|
68532
|
-
(didDismiss)="
|
|
69124
|
+
(didDismiss)="handleConfirmModalDismissed()"
|
|
68533
69125
|
>
|
|
68534
69126
|
<ng-template>
|
|
68535
69127
|
<val-modal-layout
|
|
@@ -68593,6 +69185,7 @@ class MemoryGameComponent {
|
|
|
68593
69185
|
this.lockBoard = signal(false);
|
|
68594
69186
|
this.leaderboard = signal(this.readLeaderboard());
|
|
68595
69187
|
this.confirmAction = signal(undefined);
|
|
69188
|
+
this.confirmedAction = signal(undefined);
|
|
68596
69189
|
this.profileConfig = computed(() => PROFILE_CONFIG[this.profile()]);
|
|
68597
69190
|
this.pairCount = computed(() => this.profileConfig().pairs);
|
|
68598
69191
|
this.boardClass = computed(() => `memory-board ${this.profileConfig().boardClass}`);
|
|
@@ -68730,13 +69323,12 @@ class MemoryGameComponent {
|
|
|
68730
69323
|
closeConfirmModal() {
|
|
68731
69324
|
this.confirmAction.set(undefined);
|
|
68732
69325
|
}
|
|
68733
|
-
|
|
68734
|
-
if (token !== 'confirm') {
|
|
68735
|
-
this.closeConfirmModal();
|
|
68736
|
-
return;
|
|
68737
|
-
}
|
|
68738
|
-
const action = this.confirmAction();
|
|
69326
|
+
handleConfirmModalDismissed() {
|
|
68739
69327
|
this.confirmAction.set(undefined);
|
|
69328
|
+
const action = this.confirmedAction();
|
|
69329
|
+
this.confirmedAction.set(undefined);
|
|
69330
|
+
if (!action)
|
|
69331
|
+
return;
|
|
68740
69332
|
if (action === 'restart') {
|
|
68741
69333
|
this.start();
|
|
68742
69334
|
return;
|
|
@@ -68749,6 +69341,15 @@ class MemoryGameComponent {
|
|
|
68749
69341
|
this.resetToGamesMenu();
|
|
68750
69342
|
}
|
|
68751
69343
|
}
|
|
69344
|
+
confirmPendingAction(token) {
|
|
69345
|
+
if (token !== 'confirm') {
|
|
69346
|
+
this.closeConfirmModal();
|
|
69347
|
+
return;
|
|
69348
|
+
}
|
|
69349
|
+
const action = this.confirmAction();
|
|
69350
|
+
this.confirmedAction.set(action);
|
|
69351
|
+
this.confirmAction.set(undefined);
|
|
69352
|
+
}
|
|
68752
69353
|
flip(card) {
|
|
68753
69354
|
if (this.lockBoard() || card.flipped || card.matched || this.won() || this.failed())
|
|
68754
69355
|
return;
|
|
@@ -69063,7 +69664,7 @@ class MemoryGameComponent {
|
|
|
69063
69664
|
<ion-modal
|
|
69064
69665
|
[isOpen]="!!confirmAction()"
|
|
69065
69666
|
cssClass="val-modal-adaptive"
|
|
69066
|
-
(didDismiss)="
|
|
69667
|
+
(didDismiss)="handleConfirmModalDismissed()"
|
|
69067
69668
|
>
|
|
69068
69669
|
<ng-template>
|
|
69069
69670
|
<val-modal-layout
|
|
@@ -69221,7 +69822,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
69221
69822
|
<ion-modal
|
|
69222
69823
|
[isOpen]="!!confirmAction()"
|
|
69223
69824
|
cssClass="val-modal-adaptive"
|
|
69224
|
-
(didDismiss)="
|
|
69825
|
+
(didDismiss)="handleConfirmModalDismissed()"
|
|
69225
69826
|
>
|
|
69226
69827
|
<ng-template>
|
|
69227
69828
|
<val-modal-layout
|
|
@@ -69567,6 +70168,7 @@ class SimonGameComponent {
|
|
|
69567
70168
|
this.activePad = signal(undefined);
|
|
69568
70169
|
this.leaderboard = signal(this.readLeaderboard());
|
|
69569
70170
|
this.confirmAction = signal(undefined);
|
|
70171
|
+
this.confirmedAction = signal(undefined);
|
|
69570
70172
|
this.modeConfig = computed(() => SIMON_MODES[this.mode()]);
|
|
69571
70173
|
this.bestRound = computed(() => this.modeLeaderboard()[0]?.round ?? 0);
|
|
69572
70174
|
this.modeLeaderboard = computed(() => this.leaderboard()
|
|
@@ -69666,13 +70268,12 @@ class SimonGameComponent {
|
|
|
69666
70268
|
closeConfirmModal() {
|
|
69667
70269
|
this.confirmAction.set(undefined);
|
|
69668
70270
|
}
|
|
69669
|
-
|
|
69670
|
-
if (token !== 'confirm') {
|
|
69671
|
-
this.closeConfirmModal();
|
|
69672
|
-
return;
|
|
69673
|
-
}
|
|
69674
|
-
const action = this.confirmAction();
|
|
70271
|
+
handleConfirmModalDismissed() {
|
|
69675
70272
|
this.confirmAction.set(undefined);
|
|
70273
|
+
const action = this.confirmedAction();
|
|
70274
|
+
this.confirmedAction.set(undefined);
|
|
70275
|
+
if (!action)
|
|
70276
|
+
return;
|
|
69676
70277
|
if (action === 'restart') {
|
|
69677
70278
|
this.start();
|
|
69678
70279
|
return;
|
|
@@ -69685,6 +70286,15 @@ class SimonGameComponent {
|
|
|
69685
70286
|
this.resetToGamesMenu();
|
|
69686
70287
|
}
|
|
69687
70288
|
}
|
|
70289
|
+
confirmPendingAction(token) {
|
|
70290
|
+
if (token !== 'confirm') {
|
|
70291
|
+
this.closeConfirmModal();
|
|
70292
|
+
return;
|
|
70293
|
+
}
|
|
70294
|
+
const action = this.confirmAction();
|
|
70295
|
+
this.confirmedAction.set(action);
|
|
70296
|
+
this.confirmAction.set(undefined);
|
|
70297
|
+
}
|
|
69688
70298
|
tap(pad) {
|
|
69689
70299
|
if (this.phase() !== 'waiting' || !this.acceptingInput)
|
|
69690
70300
|
return;
|
|
@@ -69928,7 +70538,7 @@ class SimonGameComponent {
|
|
|
69928
70538
|
<ion-modal
|
|
69929
70539
|
[isOpen]="!!confirmAction()"
|
|
69930
70540
|
cssClass="val-modal-adaptive"
|
|
69931
|
-
(didDismiss)="
|
|
70541
|
+
(didDismiss)="handleConfirmModalDismissed()"
|
|
69932
70542
|
>
|
|
69933
70543
|
<ng-template>
|
|
69934
70544
|
<val-modal-layout
|
|
@@ -70058,7 +70668,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
70058
70668
|
<ion-modal
|
|
70059
70669
|
[isOpen]="!!confirmAction()"
|
|
70060
70670
|
cssClass="val-modal-adaptive"
|
|
70061
|
-
(didDismiss)="
|
|
70671
|
+
(didDismiss)="handleConfirmModalDismissed()"
|
|
70062
70672
|
>
|
|
70063
70673
|
<ng-template>
|
|
70064
70674
|
<val-modal-layout
|
|
@@ -85374,5 +85984,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
85374
85984
|
* Generated bundle index. Do not edit.
|
|
85375
85985
|
*/
|
|
85376
85986
|
|
|
85377
|
-
export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, APP_VERSION_PLATFORM_PLUGIN, APP_VERSION_REMOTE_PLUGIN, ARTICLE_CARD_DEFAULTS, ARTICLE_SPACING, ARTICLE_STRIP_DEFAULTS, AUTH_CTA_DEFAULTS, AVATAR_UPLOAD_DEFAULTS, AboutViewComponent, AccordionComponent, AccountViewComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, ApiKeyCreateModalComponent, ApiKeyService, ApiKeysModalComponent, ApiKeysViewComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleCardComponent, ArticleComponent, ArticleStripComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthCtaComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, BubbleBlitzGameComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHESSIMALS_BOT_PROFILES, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CORNER_KEYS, CTA_CARD_DEFAULTS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, ChatComposerComponent, ChatInputComponent, ChatWindowComponent, CheckInputComponent, CheckboxRadioInputComponent, ChessimalsGameComponent, ChessimalsOnlineService, ChipGroupComponent, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentLoaderComponent, ContentReactionComponent, ContentReactionModalComponent, ContentService, ContentTransformer, ConversationListItemComponent, ConversationService, CookieBannerComponent, CookieSettingsComponent, CountdownComponent, CreateOrgModalComponent, CtaCardComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_BUTTON_PRESETS, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_LOGIN_LOGO, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_POST_UPDATE_GRACE_MS, DEFAULT_PRESETS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DatasetPaginationService, DateInputComponent, DatePickerComponent, DateRangeInputComponent, DebugConsoleComponent, DeleteAccountModalComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EditOrgModalComponent, EmptyStateComponent, EntityCardComponent, EntityFeedService, ExpandableTextComponent, ExternalBrowserService, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FieldListComponent, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FontSizeOption, FontSizeSelectorComponent, FontSizeService, FooterComponent, FooterLinksComponent, FormComponent, FormFieldComponent, FormSchemaBuilderService, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HapticsService, HasPermissionDirective, HeaderActionsService, HeaderComponent, HintComponent, HorizontalScrollComponent, HrefComponent, HtmlViewerModalComponent, I18nService, IMAGE_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, IONIC_COLORS$5 as IONIC_COLORS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, InviteMemberModalComponent, ItemListComponent, KNOWN_ROUTES, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGGED_IN_HINT_COOKIE, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LanguageSelectorV2Component, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LiveReadFallbackService, LoadMoreComponent, LoadingDirective, LocalStorageService, LocaleService, LoginAttemptModalComponent, LoginComponent, MEDIA_OBJECT_DEFAULTS, MEMBER_CARD_DEFAULTS, META_SCHEMA_VERSION, METRIC_CARD_DEFAULTS, MINI_GAME_PLAYER_AVATARS, MINI_GAME_PLAYER_COLORS, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MediaObjectComponent, MediaViewerModalComponent, MemberCardComponent, MemberDetailModalComponent, MemberImportModalComponent, MemoryGameComponent, MenuComponent, MessageBubbleComponent, MessagingService, MetaService, MetricCardComponent, MfaModalComponent, MiniGamePlayerProfileService, MiniGamesMenuComponent, ModalLayoutComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationPreferencesViewComponent, NotificationsService, NotificationsViewComponent, NumberFromToComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OperationReferenceComponent, OptionCardsComponent, OrgInfoSheetComponent, OrgService, OrgSwitchService, OrganizationViewComponent, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, POST_UPDATE_TS_KEY, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PdfService, PermissionCatalogService, PermissionSelectorComponent, PermissionsModalComponent, PermissionsViewComponent, PhoneDisplayComponent, PhoneFormatService, PhoneInputComponent, PickerV2Component, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PreferencesViewComponent, PresetService, PriceTagComponent, PricingTableComponent, ProcessLinksPipe, ProfileContentComponent, ProfileModalComponent, ProfileSkeletonComponent, ProfileViewComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QrScannerComponent, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, ReactionBarComponent, ReactionsService, RefresherComponent, RequestFirestoreService, RequestFormBuilderService, RequestFormComponent, RequestModalComponent, RequestService, RetroAudioService, RightsFooterComponent, RotatingTextComponent, SEARCH_HEADER_DEFAULTS, SETTINGS_SECTIONS_CATALOG, SHAPE_KEYS, SHARE_PROFILE_MODAL_DEFAULTS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STATS_BAR_DEFAULTS, STROKE_KEYS, SearchHeaderComponent, SearchSelectorComponent, SearchbarComponent, SectionHeaderComponent, SecurityViewComponent, SegmentControlComponent, SelectSearchComponent, SessionListModalComponent, SessionService, SessionTransitionOverlayComponent, SettingsHubComponent, ShareButtonsComponent, ShareProfileModalComponent, SimonGameComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SplashComponent, SplashScreenService, StatsBarComponent, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, SwitchOrgModalComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, ThreadPanelComponent, TicketCardComponent, TicketCardImageService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TransferOwnershipModalComponent, TranslatePipe, TypedCollection, TypingIndicatorComponent, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UsageMetersComponent, UsageService, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_CHAT_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_CONTENT_CONFIG, VALTECH_DEBUG_CONSOLE, VALTECH_DEFAULT_CONTENT, VALTECH_DONATION_CONFIG, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_NETWORK_ERROR_KEY, VALTECH_REACTIONS_CONFIG, VALTECH_SETTINGS_MENU_LINKS, VALTECH_SITE_PATHS, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VALTECH_WEB_BASE_URLS, VALTECH_WHATSAPP_CONFIG, VERSION, ValtechErrorService, VerifyViewComponent, WhatsappFabComponent, WhatsappService, WizardComponent, WizardFooterComponent, WorkflowService, applyChessimalsMove, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, beautifyLegalArticle, blogPost, buildCompanyFooterProps, buildFooterLinks, buildLegalLinkResolver, buildPath, buildSettingsCards, button, canSubmitRequestType, chooseChessimalsBotMove, collections, connectPageRefresh, createChessimalsGame, createChessimalsReviewState, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialDatasetState, createInitialPaginationState, createNumberFromToField, createPageState, createPermissionLabeler, createRefreshableStream, createTitleProps, datasetPageFromLegacyCursor, docs, errorLoggingInterceptor, extractPathParams, formatClockTime, formatDateSeparator, formatRelativeTime, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getChessimalsAllLegalMoves, getChessimalsLegalMoves, getChessimalsPieceAt, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, groupPermissionsByScope, guestGuard, hasEmulators, iconButton, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isIonicColor, isKnownRoute, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, positionKey, provideLegalContent, provideSplashScreen, provideValtechAboutRoutes, provideValtechAccountRoutes, provideValtechAds, provideValtechApiKeysRoutes, provideValtechAppConfig, provideValtechAppVersion, provideValtechAppVersionHttp, provideValtechAuth, provideValtechAuthInterceptor, provideValtechChat, provideValtechContent, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechNotificationClickActions, provideValtechNotificationPreferencesRoutes, provideValtechNotificationsRoutes, provideValtechOrganizationRoutes, provideValtechPermissionsRoutes, provideValtechPreferencesRoutes, provideValtechPresets, provideValtechProfileRoutes, provideValtechReactions, provideValtechSecurityRoutes, provideValtechSettingsRoutes, provideValtechSite, provideValtechSkeleton, provideValtechWhatsapp, query, rbacGuard, renderPatternSvgInner, replaceSpecialChars, requestSubmitMode, resignChessimalsGame, resolveColor, resolveInputDefaultValue, resolveIonicColor, resolveWebBaseUrl, roleGuard, selectableRequestTypes, storagePaths, superAdminGuard, toArticle, validateRoutes };
|
|
85987
|
+
export { ACTION_CARD_DEFAULTS, AD_SIZE_MAP, API_TABLE_COLUMN_LABELS, APP_VERSION_PLATFORM_PLUGIN, APP_VERSION_REMOTE_PLUGIN, ARTICLE_CARD_DEFAULTS, ARTICLE_SPACING, ARTICLE_STRIP_DEFAULTS, AUTH_CTA_DEFAULTS, AVATAR_UPLOAD_DEFAULTS, AboutViewComponent, AccordionComponent, AccountViewComponent, ActionCardComponent, ActionHeaderComponent, ActionType, AdSlotComponent, AdsLoaderService, AdsService, AlertBoxComponent, AnalyticsErrorHandler, AnalyticsRouterTracker, AnalyticsService, AnimatedTerminalComponent, ApiKeyCreateModalComponent, ApiKeyService, ApiKeysModalComponent, ApiKeysViewComponent, AppConfigService, AppVersionService, ArticleBuilder, ArticleCardComponent, ArticleComponent, ArticleStripComponent, AttachmentUploaderComponent, AuthBackgroundComponent, AuthCtaComponent, AuthService, AuthStateService, AuthStorageService, AuthSyncService, AvatarComponent, AvatarUploadComponent, BOTTOM_NAV_DEFAULTS, BannerComponent, BlogPostBuilder, BottomNavComponent, BoxComponent, BreadcrumbComponent, BubbleBlitzGameComponent, ButtonComponent, ButtonGroupComponent, CALLOUT_LABELS, CHESSIMALS_BOT_PROFILES, CHEV_KEYS, CIRCLE_KEYS, COMMON_COUNTRY_CODES, COMMON_CURRENCIES, CORNER_KEYS, CTA_CARD_DEFAULTS, CURRENCY_INFO, CardComponent, CardSection, CardType, CardsCarouselComponent, ChangeEmailModalComponent, ChangePasswordModalComponent, ChatComposerComponent, ChatInputComponent, ChatWindowComponent, CheckInputComponent, CheckboxRadioInputComponent, ChessimalsGameComponent, ChessimalsOnlineService, ChipGroupComponent, ChristianityGameComponent, CodeDisplayComponent, CommandDisplayComponent, CommentComponent, CommentInputComponent, CommentSectionComponent, CompanyFooterComponent, ComponentStates, ConfirmationDialogService, ContainerComponent, ContentLoaderComponent, ContentReactionComponent, ContentReactionModalComponent, ContentService, ContentTransformer, ConversationListItemComponent, ConversationService, CookieBannerComponent, CookieSettingsComponent, CountdownComponent, CreateOrgModalComponent, CtaCardComponent, CurrencyInputComponent, DEFAULT_ADS_CONFIG, DEFAULT_APP_CONFIG_SERVICE_CONFIG, DEFAULT_APP_VERSION_SERVICE_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_BACK_HEADER, DEFAULT_BUTTON_PRESETS, DEFAULT_CANCEL_BUTTON, DEFAULT_CHECK_INTERVAL_MS, DEFAULT_CONFIRM_BUTTON, DEFAULT_COUNTDOWN_LABELS, DEFAULT_COUNTDOWN_LABELS_EN, DEFAULT_DEBUG_CONSOLE_CONFIG, DEFAULT_DONATION_CONFIG, DEFAULT_EMPTY_STATE, DEFAULT_EMULATOR_CONFIG, DEFAULT_FEEDBACK_CONFIG, DEFAULT_FEEDBACK_TYPE_OPTIONS, DEFAULT_HOME_HEADER, DEFAULT_INFINITE_LIST_METADATA, DEFAULT_LOGIN_LOGO, DEFAULT_MODAL_CANCEL_BUTTON, DEFAULT_MODAL_CONFIRM_BUTTON, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLATFORMS, DEFAULT_POST_UPDATE_GRACE_MS, DEFAULT_PRESETS, DEFAULT_REFRESHER_METADATA, DEFAULT_SKELETON_CONFIG, DEFAULT_SPLASH_SCREEN_CONFIG, DataTableComponent, DatasetPaginationService, DateInputComponent, DatePickerComponent, DateRangeInputComponent, DebugConsoleComponent, DeleteAccountModalComponent, DetailSkeletonComponent, DeviceService, DisplayComponent, DividerComponent, DocsApiTableComponent, DocsBreadcrumbComponent, DocsBuilder, DocsCalloutComponent, DocsCodeExampleComponent, DocsLayoutComponent, DocsNavLinksComponent, DocsNavigationService, DocsPageComponent, DocsSearchComponent, DocsSectionComponent, DocsShellComponent, DocsSidebarComponent, DocsTocComponent, DonationService, DownloadService, EditOrgModalComponent, EmptyStateComponent, EntityCardComponent, EntityFeedService, ExpandableTextComponent, ExternalBrowserService, FEATURES_LIST_DEFAULTS, FUN_MODAL_DEFAULTS, FabComponent, FaqComponent, FeaturesListComponent, FeedbackFormComponent, FeedbackService, FieldListComponent, FileInputComponent, FirebaseService, FirestoreCollectionFactory, FirestoreService, FontSizeOption, FontSizeSelectorComponent, FontSizeService, FooterComponent, FooterLinksComponent, FormComponent, FormFieldComponent, FormSchemaBuilderService, FormSkeletonComponent, FunHeaderComponent, FunModalComponent, GlassComponent, GlowCardComponent, GlowComponent, GridSkeletonComponent, HANDOFF_ROUTE_PARAM, HANDOFF_TOKEN_PARAM, HandoffService, HapticsService, HasPermissionDirective, HeaderActionsService, HeaderComponent, HintComponent, HorizontalScrollComponent, HrefComponent, HtmlViewerModalComponent, I18nService, IMAGE_DEFAULTS, INITIAL_AUTH_STATE, INITIAL_MFA_STATE, INVITATION_CARD_DEFAULTS, IONIC_COLORS$5 as IONIC_COLORS, Icon, IconComponent, IconService, ImageComponent, ImageCropComponent, ImageService, InAppBrowserService, InfiniteListComponent, InfoComponent, InputI18nHelper, InputType, InvitationCardComponent, InviteMemberModalComponent, ItemListComponent, KNOWN_ROUTES, LANG_STORAGE_KEY$1 as LANG_STORAGE_KEY, LEGAL_CONTENT_CONFIG, LOGGED_IN_HINT_COOKIE, LOGIN_DEFAULTS, LandingSplitComponent, LandingStepsComponent, LanguageSelectorComponent, LanguageSelectorV2Component, LayeredCardComponent, LegalContentService, LegalLinkService, LinkComponent, LinkProcessorService, LinkedProvidersComponent, LinksAccordionComponent, LinksCakeComponent, ListSkeletonComponent, LiveReadFallbackService, LoadMoreComponent, LoadingDirective, LocalStorageService, LocaleService, LoginAttemptModalComponent, LoginComponent, MEDIA_OBJECT_DEFAULTS, MEMBER_CARD_DEFAULTS, META_SCHEMA_VERSION, METRIC_CARD_DEFAULTS, MINI_GAME_PLAYER_AVATARS, MINI_GAME_PLAYER_COLORS, MODAL_SIZES, MOTIF_KEYS, MOTION, MaintenancePageComponent, MarkdownArticleParserService, MediaObjectComponent, MediaViewerModalComponent, MemberCardComponent, MemberDetailModalComponent, MemberImportModalComponent, MemoryGameComponent, MenuComponent, MessageBubbleComponent, MessagingService, MetaService, MetricCardComponent, MfaModalComponent, MiniGamePlayerProfileService, MiniGamesMenuComponent, ModalLayoutComponent, ModalService, ModalShellComponent, MultiSelectSearchComponent, NUM_KEYS, NavigationService, NetworkBannerComponent, NetworkStatusService, NewsBuilder, NoContentComponent, NotesBoxComponent, NotificationActionService, NotificationPreferencesViewComponent, NotificationsService, NotificationsViewComponent, NumberFromToComponent, NumberStepperComponent, OAUTH_PROVIDERS_INFO, OAuthCallbackComponent, OAuthService, OperationReferenceComponent, OptionCardsComponent, OrgInfoSheetComponent, OrgService, OrgSwitchService, OrganizationViewComponent, PATTERN_MOTIFS, PATTERN_PALETTES, PATTERN_STYLE_CONFIGS, PLATFORM_CONFIGS, POST_UPDATE_TS_KEY, PageContentComponent, PageLinksComponent, PageRefreshService, PageTemplateComponent, PageWavesComponent, PageWrapperComponent, PaginationComponent, PaginationService, PasswordInputComponent, PatternComponent, PdfService, PermissionCatalogService, PermissionSelectorComponent, PermissionsModalComponent, PermissionsViewComponent, PhoneDisplayComponent, PhoneFormatService, PhoneInputComponent, PickerV2Component, PillComponent, PinInputComponent, PlainCodeBoxComponent, PopoverSelectorComponent, PreferencesService, PreferencesViewComponent, PresetService, PriceTagComponent, PricingTableComponent, ProcessLinksPipe, ProfileContentComponent, ProfileModalComponent, ProfileSkeletonComponent, ProfileViewComponent, ProgressBarComponent, ProgressRingComponent, ProgressStatusComponent, PrompterComponent, QR_PRESETS, QrCodeComponent, QrGeneratorService, QrScannerComponent, QueryBuilder, QuoteBoxComponent, REQUEST_STATUSES, RadioInputComponent, RangeInputComponent, RatingComponent, ReactionBarComponent, ReactionsService, RefresherComponent, RequestFirestoreService, RequestFormBuilderService, RequestFormComponent, RequestModalComponent, RequestService, RetroAudioService, RightsFooterComponent, RotatingTextComponent, SEARCH_HEADER_DEFAULTS, SETTINGS_SECTIONS_CATALOG, SHAPE_KEYS, SHARE_PROFILE_MODAL_DEFAULTS, SKELETON_LAYOUT_DEFAULT_ROWS, SKELETON_PRESETS, SOLID_KEYS, STATS_BAR_DEFAULTS, STROKE_KEYS, SearchHeaderComponent, SearchSelectorComponent, SearchbarComponent, SectionHeaderComponent, SecurityViewComponent, SegmentControlComponent, SelectSearchComponent, SessionListModalComponent, SessionService, SessionTransitionOverlayComponent, SettingsHubComponent, ShareButtonsComponent, ShareProfileModalComponent, SimonGameComponent, SimpleComponent, SkeletonComponent, SkeletonLayoutComponent, SkeletonService, SplashComponent, SplashScreenService, StatsBarComponent, StatsCardComponent, StepperComponent, StorageService, SwipeCarouselComponent, SwitchOrgModalComponent, TRI_KEYS, TabbedContentComponent, TableSkeletonComponent, TabsComponent, Terminal404Component, TestimonialCardComponent, TestimonialCarouselComponent, TextComponent, TextInputComponent, TextareaInputComponent, ThemeOption, ThemeService, ThreadPanelComponent, TicketCardComponent, TicketCardImageService, TimelineComponent, TitleBlockComponent, TitleComponent, ToastService, ToggleInputComponent, TokenService, ToolbarActionType, ToolbarComponent, TransferOwnershipModalComponent, TranslatePipe, TypedCollection, TypingIndicatorComponent, UPDATE_BANNER_DEFAULT_CONTENT, UPDATE_BANNER_I18N_NAMESPACE, UpdateBannerComponent, UsageMetersComponent, UsageService, UserAvatarComponent, UsernameInputComponent, VALTECH_ADS_CONFIG, VALTECH_APP_CONFIG, VALTECH_APP_VERSION, VALTECH_AUTH_CONFIG, VALTECH_CHAT_CONFIG, VALTECH_COMPANY_LINKS, VALTECH_CONTENT_CONFIG, VALTECH_DEBUG_CONSOLE, VALTECH_DEFAULT_CONTENT, VALTECH_DONATION_CONFIG, VALTECH_FEEDBACK_CONFIG, VALTECH_FIREBASE_CONFIG, VALTECH_FOOTER_I18N, VALTECH_FOOTER_LOGO, VALTECH_LANGUAGE_SELECTOR, VALTECH_LEGAL_CONFIG, VALTECH_NETWORK_ERROR_KEY, VALTECH_REACTIONS_CONFIG, VALTECH_SETTINGS_MENU_LINKS, VALTECH_SITE_PATHS, VALTECH_SOCIAL_LINKS, VALTECH_SPLASH_SCREEN, VALTECH_WEB_BASE_URLS, VALTECH_WHATSAPP_CONFIG, VERSION, ValtechErrorService, VerifyViewComponent, WhatsappFabComponent, WhatsappService, WizardComponent, WizardFooterComponent, WorkflowService, applyChessimalsMove, applyDefaultValueToControl, authGuard, authInterceptor, authPasswordValidator, beautifyLegalArticle, blogPost, buildCompanyFooterProps, buildFooterLinks, buildLegalLinkResolver, buildPath, buildSettingsCards, button, canSubmitRequestType, chooseChessimalsBotMove, collections, connectPageRefresh, createChessimalsGame, createChessimalsReviewState, createErrorStateProps, createFirebaseConfig, createGlowCardProps, createInitialDatasetState, createInitialPaginationState, createNumberFromToField, createPageState, createPermissionLabeler, createRefreshableStream, createTitleProps, datasetPageFromLegacyCursor, docs, errorLoggingInterceptor, extractPathParams, formatClockTime, formatDateSeparator, formatRelativeTime, generatePatternTiles, generateRandomTile, getAppInfo, getAppVersion, getChessimalsAllLegalMoves, getChessimalsLegalMoves, getChessimalsPieceAt, getCollectionPath, getDocumentId, getTimeOfDayKey, goToTop, groupPermissionsByScope, guestGuard, hasEmulators, iconButton, interpretError, isAtEnd, isCollectionPath, isDocumentPath, isEmulatorMode, isIonicColor, isKnownRoute, isValidPath, joinPath, maxLength, mulberry32, news, parseMarkdownArticle, permissionGuard, permissionGuardFromRoute, positionKey, provideLegalContent, provideSplashScreen, provideValtechAboutRoutes, provideValtechAccountRoutes, provideValtechAds, provideValtechApiKeysRoutes, provideValtechAppConfig, provideValtechAppVersion, provideValtechAppVersionHttp, provideValtechAuth, provideValtechAuthInterceptor, provideValtechChat, provideValtechContent, provideValtechDebugConsole, provideValtechDonations, provideValtechErrorHandling, provideValtechFeedback, provideValtechFirebase, provideValtechI18n, provideValtechLegal, provideValtechNotificationClickActions, provideValtechNotificationPreferencesRoutes, provideValtechNotificationsRoutes, provideValtechOrganizationRoutes, provideValtechPermissionsRoutes, provideValtechPreferencesRoutes, provideValtechPresets, provideValtechProfileRoutes, provideValtechReactions, provideValtechSecurityRoutes, provideValtechSettingsRoutes, provideValtechSite, provideValtechSkeleton, provideValtechWhatsapp, query, rbacGuard, renderPatternSvgInner, replaceSpecialChars, requestSubmitMode, resignChessimalsGame, resolveColor, resolveInputDefaultValue, resolveIonicColor, resolveWebBaseUrl, roleGuard, selectableRequestTypes, storagePaths, superAdminGuard, toArticle, validateRoutes };
|
|
85378
85988
|
//# sourceMappingURL=valtech-components.mjs.map
|