rpg-cards-ng/src/types.ts

66 lines
1 KiB
TypeScript

export const enum PageSize {
A4 = '210mm 297mm',
USLetter = '8.5in 11in',
JISB4 = '182mm 257mm',
A3 = '297mm 420mm',
A5 = '148mm 210mm',
USLegal = '8.5in 14in',
USLedger = '11in 17in',
JISB5 = '257mm 364mm'
}
export const enum CardSize {
Poker = '89x64',
Bridge = '89x57'
}
export const enum Arrangement {
DoubleSided = 'doublesided',
FrontOnly = 'frontonly',
SideBySide = 'sidebyside'
}
export interface KV<V> {
[key: string]: V;
}
export interface ContentBlock {
type: string;
data: object;
}
export interface CardContent {
time: number;
blocks: ContentBlock[];
version: string;
}
export interface Card {
id: string;
name: string;
count: number;
tags: string[];
icon: string;
content: CardContent;
backIcon?: string;
color?: string;
}
export interface Deck {
id: string;
name: string;
description: string;
color: string;
icon: string;
cards: Card[];
cardSize: CardSize;
}
export interface Settings {
color: string;
}
export interface StoredStuff {
decks: Deck[];
defaults: Settings;
}