UNPKG

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
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); }