gedcom-ts
Version:
TypeScript GEDCOM toolkit for browser apps: import .ged/.zip, edit typed genealogy data, and export GEDCOM or GEDZIP.
86 lines (85 loc) • 3.5 kB
TypeScript
import { Person } from '../commons/Person';
import type { ObjeRecord } from "../commons/ObjeRecord";
/** Options d’export `.ged` / `.zip` (round-trip partiel avec {@link ReadGed.preservedTopLevelRecords}). */
export type GedcomExportOptions = {
/** Blocs `0 …` à recoller avant `SUBM` / `TRLR` (ex. `readGed.preservedTopLevelRecords`). */
extraTopLevelRecords?: readonly string[] | null;
/** Enregistrements `OBJE` complets (ex. `readGed.objeRecordsById`) pour multi-`FILE` / `MEDI` / `TRAN`. */
objeRecordsById?: ReadonlyMap<number, ObjeRecord> | null;
/** Balise BCP 47 pour `1 LANG` sous `HEAD` (défaut `en-US`). */
headLanguageTag?: string | null;
/** Texte `1 COPR` sous `HEAD` (copyright / mention légale), une ligne logique. */
headCopyright?: string | null;
/**
* Définitions d’extensions `HEAD`.`SCHMA` (`2 TAG …`), ex. `{ tag: "_FOO", uri: "https://…" }`.
* Les tags sont émis tels quels (GEDCOM 7 : souvent préfixe `_`).
*/
headSchemaTagDefs?: readonly {
readonly tag: string;
readonly uri: string;
}[] | null;
/**
* Valeur `1 DEST` sous `HEAD` (URI ou identifiant d’application cible, ex. `https://gedcom.io/`).
*/
headDestination?: string | null;
/** Rapport d’avancement import / export (0–100 %). */
onProgress?: import("../utils/gedcom/transferProgress").GedcomTransferProgressCallback;
};
declare class GEDCOM {
protected title: string;
protected persons: Array<Person>;
protected onCreate: number;
private haveFiles;
protected readonly exportOptions: GedcomExportOptions;
constructor(title: string | undefined, persons: Array<Person>, haveFiles: boolean, exportOptions?: GedcomExportOptions | null);
private get beginGedcom();
private get defaultSubmitterRecord();
/** Enregistrements `OBJE` pour les médias avec {@link MultimediaFile.objeXrefId}. */
private collectObjeRecords;
private joinExtraTopLevelRecords;
private get contentGedcom();
gedcomBlob(): Blob;
}
export declare class ExportGedzipFile extends GEDCOM {
constructor(...args: [Person[]] | [string, Person[]] | [Person[], GedcomExportOptions] | [string, Person[], GedcomExportOptions]);
gedzipBlob(): Promise<Blob>;
download(): Promise<void>;
private collectGedzipMediaEntries;
private resolvePersonIndi;
private resolveActIndis;
private resolveZipPath;
}
export declare class ExportGedcomFile extends GEDCOM {
constructor(...args: [Person[]] | [string, Person[]] | [Person[], GedcomExportOptions] | [string, Person[], GedcomExportOptions]);
download(): void;
}
export declare class FamilyLine {
private readonly persons;
private readonly haveFiles;
private informationFamilies;
constructor(persons: Person[], haveFiles: boolean);
lines(): string;
private setInformationFamilies;
}
export declare class PersonLine {
private readonly INDI;
private readonly NAME;
private readonly SEX;
private readonly ATTRS;
private readonly FAMS;
private readonly FAMC;
private readonly FILES;
private readonly ACTS;
private readonly NOTES;
private readonly haveFiles;
constructor(person: Person, haveFiles: boolean, allPersons: readonly Person[]);
line(): string;
private getIndi;
private getName;
private getIndiAttributes;
private getSex;
private buildPersonMultimediaLines;
private getFams;
private getFamc;
}
export {};