{#if !data.sessione || !data.valore}

I tuoi dati privati

Prezzo di listino, quanto hai pagato e quando l'hai preso stanno su BoardGameGeek e sono visibili solo a te. Per leggerli serve il tuo login BGG.

Cosa succede alla tua password

Viene mandata a BoardGameGeek per dimostrare che l'account è tuo, e poi buttata. Non finisce nel database, non finisce nei log, e non resta niente con cui rientrare al posto tuo: dopo, qui, ci sono solo i prezzi.

{ inCorso = true; return async ({ update }) => { await update(); inCorso = false; }; }} > {#if form?.errore}

{form.errore}

{/if}
{:else} {#snippet azione()}
{#if !data.suoi} accesso come {data.sessione} {:else if data.senzaPassword && !rileggo}
{ inCorso = true; return async ({ update }) => { await update(); inCorso = false; }; }} >
{:else} {/if}
{/snippet}
{#if scaduti}

Questi dati privati hanno più di tre mesi. Il tasto «Aggiorna» qui sopra li rilegge da BoardGameGeek.

{/if} {#if form?.errore}

{form.errore}

{/if} {#if rileggo || (form?.errore && !data.senzaPassword)}
{ inCorso = true; return async ({ update }) => { await update(); inCorso = false; rileggo = false; }; }} class="mb-4 rounded-lg border border-bordo p-3" >

Rileggo prezzi e valori dell'account {data.sessione} da BoardGameGeek. Serve la sua password: viene mandata a loro e buttata, come la prima volta. Da qui in avanti l'aggiornamento non la richiederà finché BoardGameGeek tiene valida la sessione.

{/if} {#if form?.scritte !== undefined}

Aggiornati i dati privati di {form.scritte} giochi.

{/if} {#if data.valore.acquistati.length === 0 && data.valore.regalati.length === 0 && data.valore.collaborazioni.length === 0}

Su BoardGameGeek non risultano prezzi o valori per questa collezione.

{/if} {#if data.valore.perAnno.length > 0}

Giochi entrati in casa

String(a.anno))} serie={[ { nome: 'comprati', colore: '#047857', valori: data.valore.perAnno.map((a) => a.acquistati) }, { nome: 'regalati', colore: '#f59e0b', valori: data.valore.perAnno.map((a) => a.regalati) }, { nome: 'collaborazioni', colore: '#7c3aed', valori: data.valore.perAnno.map((a) => a.collaborazioni) } ]} />

Spesa per anno

String(a.anno))} serie={[ { nome: 'spesa', colore: '#047857', valori: data.valore.perAnno.map((a) => a.spesa) } ]} formato={(n) => EURO.format(n)} />
{/if} {#if data.valore.acquistati.length > 0} {@const pagato = totalePagato(data.valore.acquistati)} {@const listino = totaleListino(data.valore.acquistati)}

{#if conListino(data.valore.acquistati)} In negozio costavano {EURO.format(listino)}, {data.suoi ? 'tu li hai' : 'li ha'} pagati {EURO.format(pagato)}: = pagato ? 'text-accento-testo' : 'text-rosso'}> {EURO.format(listino - pagato)} risparmiati {:else} {data.suoi ? 'Li hai' : 'Li ha'} pagati {EURO.format(pagato)} in tutto. Per vedere anche gli sconti serve il prezzo di listino, che su BoardGameGeek è il campo «current value». {/if} {#if conStime(data.valore.acquistati)} I prezzi in corsivo sono stime dal mercatino di BoardGameGeek. {/if}

{/if} {#if data.valore.regalati.length > 0}

{#if conListino(data.valore.regalati)} In negozio costavano {EURO.format(totaleListino(data.valore.regalati))}, e non {data.suoi ? ' li hai pagati tu' : ' li ha pagati'}. {:else} {data.suoi ? 'Non li hai pagati tu.' : 'Non li ha pagati.'} {/if}

{/if} {#if data.valore.collaborazioni.length > 0}

{#if conListino(data.valore.collaborazioni)} Arrivati dagli editori: in negozio costavano {EURO.format( totaleListino(data.valore.collaborazioni) )}. {:else} Arrivati dagli editori. {/if}

{/if}
{/if}