gedcom-ts
Version:
TypeScript GEDCOM toolkit for browser apps: import .ged/.zip, edit typed genealogy data, and export GEDCOM or GEDZIP.
67 lines (66 loc) • 3.07 kB
TypeScript
import { Acts } from './Act';
import { IndiAttribute } from "./IndiAttribute";
import type { ObjeRecord } from "./ObjeRecord";
import { MultimediaFile, MultimediaFiles } from "./MultimediaFile";
import { Notes } from "./Note";
import { PersonNameVariant } from "./PersonNameVariant";
export declare enum Sex {
M = "M",
F = "F",
/** GEDCOM 7 « sexe inconnu ». */
U = "U",
/** GEDCOM 7 « non binaire » / intersexe selon fichier source. */
X = "X"
}
export type PersonGedcomImportOptions = {
famPointerToId?: ReadonlyMap<string, number>;
notePointerToId?: ReadonlyMap<string, number>;
objeRecordsById?: ReadonlyMap<number, ObjeRecord>;
};
export declare class Person {
sosa: number | undefined;
INDI: number;
SEX: Sex | undefined;
firstnames: Array<string>;
lastname: string;
FAMC?: number;
FAMS: number[];
private newMultimediaFiles;
multimediaFiles: MultimediaFiles;
acts: Acts;
notes: Notes;
/** Tous les blocs `1 NAME` (alias, traductions, etc.) ; vide si seulement le couple prénom/nom classique. */
nameVariants: PersonNameVariant[];
/** Attributs de niveau 1 (`FACT`, `DSCR`, …) avec sous-structures conservées. */
attributes: IndiAttribute[];
get files(): MultimediaFile[];
get keysFiles(): string[];
constructor(sosa?: number, SEX?: Sex, firstnames?: Array<string>, lastname?: string, FAMC?: number, FAMS?: number[], INDI?: number, multimediaFiles?: MultimediaFiles, newMultimediaFiles?: Map<string, MultimediaFile>, acts?: Acts, nameVariants?: PersonNameVariant[], attributes?: IndiAttribute[]);
createPersonJson(personLines: string[], informationFamilies?: Map<number, string[]>, mapFiles?: Map<string, File>, globalNotes?: Map<number, string[]>, textualIndiXrefToIndi?: ReadonlyMap<string, number>, importOptions?: PersonGedcomImportOptions): void;
private parsePersonLine;
private createIndiFromZeroLine;
private createSexFromValue;
private createFAMCFromValue;
private createFAMSFromValue;
private createMultimediaFilesFromValue;
private createMultimediaFromObjePointer;
private addNoteFromGedcom;
/**
* Média au niveau individu (hors acte) : chemin logique `{INDI}/{nomFichier}`.
* Si le même nom existe déjà pour cet individu, suffixe `_1`, `_2`, etc. avant l’extension.
*/
addMultimedia(multimediaFile: MultimediaFile): void;
/**
* Média distant (`FILE` / OBJE avec URI) sans fichier local : chemins relatifs uniques comme {@link addMultimedia}.
*/
addMultimediaFromUri(sourceUri: string, objeXrefId?: number | null): void;
deleteMultimedia(path: string): void;
/** Copie profonde avec un nouvel `INDI` (actes via {@link Act.clone}, notes, médias, variants, attributs). */
clone(newIndi: number): Person;
private createFirstnamesAndLastnameJson;
}
export declare class TreePerson extends Person {
parents: Person[];
childrens: Person[];
constructor(person: Person, parents: Person[], childrens: Person[], currentSosa: number);
}