UNPKG

gedcom-ts

Version:

TypeScript GEDCOM toolkit for browser apps: import .ged/.zip, edit typed genealogy data, and export GEDCOM or GEDZIP.

85 lines (84 loc) 4 kB
import { DateAct } from "./DateAct"; import { Place } from "./Place"; import { GEDCOM_7_ALL_EVENT_TAGS } from "./gedcomEventTags"; import type { ObjeRecord } from "./ObjeRecord"; import { MultimediaFile, MultimediaFiles } from "./MultimediaFile"; import { Notes } from "./Note"; export type TypeAct = (typeof GEDCOM_7_ALL_EVENT_TAGS)[number]; export type ActConstructionOptions = { /** GEDCOM 7 `1 EVEN` text payload (only used when `type` is `EVEN`). */ evenDescription?: string | null; /** GEDCOM 7 required `2 TYPE` under `EVEN` (individual or family). */ evenTypeLabel?: string | null; /** GEDCOM 7 `2 SDATE` (+ `3 TIME` / `3 PHRASE` importés comme pour `DATE`). */ sdateAct?: DateAct | null; /** GEDCOM 7 `2 PHRASE` directement sous l’événement. */ eventPhrases?: readonly string[] | null; /** Sous-lignes non modélisées avant la première balise d’ancrage (`DATE`, `PLAC`, …). */ preservedSubrecordPrefix?: readonly string[] | null; /** Sous-lignes non modélisées après la première balise d’ancrage. */ preservedSubrecordSuffix?: readonly string[] | null; }; export declare class Act { type: TypeAct; dateAct?: DateAct | null; place: Place | null; INDIS: number[]; evenDescription?: string | null; evenTypeLabel?: string | null; /** GEDCOM 7 `2 SDATE` (sous-structure analogue à `DATE`). */ sdateAct?: DateAct | null; /** GEDCOM 7 `2 PHRASE` au niveau 2 sous l’événement. */ eventPhrases: string[]; /** * Sous-lignes d’événement non modélisées (ex. `2 HUSB`, `4 PHRASE` sous `AGE`, `3 DATE` sous `STAT`, …), * conservées pour limiter la perte à l’import / export. */ preservedSubrecordPrefix: string[]; preservedSubrecordSuffix: string[]; private newMultimediaFiles; multimediaFiles: MultimediaFiles; notes: Notes; get files(): MultimediaFile[]; get keysFiles(): string[]; constructor(type: TypeAct, dateAct?: DateAct | null, place?: Place | null, indis?: number[] | null, multimediaFiles?: MultimediaFiles | null, newMultimediaFiles?: Map<string, MultimediaFile>, notes?: Notes, options?: ActConstructionOptions | null); /** * Média rattaché à l’acte : `{indi}/{type}/{nomFichier}` (indi = premier INDI connu ou paramètre). * Suffixe `_1`, `_2`, … avant l’extension si le chemin est déjà pris sur cet acte. */ addMultimedia(multimediaFile: MultimediaFile, ownerIndi?: number): void; /** * Média distant (URI) sans fichier local ; `ownerIndi` requis si {@link INDIS} est vide. */ addMultimediaFromUri(sourceUri: string, ownerIndi?: number, objeXrefId?: number | null): void; removeMultimedia(index: number): void; /** Copie profonde de l’acte (nouvelle instance, mêmes valeurs). */ clone(): Act; updateType(typeAct: TypeAct): void; addIndis(INDIS: number[]): void; updatePlace(place: Place | null): void; updateDateAct(dateAct: DateAct | null): void; /** Remplace ou efface la date de tri `SDATE`. */ updateSdateAct(sdateAct: DateAct | null): void; } export declare class Acts { list: Act[]; add(act: Act): void; updateFromIndex(act: Act, indexAct: number): void; removeFromIndex(indexAct: number): void; removeAll(): void; sortByDate(): void; /** Date utilisée pour le tri : `DATE` si exploitable, sinon `SDATE`. */ private sortDateAct; private hasSortableDate; private compareByTypeOrder; private compareMarriageAndDivorce; private haveSameParticipants; } export declare class ActsByExtraction extends Acts { extractActsInfo(lines: string[], INDIS: number[], mapFiles: Map<string, File>, objeRecordsById?: ReadonlyMap<number, ObjeRecord>, textualIndiXrefToIndi?: ReadonlyMap<string, number>, globalNotes?: Map<number, string[]>, importOptions?: { notePointerToId?: ReadonlyMap<string, number>; }): void; private convertToActs; private resolveTypeAct; }