gedcom-ts
Version:
TypeScript GEDCOM toolkit for browser apps: import .ged/.zip, edit typed genealogy data, and export GEDCOM or GEDZIP.
52 lines (51 loc) • 2.23 kB
TypeScript
import { type Person } from "../commons/Person";
import type { ReadGed } from "../import/ReadGed";
import type { BookletSex } from './booklet-gender';
import type { BookletLocale } from './booklet-locale';
export type { BookletSex } from './booklet-gender';
export interface BookletRelationRef {
readonly indi: number;
readonly name: string;
readonly datesLabel: string;
readonly sex: BookletSex;
}
export interface BookletEventLine {
readonly kind: string;
readonly label: string;
readonly date: string;
readonly place: string;
}
export interface BookletUnionEntry {
readonly familyId: number;
readonly coParent: BookletRelationRef;
readonly children: readonly BookletRelationRef[];
readonly marriageLabel: string | null;
}
export interface BookletPersonEntry {
readonly indi: number;
readonly name: string;
readonly sex: BookletSex;
readonly datesLabel: string;
readonly sosa: number | null;
readonly generation: number | null;
readonly events: readonly BookletEventLine[];
readonly notesPreview: string | null;
readonly parents: readonly BookletRelationRef[];
readonly unions: readonly BookletUnionEntry[];
}
export { personDisplayName } from "../utils/gedcom/personName";
export declare function personDatesLabel(person: Person, locale?: BookletLocale): string;
export declare function bookletSexFromPerson(person: Person): BookletSex;
export declare function buildBookletPersonEntry(person: Person, ged: ReadGed, sosa: number | null, locale?: BookletLocale): BookletPersonEntry;
export declare function sortBookletEntries(entries: BookletPersonEntry[], locale?: BookletLocale): BookletPersonEntry[];
export type BookletScope = 'all' | 'from-reference';
export interface BookletCollectOptions {
readonly scope: BookletScope;
readonly ged: ReadGed;
readonly referencePerson: Person | null;
/** Limite de génération SOSA (1 = racine seulement). Ignoré si « tout l’arbre ». */
readonly maxGeneration?: number | null;
/** Booklet narrative language (default English). */
readonly locale?: BookletLocale;
}
export declare function collectBookletPersons(options: BookletCollectOptions): BookletPersonEntry[];