UNPKG

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