gedcom-ts
Version:
TypeScript GEDCOM toolkit for browser apps: import .ged/.zip, edit typed genealogy data, and export GEDCOM or GEDZIP.
46 lines (45 loc) • 2.66 kB
TypeScript
import type { ObjeRecord } from "../commons/ObjeRecord";
import { type GedcomTransferProgressCallback } from "../utils/gedcom/transferProgress";
export declare class SplitGedcom {
/** Lignes du premier enregistrement `0 HEAD` (y compris la ligne `0 HEAD`), si présent. */
protected informationHeaderLines: string[] | null;
protected informationPersons: string[][];
/** Lignes sous `0 @F…@ FAM` indexées par libellé xref canonique (`1`, `famA`, …). */
protected informationFamiliesByLabel: Map<string, string[]>;
/** Lignes sous `0 @N…@ NOTE|SNOTE` indexées par libellé xref canonique. */
protected informationNotesByLabel: Map<string, string[]>;
/**
* Enregistrements `0 …` non intégrés au modèle typé (OBJE, REPO, SOUR, SUBM, FAM/NOTE à xref non
* numérique, etc.). Conservés dans l’ordre du fichier pour diagnostic ou futur re‑export.
* `0 TRLR` n’est pas conservé (terminaison standard).
*/
private readonly preservedRecords;
get preservedTopLevelRecords(): readonly string[];
/** Ajoute un bloc `0 …` complet (multi-lignes) en fin de liste préservée. */
appendPreservedTopLevelRecord(block: string): void;
insertPreservedTopLevelRecordAt(index: number, block: string): void;
replacePreservedTopLevelRecordAt(index: number, block: string): void;
removePreservedTopLevelRecordAt(index: number): void;
clearPreservedTopLevelRecords(): void;
constructor(gedcomContent?: string);
protected ingestGedcomText(gedcomContent: string): void;
protected ingestGedcomFileStream(file: File, onProgress?: GedcomTransferProgressCallback, percentRange?: readonly [number, number]): Promise<void>;
private ingestRecordBlock;
/** N’ajoute pas `0 TRLR` (terminaison du fichier). */
private preserveTopLevelRecord;
/** Tout enregistrement `0 @xref@ INDI` (xref numérique `@I1@` ou textuelle `@Homer_Simpson@`). */
private isIndiRecordFirstLine;
/**
* Retire de {@link preservedTopLevelRecords} les blocs `0 @O…@ OBJE` décodables et renvoie leurs
* charges utiles pour l’hydratation des pointeurs `OBJE` sous `INDI` / actes.
*/
protected absorbStandaloneObjeBlocksInto(): Map<number, ObjeRecord>;
private splitInformationHeader;
private splitInformationPersons;
/** @returns `true` si le bloc a été stocké dans {@link informationFamiliesByLabel}. */
private splitInformationFamilies;
/** @returns `true` si le bloc a été stocké dans {@link informationNotesByLabel}. */
private splitInformationNotes;
private extractFamRecordLabel;
private extractNoteRecordLabel;
}