gedcom-ts 2.0.2 → 2026.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +175 -0
- package/README.md +460 -88
- package/dist/commons/Act.d.ts +46 -7
- package/dist/commons/DateAct.d.ts +40 -2
- package/dist/commons/Identifier.enum.d.ts +3 -0
- package/dist/commons/IndiAttribute.d.ts +11 -0
- package/dist/commons/IndiGedcomSubLine.d.ts +6 -0
- package/dist/commons/MultimediaFile.d.ts +13 -2
- package/dist/commons/Person.d.ts +27 -4
- package/dist/commons/PersonNameVariant.d.ts +21 -0
- package/dist/commons/Place.d.ts +19 -0
- package/dist/commons/clonePrimitives.d.ts +17 -0
- package/dist/commons/gedcomEventTags.d.ts +17 -0
- package/dist/dataset/ReadGedEdit.d.ts +27 -0
- package/dist/dataset/cloneModels.d.ts +8 -0
- package/dist/dataset/graphOps.d.ts +29 -0
- package/dist/dataset/index.d.ts +9 -0
- package/dist/dataset/readGedCommands.d.ts +46 -0
- package/dist/dataset/readGedMutations.d.ts +12 -0
- package/dist/dataset/validation.d.ts +36 -0
- package/dist/edit/ActEdit.d.ts +37 -0
- package/dist/edit/ActMediaEdit.d.ts +21 -0
- package/dist/edit/ActsEdit.d.ts +34 -0
- package/dist/edit/DateActEdit.d.ts +37 -0
- package/dist/edit/GedcomExportOptionsEdit.d.ts +20 -0
- package/dist/edit/IndiAttributesEdit.d.ts +38 -0
- package/dist/edit/MultimediaFileEdit.d.ts +17 -0
- package/dist/edit/NameVariantsEdit.d.ts +43 -0
- package/dist/edit/NoteEdit.d.ts +18 -0
- package/dist/edit/NotesEdit.d.ts +25 -0
- package/dist/edit/PersonEdit.d.ts +47 -0
- package/dist/edit/PersonMediaEdit.d.ts +27 -0
- package/dist/edit/PlaceEdit.d.ts +23 -0
- package/dist/edit/factories.d.ts +35 -0
- package/dist/edit/index.d.ts +33 -0
- package/dist/export/GEDCOM.d.ts +33 -4
- package/dist/import/LoadFile.d.ts +14 -0
- package/dist/import/PreservedRecordsBuffer.d.ts +21 -0
- package/dist/import/ReadGed.d.ts +49 -0
- package/dist/import/SplitedInformations.d.ts +35 -3
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +17 -4
- package/dist/index.mjs +1 -1
- package/dist/utils/gedcom/actExtraction.d.ts +3 -1
- package/dist/utils/gedcom/datasetVersion.d.ts +7 -0
- package/dist/utils/gedcom/extractIndiNamesAndAttributes.d.ts +4 -0
- package/dist/utils/gedcom/importGedcomNote.d.ts +17 -0
- package/dist/utils/gedcom/labelKeyedRecords.d.ts +13 -0
- package/dist/utils/gedcom/mediaFormFromUri.d.ts +2 -0
- package/dist/utils/gedcom/parseStandaloneObje.d.ts +9 -0
- package/dist/utils/gedcom/personName.d.ts +7 -0
- package/dist/utils/gedcom/pointers.d.ts +16 -0
- package/dist/utils/gedcom/uriBasename.d.ts +2 -0
- package/dist/utils/multimedia/registerTrackedMedia.d.ts +10 -0
- package/dist/version.d.ts +6 -0
- package/package.json +1 -1
package/dist/commons/Act.d.ts
CHANGED
|
@@ -1,31 +1,64 @@
|
|
|
1
1
|
import { DateAct } from "./DateAct";
|
|
2
2
|
import { Place } from "./Place";
|
|
3
|
-
import {
|
|
3
|
+
import { GEDCOM_7_ALL_EVENT_TAGS } from "./gedcomEventTags";
|
|
4
4
|
import { MultimediaFile, MultimediaFiles } from "./MultimediaFile";
|
|
5
5
|
import { Notes } from "./Note";
|
|
6
|
-
export type TypeAct =
|
|
6
|
+
export type TypeAct = (typeof GEDCOM_7_ALL_EVENT_TAGS)[number];
|
|
7
|
+
export type ActConstructionOptions = {
|
|
8
|
+
/** GEDCOM 7 `1 EVEN` text payload (only used when `type` is `EVEN`). */
|
|
9
|
+
evenDescription?: string | null;
|
|
10
|
+
/** GEDCOM 7 required `2 TYPE` under `EVEN` (individual or family). */
|
|
11
|
+
evenTypeLabel?: string | null;
|
|
12
|
+
/** GEDCOM 7 `2 SDATE` (+ `3 TIME` / `3 PHRASE` importés comme pour `DATE`). */
|
|
13
|
+
sdateAct?: DateAct | null;
|
|
14
|
+
/** GEDCOM 7 `2 PHRASE` directement sous l’événement. */
|
|
15
|
+
eventPhrases?: readonly string[] | null;
|
|
16
|
+
/** Sous-lignes non modélisées avant la première balise d’ancrage (`DATE`, `PLAC`, …). */
|
|
17
|
+
preservedSubrecordPrefix?: readonly string[] | null;
|
|
18
|
+
/** Sous-lignes non modélisées après la première balise d’ancrage. */
|
|
19
|
+
preservedSubrecordSuffix?: readonly string[] | null;
|
|
20
|
+
};
|
|
7
21
|
export declare class Act {
|
|
8
22
|
type: TypeAct;
|
|
9
23
|
dateAct?: DateAct | null;
|
|
10
24
|
place: Place | null;
|
|
11
25
|
INDIS: number[];
|
|
26
|
+
evenDescription?: string | null;
|
|
27
|
+
evenTypeLabel?: string | null;
|
|
28
|
+
/** GEDCOM 7 `2 SDATE` (sous-structure analogue à `DATE`). */
|
|
29
|
+
sdateAct?: DateAct | null;
|
|
30
|
+
/** GEDCOM 7 `2 PHRASE` au niveau 2 sous l’événement. */
|
|
31
|
+
eventPhrases: string[];
|
|
32
|
+
/**
|
|
33
|
+
* Sous-lignes d’événement non modélisées (ex. `2 HUSB`, `4 PHRASE` sous `AGE`, `3 DATE` sous `STAT`, …),
|
|
34
|
+
* conservées pour limiter la perte à l’import / export.
|
|
35
|
+
*/
|
|
36
|
+
preservedSubrecordPrefix: string[];
|
|
37
|
+
preservedSubrecordSuffix: string[];
|
|
12
38
|
private newMultimediaFiles;
|
|
13
39
|
multimediaFiles: MultimediaFiles;
|
|
14
40
|
notes: Notes;
|
|
15
41
|
get files(): MultimediaFile[];
|
|
16
42
|
get keysFiles(): string[];
|
|
17
|
-
constructor(type: TypeAct, dateAct?: DateAct | null, place?: Place | null, indis?: number[] | null, multimediaFiles?: MultimediaFiles | null, newMultimediaFiles?: Map<string, MultimediaFile>, notes?: Notes);
|
|
43
|
+
constructor(type: TypeAct, dateAct?: DateAct | null, place?: Place | null, indis?: number[] | null, multimediaFiles?: MultimediaFiles | null, newMultimediaFiles?: Map<string, MultimediaFile>, notes?: Notes, options?: ActConstructionOptions | null);
|
|
18
44
|
/**
|
|
19
45
|
* Média rattaché à l’acte : `{indi}/{type}/{nomFichier}` (indi = premier INDI connu ou paramètre).
|
|
20
46
|
* Suffixe `_1`, `_2`, … avant l’extension si le chemin est déjà pris sur cet acte.
|
|
21
47
|
*/
|
|
22
48
|
addMultimedia(multimediaFile: MultimediaFile, ownerIndi?: number): void;
|
|
49
|
+
/**
|
|
50
|
+
* Média distant (URI) sans fichier local ; `ownerIndi` requis si {@link INDIS} est vide.
|
|
51
|
+
*/
|
|
52
|
+
addMultimediaFromUri(sourceUri: string, ownerIndi?: number, objeXrefId?: number | null): void;
|
|
23
53
|
removeMultimedia(index: number): void;
|
|
24
|
-
|
|
54
|
+
/** Copie profonde de l’acte (nouvelle instance, mêmes valeurs). */
|
|
55
|
+
clone(): Act;
|
|
25
56
|
updateType(typeAct: TypeAct): void;
|
|
26
57
|
addIndis(INDIS: number[]): void;
|
|
27
|
-
updatePlace(place: Place): void;
|
|
28
|
-
updateDateAct(dateAct: DateAct): void;
|
|
58
|
+
updatePlace(place: Place | null): void;
|
|
59
|
+
updateDateAct(dateAct: DateAct | null): void;
|
|
60
|
+
/** Remplace ou efface la date de tri `SDATE`. */
|
|
61
|
+
updateSdateAct(sdateAct: DateAct | null): void;
|
|
29
62
|
}
|
|
30
63
|
export declare class Acts {
|
|
31
64
|
list: Act[];
|
|
@@ -34,13 +67,19 @@ export declare class Acts {
|
|
|
34
67
|
removeFromIndex(indexAct: number): void;
|
|
35
68
|
removeAll(): void;
|
|
36
69
|
sortByDate(): void;
|
|
70
|
+
/** Date utilisée pour le tri : `DATE` si exploitable, sinon `SDATE`. */
|
|
71
|
+
private sortDateAct;
|
|
37
72
|
private hasSortableDate;
|
|
38
73
|
private compareByTypeOrder;
|
|
39
74
|
private compareMarriageAndDivorce;
|
|
40
75
|
private haveSameParticipants;
|
|
41
76
|
}
|
|
42
77
|
export declare class ActsByExtraction extends Acts {
|
|
43
|
-
extractActsInfo(lines: string[], INDIS: number[], mapFiles: Map<string, File
|
|
78
|
+
extractActsInfo(lines: string[], INDIS: number[], mapFiles: Map<string, File>, objePayloadById?: ReadonlyMap<number, {
|
|
79
|
+
sourceUri: string;
|
|
80
|
+
}>, textualIndiXrefToIndi?: ReadonlyMap<string, number>, globalNotes?: Map<number, string[]>, importOptions?: {
|
|
81
|
+
notePointerToId?: ReadonlyMap<string, number>;
|
|
82
|
+
}): void;
|
|
44
83
|
private convertToActs;
|
|
45
84
|
private resolveTypeAct;
|
|
46
85
|
}
|
|
@@ -2,10 +2,18 @@ export declare enum TypeDateAct {
|
|
|
2
2
|
BEF = "BEF",
|
|
3
3
|
ABT = "ABT",
|
|
4
4
|
AFT = "AFT",
|
|
5
|
+
/** GEDCOM 5.5 / interop : date interprétée. */
|
|
6
|
+
INT = "INT",
|
|
7
|
+
/** Estimée. */
|
|
8
|
+
EST = "EST",
|
|
9
|
+
/** Calculée. */
|
|
10
|
+
CAL = "CAL",
|
|
5
11
|
BET = "BET",
|
|
6
12
|
FROM = "FROM",
|
|
7
13
|
NULL = "NULL"
|
|
8
14
|
}
|
|
15
|
+
/** Qualificateur de date simple (hors BET/FROM). */
|
|
16
|
+
export type TypeDateActSimpleQualifier = TypeDateAct.BEF | TypeDateAct.ABT | TypeDateAct.AFT | TypeDateAct.INT | TypeDateAct.EST | TypeDateAct.CAL;
|
|
9
17
|
export declare enum MonthEnum {
|
|
10
18
|
JAN = "JAN",
|
|
11
19
|
FEB = "FEB",
|
|
@@ -32,10 +40,28 @@ export declare class DateAct {
|
|
|
32
40
|
endDay?: Day;
|
|
33
41
|
endMonth?: Month;
|
|
34
42
|
endYear?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Texte libre lié à la date : `3 PHRASE` sous `DATE` à l’import, ou fragment final `(...)` hérité 5.5.
|
|
45
|
+
*/
|
|
46
|
+
datePhrase?: string | null;
|
|
47
|
+
/** `3 TIME` sous `DATE` / `SDATE` (GEDCOM 7). */
|
|
48
|
+
dateTime?: string | null;
|
|
49
|
+
/**
|
|
50
|
+
* Charge `DATE`/`SDATE` non résolvable en champs typés (URI GEDCOM 7, texte libre, combos exotiques) :
|
|
51
|
+
* conservée telle quelle pour l’export tant qu’aucune date structurée exploitable n’est présente.
|
|
52
|
+
*/
|
|
53
|
+
verbatimDatePayload?: string | null;
|
|
35
54
|
constructor(dateLine: string);
|
|
55
|
+
private applyVerbatimFallback;
|
|
56
|
+
/** Indique si l’on dispose d’une date structurée exportable (hors seul verbatim). */
|
|
57
|
+
private hasStructuredDateForExport;
|
|
36
58
|
get date(): string | null;
|
|
59
|
+
/** Sous-ligne `3 TIME` (import GEDCOM 7). */
|
|
60
|
+
setDateTimeFromImport(fragment: string): void;
|
|
37
61
|
updateExactDate(year?: number, month?: Month, day?: Day): void;
|
|
38
|
-
|
|
62
|
+
/** Ajoute du texte issu d’un `3 PHRASE` sous `DATE` (import GEDCOM 7). */
|
|
63
|
+
appendDatePhraseFromImport(fragment: string): void;
|
|
64
|
+
updateQualifiedDate(typeDateAct: TypeDateActSimpleQualifier, year?: number, month?: Month, day?: Day): void;
|
|
39
65
|
updateBetweenDates(start: {
|
|
40
66
|
year: number;
|
|
41
67
|
month?: Month;
|
|
@@ -55,17 +81,29 @@ export declare class DateAct {
|
|
|
55
81
|
day?: Day;
|
|
56
82
|
}): void;
|
|
57
83
|
clearDate(): void;
|
|
84
|
+
/**
|
|
85
|
+
* Remplace l’état de cette instance par le résultat du parseur sur une charge `DATE` / `SDATE` GEDCOM
|
|
86
|
+
* (même logique que le constructeur), sans changer la référence d’objet — utile pour l’édition in-place.
|
|
87
|
+
*/
|
|
88
|
+
applyGedcomDatePayload(dateLine: string): void;
|
|
89
|
+
private tryParseIsoYmd;
|
|
90
|
+
/** ISO `YYYY-MM` (GEDCOM 7 : précision au mois). */
|
|
91
|
+
private tryParseIsoYm;
|
|
92
|
+
/** Extrait une note finale `(...)` (style 5.5) du reste de la charge date. */
|
|
93
|
+
private static extractInlineParentheticalPhrase;
|
|
58
94
|
private convertMonth;
|
|
59
95
|
private parseSinglePart;
|
|
60
96
|
private parseTwoParts;
|
|
61
97
|
private parseThreeParts;
|
|
62
98
|
private parseFourParts;
|
|
63
|
-
private
|
|
99
|
+
private tryConsumeMonthYearSlash;
|
|
64
100
|
private parseMonthToken;
|
|
65
101
|
private formatCoreDate;
|
|
66
102
|
private tryParseRangeDate;
|
|
67
103
|
private parseCoreDateValue;
|
|
68
104
|
private isRelativeType;
|
|
105
|
+
/** Retire les préfixes de calendrier GEDCOM (`@#DGREGORIAN@`, … — forme `@#NAME@`). */
|
|
106
|
+
private stripCalendarPrefixes;
|
|
69
107
|
isValid(): boolean;
|
|
70
108
|
}
|
|
71
109
|
export declare const dateToDateLine: (year?: number, month?: Month, day?: Day) => string;
|
|
@@ -58,6 +58,7 @@ export declare enum Identifier {
|
|
|
58
58
|
FAMF = "FAMF",
|
|
59
59
|
FAMS = "FAMS",
|
|
60
60
|
FCOM = "FCOM",
|
|
61
|
+
FACT = "FACT",
|
|
61
62
|
FILE = "FILE",
|
|
62
63
|
FORM = "FORM",
|
|
63
64
|
GEDC = "GEDC",
|
|
@@ -92,6 +93,7 @@ export declare enum Identifier {
|
|
|
92
93
|
PAGE = "PAGE",
|
|
93
94
|
PEDI = "PEDI",
|
|
94
95
|
PHON = "PHON",
|
|
96
|
+
PHRASE = "PHRASE",
|
|
95
97
|
PLAC = "PLAC",
|
|
96
98
|
POST = "POST",
|
|
97
99
|
PROB = "PROB",
|
|
@@ -114,6 +116,7 @@ export declare enum Identifier {
|
|
|
114
116
|
SOUR = "SOUR",
|
|
115
117
|
SPFX = "SPFX",
|
|
116
118
|
SSN = "SSN",
|
|
119
|
+
SDATE = "SDATE",
|
|
117
120
|
STAE = "STAE",
|
|
118
121
|
STAT = "STAT",
|
|
119
122
|
SUBM = "SUBM",
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IndiGedcomSubLine } from "./IndiGedcomSubLine";
|
|
2
|
+
/**
|
|
3
|
+
* Attribut individuel de niveau 1 (`FACT`, `DSCR`, `CAST`, …) avec sous-structures conservées.
|
|
4
|
+
*/
|
|
5
|
+
export declare class IndiAttribute {
|
|
6
|
+
tag: string;
|
|
7
|
+
value: string;
|
|
8
|
+
children: IndiGedcomSubLine[];
|
|
9
|
+
constructor(tag: string, value: string, children?: IndiGedcomSubLine[]);
|
|
10
|
+
toGedcom(lineEnding: string): string;
|
|
11
|
+
}
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
export declare class MultimediaFile {
|
|
2
2
|
relativePath: string;
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/** Fichier local ; peut être absent si seulement {@link sourceUri} ou {@link objeXrefId}. */
|
|
4
|
+
file?: File;
|
|
5
|
+
/**
|
|
6
|
+
* URI ou chemin pour `FILE` en GEDCOM 7 sans binaire embarqué (export `.ged`, média hors zip).
|
|
7
|
+
*/
|
|
8
|
+
sourceUri?: string | null;
|
|
9
|
+
/**
|
|
10
|
+
* Référence `OBJE` (`@O{n}@`) : exporte `1 OBJE` / `2 OBJE` + enregistrement `0 @O{n}@ OBJE` si {@link sourceUri} est défini.
|
|
11
|
+
*/
|
|
12
|
+
objeXrefId?: number | null;
|
|
13
|
+
constructor(file?: File, sourceUri?: string | null, objeXrefId?: number | null);
|
|
5
14
|
get filename(): string;
|
|
15
|
+
/** Peut être sérialisé en GEDCOM (fichier local, URI, ou pointeur OBJE). */
|
|
16
|
+
hasExportablePayload(): boolean;
|
|
6
17
|
}
|
|
7
18
|
export declare class MultimediaFiles {
|
|
8
19
|
/** Répertoire logique (sans slash final), ex. `1` ou `1/BIRT`. */
|
package/dist/commons/Person.d.ts
CHANGED
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
import { Acts } from './Act';
|
|
2
|
+
import { IndiAttribute } from "./IndiAttribute";
|
|
2
3
|
import { MultimediaFile, MultimediaFiles } from "./MultimediaFile";
|
|
3
4
|
import { Notes } from "./Note";
|
|
5
|
+
import { PersonNameVariant } from "./PersonNameVariant";
|
|
4
6
|
export declare enum Sex {
|
|
5
7
|
M = "M",
|
|
6
|
-
F = "F"
|
|
8
|
+
F = "F",
|
|
9
|
+
/** GEDCOM 7 « sexe inconnu ». */
|
|
10
|
+
U = "U",
|
|
11
|
+
/** GEDCOM 7 « non binaire » / intersexe selon fichier source. */
|
|
12
|
+
X = "X"
|
|
7
13
|
}
|
|
14
|
+
export type PersonGedcomImportOptions = {
|
|
15
|
+
famPointerToId?: ReadonlyMap<string, number>;
|
|
16
|
+
notePointerToId?: ReadonlyMap<string, number>;
|
|
17
|
+
objePayloadById?: ReadonlyMap<number, {
|
|
18
|
+
sourceUri: string;
|
|
19
|
+
}>;
|
|
20
|
+
};
|
|
8
21
|
export declare class Person {
|
|
9
22
|
sosa: number | undefined;
|
|
10
23
|
INDI: number;
|
|
@@ -17,24 +30,34 @@ export declare class Person {
|
|
|
17
30
|
multimediaFiles: MultimediaFiles;
|
|
18
31
|
acts: Acts;
|
|
19
32
|
notes: Notes;
|
|
33
|
+
/** Tous les blocs `1 NAME` (alias, traductions, etc.) ; vide si seulement le couple prénom/nom classique. */
|
|
34
|
+
nameVariants: PersonNameVariant[];
|
|
35
|
+
/** Attributs de niveau 1 (`FACT`, `DSCR`, …) avec sous-structures conservées. */
|
|
36
|
+
attributes: IndiAttribute[];
|
|
20
37
|
get files(): MultimediaFile[];
|
|
21
38
|
get keysFiles(): string[];
|
|
22
|
-
constructor(sosa?: number, SEX?: Sex, firstnames?: Array<string>, lastname?: string, FAMC?: number, FAMS?: number[], INDI?: number, multimediaFiles?: MultimediaFiles, newMultimediaFiles?: Map<string, MultimediaFile>, acts?: Acts);
|
|
23
|
-
createPersonJson(personLines: string[], informationFamilies?: Map<number, string[]>, mapFiles?: Map<string, File>, globalNotes?: Map<number, string[]
|
|
39
|
+
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[]);
|
|
40
|
+
createPersonJson(personLines: string[], informationFamilies?: Map<number, string[]>, mapFiles?: Map<string, File>, globalNotes?: Map<number, string[]>, textualIndiXrefToIndi?: ReadonlyMap<string, number>, importOptions?: PersonGedcomImportOptions): void;
|
|
24
41
|
private parsePersonLine;
|
|
25
42
|
private createIndiFromZeroLine;
|
|
26
43
|
private createSexFromValue;
|
|
27
44
|
private createFAMCFromValue;
|
|
28
45
|
private createFAMSFromValue;
|
|
29
46
|
private createMultimediaFilesFromValue;
|
|
47
|
+
private createMultimediaFromObjePointer;
|
|
30
48
|
private addNoteFromGedcom;
|
|
31
49
|
/**
|
|
32
50
|
* Média au niveau individu (hors acte) : chemin logique `{INDI}/{nomFichier}`.
|
|
33
51
|
* Si le même nom existe déjà pour cet individu, suffixe `_1`, `_2`, etc. avant l’extension.
|
|
34
52
|
*/
|
|
35
53
|
addMultimedia(multimediaFile: MultimediaFile): void;
|
|
54
|
+
/**
|
|
55
|
+
* Média distant (`FILE` / OBJE avec URI) sans fichier local : chemins relatifs uniques comme {@link addMultimedia}.
|
|
56
|
+
*/
|
|
57
|
+
addMultimediaFromUri(sourceUri: string, objeXrefId?: number | null): void;
|
|
36
58
|
deleteMultimedia(path: string): void;
|
|
37
|
-
|
|
59
|
+
/** Copie profonde avec un nouvel `INDI` (actes via {@link Act.clone}, notes, médias, variants, attributs). */
|
|
60
|
+
clone(newIndi: number): Person;
|
|
38
61
|
private createFirstnamesAndLastnameJson;
|
|
39
62
|
}
|
|
40
63
|
export declare class TreePerson extends Person {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { IndiGedcomSubLine } from "./IndiGedcomSubLine";
|
|
2
|
+
/** Traduction `2 TRAN` sous un `1 NAME` (GEDCOM 7). */
|
|
3
|
+
export declare class PersonNameTranslation {
|
|
4
|
+
payload: string;
|
|
5
|
+
lang?: string;
|
|
6
|
+
parts: IndiGedcomSubLine[];
|
|
7
|
+
constructor(payload: string, lang?: string, parts?: IndiGedcomSubLine[]);
|
|
8
|
+
toGedcom(lineEnding: string): string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Un bloc `1 NAME` complet (type, pièces NPFX/GIVN/…, traductions).
|
|
12
|
+
* Permet un aller-retour GEDCOM sans perdre alias / traductions.
|
|
13
|
+
*/
|
|
14
|
+
export declare class PersonNameVariant {
|
|
15
|
+
payload: string;
|
|
16
|
+
type?: string;
|
|
17
|
+
parts: IndiGedcomSubLine[];
|
|
18
|
+
translations: PersonNameTranslation[];
|
|
19
|
+
constructor(payload: string, type?: string, parts?: IndiGedcomSubLine[], translations?: PersonNameTranslation[]);
|
|
20
|
+
toGedcom(lineEnding: string): string;
|
|
21
|
+
}
|
package/dist/commons/Place.d.ts
CHANGED
|
@@ -1,7 +1,26 @@
|
|
|
1
1
|
export declare class Place {
|
|
2
2
|
city: string | null;
|
|
3
|
+
/** Jurisdiction level 2 in GEDCOM 7 `PLAC` list (after city), when `FORM` is City, County, State, Country. */
|
|
4
|
+
county: string | null;
|
|
5
|
+
state: string | null;
|
|
6
|
+
country: string | null;
|
|
7
|
+
/** Texte `3 PHRASE` sous `PLAC` (GEDCOM 7). */
|
|
8
|
+
placPhrase: string | null;
|
|
3
9
|
coordinate: CoordinateGPS;
|
|
4
10
|
constructor(city?: string, coordinate?: CoordinateGPS);
|
|
11
|
+
/**
|
|
12
|
+
* Remplit les champs à partir d’une charge `PLAC` GEDCOM 7 (liste séparée par des virgules).
|
|
13
|
+
* Ordre attendu avec le `HEAD`.`PLAC`.`FORM` par défaut de l’export : City, County, State, Country.
|
|
14
|
+
*
|
|
15
|
+
* Heuristique : 1 segment → ville seule ; 2 → ville + pays (sans county/state) ;
|
|
16
|
+
* 3 → ville, county, pays (state vide) ; 4 → les quatre niveaux ; 5+ → les trois premiers niveaux
|
|
17
|
+
* puis le reste concaténé dans `country` (ex. subdivisions multiples).
|
|
18
|
+
*/
|
|
19
|
+
setFromGedcom7PlacPayload(payload: string): void;
|
|
20
|
+
/** Ajoute du texte issu d’un `3 PHRASE` sous `PLAC` (import GEDCOM 7). */
|
|
21
|
+
appendPlacPhraseFromImport(fragment: string): void;
|
|
22
|
+
/** Charge `PLAC` pour l’export GEDCOM 7 (liste `,`). */
|
|
23
|
+
toGedcom7PlacPayload(): string | null;
|
|
5
24
|
addCity(city: string): void;
|
|
6
25
|
}
|
|
7
26
|
export declare class CoordinateGPS {
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DateAct } from "./DateAct";
|
|
2
|
+
import { IndiAttribute } from "./IndiAttribute";
|
|
3
|
+
import { MultimediaFile, MultimediaFiles } from "./MultimediaFile";
|
|
4
|
+
import { Note, Notes } from "./Note";
|
|
5
|
+
import { PersonNameVariant } from "./PersonNameVariant";
|
|
6
|
+
import { Place } from "./Place";
|
|
7
|
+
export declare function cloneDateAct(d: DateAct): DateAct;
|
|
8
|
+
export declare function clonePlace(p: Place): Place;
|
|
9
|
+
export declare function cloneNote(note: Note): Note;
|
|
10
|
+
export declare function cloneNotesColl(notes: Notes): Notes;
|
|
11
|
+
export declare function cloneMultimediaFile(m: MultimediaFile): MultimediaFile;
|
|
12
|
+
export declare function cloneMultimediaBundle(files: readonly MultimediaFile[], relativePathRoot: string): {
|
|
13
|
+
files: MultimediaFiles;
|
|
14
|
+
map: Map<string, MultimediaFile>;
|
|
15
|
+
};
|
|
16
|
+
export declare function cloneNameVariant(v: PersonNameVariant): PersonNameVariant;
|
|
17
|
+
export declare function cloneAttribute(a: IndiAttribute): IndiAttribute;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Identifier } from "./Identifier.enum";
|
|
2
|
+
/**
|
|
3
|
+
* GEDCOM 7 standard event tags: `INDIVIDUAL_EVENT_STRUCTURE` ∪ `FAMILY_EVENT_STRUCTURE`
|
|
4
|
+
* (LDS ordinances excluded).
|
|
5
|
+
*/
|
|
6
|
+
export declare const GEDCOM_7_ALL_EVENT_TAGS: readonly [Identifier.ADOP, Identifier.BAPM, Identifier.BARM, Identifier.BASM, Identifier.BIRT, Identifier.BLES, Identifier.BURI, Identifier.CENS, Identifier.CHR, Identifier.CHRA, Identifier.CONF, Identifier.CREM, Identifier.DEAT, Identifier.EMIG, Identifier.EVEN, Identifier.FCOM, Identifier.GRAD, Identifier.IMMI, Identifier.NATU, Identifier.ORDN, Identifier.PROB, Identifier.RETI, Identifier.WILL, Identifier.ANUL, Identifier.DIV, Identifier.DIVF, Identifier.ENGA, Identifier.MARB, Identifier.MARC, Identifier.MARL, Identifier.MARR, Identifier.MARS];
|
|
7
|
+
export type Gedcom7EventTag = (typeof GEDCOM_7_ALL_EVENT_TAGS)[number];
|
|
8
|
+
/**
|
|
9
|
+
* Sous-ensemble des tags GEDCOM 7 typiquement utilisés pour lier deux personnes à une même famille `F`
|
|
10
|
+
* (fiançailles, bans, contrat, mariage, etc.). D’autres tags (`EVEN`, …) restent utilisables via
|
|
11
|
+
* {@link CreateUnionFamilyOptions.eventTag} s’ils figurent dans {@link GEDCOM_7_ALL_EVENT_TAGS}.
|
|
12
|
+
*/
|
|
13
|
+
export declare const GEDCOM_7_PAIR_UNION_EVENT_TAGS: readonly [Identifier.ENGA, Identifier.MARB, Identifier.MARC, Identifier.MARL, Identifier.MARR, Identifier.MARS];
|
|
14
|
+
export type Gedcom7PairUnionEventTag = (typeof GEDCOM_7_PAIR_UNION_EVENT_TAGS)[number];
|
|
15
|
+
/** Document order when two acts have no usable sortable date (`Acts.sortByDate`). */
|
|
16
|
+
export declare const GEDCOM_7_EVENT_SORT_ORDER: readonly Gedcom7EventTag[];
|
|
17
|
+
export declare const GEDCOM_7_EVENT_TAG_SET: ReadonlySet<string>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ReadGed } from "../import/ReadGed";
|
|
2
|
+
import type { Person } from "../commons/Person";
|
|
3
|
+
/**
|
|
4
|
+
* Édition des blocs `0 …` conservés pour round-trip (voir {@link ReadGed.preservedTopLevelRecords}).
|
|
5
|
+
*/
|
|
6
|
+
export declare class PreservedTopLevelEdit {
|
|
7
|
+
private readonly target;
|
|
8
|
+
constructor(target: ReadGed);
|
|
9
|
+
get value(): ReadonlyArray<string>;
|
|
10
|
+
append(block: string): this;
|
|
11
|
+
insertAt(index: number, block: string): this;
|
|
12
|
+
replaceAt(index: number, block: string): this;
|
|
13
|
+
removeAt(index: number): this;
|
|
14
|
+
clear(): this;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Facade d’édition sur un {@link ReadGed} (personnes + enregistrements préservés).
|
|
18
|
+
*/
|
|
19
|
+
export declare class ReadGedEdit {
|
|
20
|
+
private readonly target;
|
|
21
|
+
constructor(target: ReadGed);
|
|
22
|
+
get value(): ReadGed;
|
|
23
|
+
addPerson(person: Person): this;
|
|
24
|
+
removePersonByIndi(indi: number): boolean;
|
|
25
|
+
preserved(): PreservedTopLevelEdit;
|
|
26
|
+
}
|
|
27
|
+
export declare function editReadGed(readGed: ReadGed): ReadGedEdit;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Act } from "../commons/Act";
|
|
2
|
+
import type { Person } from "../commons/Person";
|
|
3
|
+
/** Copie profonde d’un {@link Act} (nouvelle instance, mêmes valeurs). */
|
|
4
|
+
export declare function cloneAct(act: Act): Act;
|
|
5
|
+
/**
|
|
6
|
+
* Copie profonde d’une {@link Person} avec un nouvel `INDI` (identité, actes, notes, médias, variants, attributs).
|
|
7
|
+
*/
|
|
8
|
+
export declare function clonePerson(person: Person, newIndi: number): Person;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ReadGed } from "../import/ReadGed";
|
|
2
|
+
import type { TypeAct } from "../commons/Act";
|
|
3
|
+
import { Person } from "../commons/Person";
|
|
4
|
+
import type { CreateActInit } from "../edit/factories";
|
|
5
|
+
/** Prochain identifiant de famille `F` libre d'après les `FAMC` / `FAMS` du jeu. */
|
|
6
|
+
export declare function nextFamilyId(persons: readonly Person[]): number;
|
|
7
|
+
/** Rattache un enfant à une famille (`FAMC`). */
|
|
8
|
+
export declare function linkChildToFamily(readGed: ReadGed, child: Person, familyId: number): void;
|
|
9
|
+
/** Retire le rattachement `FAMC` d'un enfant. */
|
|
10
|
+
export declare function unlinkChildFromFamily(readGed: ReadGed, child: Person): void;
|
|
11
|
+
/**
|
|
12
|
+
* Retire toutes les références à une famille `familyId` : `FAMS` (toutes occurrences) et `FAMC` si égal.
|
|
13
|
+
* Puis {@link ReadGed.groupPartners}.
|
|
14
|
+
*/
|
|
15
|
+
export declare function removeFamilyReferencesFromDataset(readGed: ReadGed, familyId: number): void;
|
|
16
|
+
export type CreateUnionFamilyOptions = {
|
|
17
|
+
/**
|
|
18
|
+
* Type d’acte créé sur chaque conjoint pour matérialiser l’union (défaut : {@link Identifier.MARR}).
|
|
19
|
+
* Doit appartenir à {@link GEDCOM_7_EVENT_TAG_SET} (ex. {@link Identifier.ENGA}, ou `EVEN` avec
|
|
20
|
+
* `CreateActInit.construction` pour une union civile / custom).
|
|
21
|
+
*/
|
|
22
|
+
eventTag?: TypeAct;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Crée une famille `F` (nouvel id), rattache les deux conjoints en `FAMS` et ajoute le même type d’acte
|
|
26
|
+
* sur chacun (par défaut `MARR`). Voir {@link CreateUnionFamilyOptions} pour fiançailles, bans, etc.
|
|
27
|
+
* @returns l'identifiant interne de famille créé.
|
|
28
|
+
*/
|
|
29
|
+
export declare function createMarriageFamily(readGed: ReadGed, spouseA: Person, spouseB: Person, init?: CreateActInit | null, unionOptions?: CreateUnionFamilyOptions | null): number;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { addPersonToReadGed, removePersonFromReadGedByIndi } from "./readGedMutations";
|
|
2
|
+
export { commandBlockingIssues, tryAddPersonToReadGed, tryCreateMarriageFamily, tryLinkChildToFamily, tryRemovePersonFromReadGedByIndi, tryUnlinkChildFromFamily, validateAddPersonCommand, validateCreateMarriageCommand, validateLinkChildCommand, validateUnlinkChildCommand, } from "./readGedCommands";
|
|
3
|
+
export type { CommandFail, CommandOk, CommandResult } from "./readGedCommands";
|
|
4
|
+
export { createMarriageFamily, linkChildToFamily, nextFamilyId, removeFamilyReferencesFromDataset, unlinkChildFromFamily, } from "./graphOps";
|
|
5
|
+
export type { CreateUnionFamilyOptions } from "./graphOps";
|
|
6
|
+
export { PreservedTopLevelEdit, ReadGedEdit, editReadGed } from "./ReadGedEdit";
|
|
7
|
+
export { cloneAct, clonePerson } from "./cloneModels";
|
|
8
|
+
export { assertPersonConsistent, assertReadGedConsistent, validatePerson, validateReadGed, } from "./validation";
|
|
9
|
+
export type { AssertConsistencyOptions, ConsistencySeverity, ModelConsistencyIssue, ModelConsistencyIssueCode, ValidatePersonContext, ValidateReadGedOptions, } from "./validation";
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ReadGed } from "../import/ReadGed";
|
|
2
|
+
import type { Person } from "../commons/Person";
|
|
3
|
+
import type { CreateActInit } from "../edit/factories";
|
|
4
|
+
import { type CreateUnionFamilyOptions } from "./graphOps";
|
|
5
|
+
import type { ModelConsistencyIssue } from "./validation";
|
|
6
|
+
export type CommandOk<T = void> = {
|
|
7
|
+
ok: true;
|
|
8
|
+
value: T;
|
|
9
|
+
warnings?: ModelConsistencyIssue[];
|
|
10
|
+
};
|
|
11
|
+
export type CommandFail = {
|
|
12
|
+
ok: false;
|
|
13
|
+
issues: ModelConsistencyIssue[];
|
|
14
|
+
};
|
|
15
|
+
export type CommandResult<T = void> = CommandOk<T> | CommandFail;
|
|
16
|
+
/** Filtre les problèmes qui bloquent une commande (`severity === "error"`). */
|
|
17
|
+
export declare function commandBlockingIssues(issues: readonly ModelConsistencyIssue[]): ModelConsistencyIssue[];
|
|
18
|
+
/** Préconditions pour {@link tryAddPersonToReadGed} (sans effet de bord). */
|
|
19
|
+
export declare function validateAddPersonCommand(readGed: ReadGed, person: Person): ModelConsistencyIssue[];
|
|
20
|
+
/**
|
|
21
|
+
* Ajoute une personne au graphe après validation des préconditions.
|
|
22
|
+
* Effets en cas de succès : `mapPersons`, `persons`, lieux, `groupPartners()` (voir {@link addPersonToReadGed}).
|
|
23
|
+
*/
|
|
24
|
+
export declare function tryAddPersonToReadGed(readGed: ReadGed, person: Person): CommandResult;
|
|
25
|
+
/**
|
|
26
|
+
* Retire une personne par `INDI`. Si absent, `ok: false` et aucune mutation.
|
|
27
|
+
*/
|
|
28
|
+
export declare function tryRemovePersonFromReadGedByIndi(readGed: ReadGed, indi: number): CommandResult;
|
|
29
|
+
/** Préconditions pour rattacher un enfant à une famille. */
|
|
30
|
+
export declare function validateLinkChildCommand(readGed: ReadGed, child: Person, familyId: number): ModelConsistencyIssue[];
|
|
31
|
+
/**
|
|
32
|
+
* Rattache `child.FAMC = familyId` puis `groupPartners()`.
|
|
33
|
+
* Les avertissements (famille sans conjoints) n’empêchent pas la mutation ; ils sont renvoyés dans `warnings`.
|
|
34
|
+
*/
|
|
35
|
+
export declare function tryLinkChildToFamily(readGed: ReadGed, child: Person, familyId: number): CommandResult;
|
|
36
|
+
/** Préconditions pour {@link tryUnlinkChildFromFamily}. */
|
|
37
|
+
export declare function validateUnlinkChildCommand(readGed: ReadGed, child: Person): ModelConsistencyIssue[];
|
|
38
|
+
/** Retire `FAMC` sur l’enfant puis `groupPartners()`. */
|
|
39
|
+
export declare function tryUnlinkChildFromFamily(readGed: ReadGed, child: Person): CommandResult;
|
|
40
|
+
/** Préconditions pour {@link tryCreateMarriageFamily}. */
|
|
41
|
+
export declare function validateCreateMarriageCommand(readGed: ReadGed, spouseA: Person, spouseB: Person): ModelConsistencyIssue[];
|
|
42
|
+
/**
|
|
43
|
+
* Crée une union (nouvel id `F`, actes MARR) après validation.
|
|
44
|
+
* @returns l’identifiant de famille en cas de succès.
|
|
45
|
+
*/
|
|
46
|
+
export declare function tryCreateMarriageFamily(readGed: ReadGed, spouseA: Person, spouseB: Person, init?: CreateActInit | null, unionOptions?: CreateUnionFamilyOptions | null): CommandResult<number>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ReadGed } from "../import/ReadGed";
|
|
2
|
+
import { Person } from "../commons/Person";
|
|
3
|
+
/**
|
|
4
|
+
* Ajoute une personne au graphe (met à jour `mapPersons`, `persons`, lieux, `groupPartners`).
|
|
5
|
+
* Si `person.INDI` n’est pas défini, un nouvel identifiant unique est attribué.
|
|
6
|
+
*/
|
|
7
|
+
export declare function addPersonToReadGed(readGed: ReadGed, person: Person): void;
|
|
8
|
+
/**
|
|
9
|
+
* Retire une personne par `INDI` et purge les références à cet `INDI` dans les actes et notes du jeu.
|
|
10
|
+
* @returns `false` si aucune personne ne correspond.
|
|
11
|
+
*/
|
|
12
|
+
export declare function removePersonFromReadGedByIndi(readGed: ReadGed, indi: number): boolean;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ReadGed } from "../import/ReadGed";
|
|
2
|
+
import { Person } from "../commons/Person";
|
|
3
|
+
export type ConsistencySeverity = "error" | "warn";
|
|
4
|
+
export type ModelConsistencyIssueCode = "person_missing_indi" | "act_unknown_indi" | "note_unknown_indi" | "marr_missing_spouse_indi" | "duplicate_indi_in_dataset" | "add_person_already_registered" | "add_person_indi_conflict" | "remove_person_not_found" | "link_child_indi_missing" | "link_child_not_bound_to_readged" | "link_child_family_has_no_spouses" | "unlink_child_indi_missing" | "unlink_child_not_bound_to_readged" | "marriage_spouses_same_person" | "marriage_spouses_same_indi" | "marriage_spouse_indi_missing" | "marriage_spouse_not_in_readged" | "famc_family_without_spouses" | "fams_family_without_spouses" | "fams_duplicate_family_id" | "famc_ancestor_cycle";
|
|
5
|
+
export type ModelConsistencyIssue = {
|
|
6
|
+
code: ModelConsistencyIssueCode;
|
|
7
|
+
severity: ConsistencySeverity;
|
|
8
|
+
message: string;
|
|
9
|
+
detail?: unknown;
|
|
10
|
+
};
|
|
11
|
+
export type ValidatePersonContext = {
|
|
12
|
+
knownIndis?: ReadonlySet<number>;
|
|
13
|
+
checkMarrParticipants?: boolean;
|
|
14
|
+
};
|
|
15
|
+
export type ValidateReadGedOptions = ValidatePersonContext & {
|
|
16
|
+
checkDuplicateIndis?: boolean;
|
|
17
|
+
/** `FAMC` pointant vers une famille sans entrée dans `partnersMap` ou liste vide. */
|
|
18
|
+
checkFamcWithoutSpouses?: boolean;
|
|
19
|
+
/** Chaque `FAMS` sans conjoints dans `partnersMap` (souvent import incomplet). */
|
|
20
|
+
checkFamsWithoutSpouses?: boolean;
|
|
21
|
+
/** Même identifiant de famille plusieurs fois dans `FAMS` d’une même personne. */
|
|
22
|
+
checkDuplicateFamsEntries?: boolean;
|
|
23
|
+
/** Cycle dans la remontée `FAMC` → parents (données impossibles biologiquement). */
|
|
24
|
+
checkAncestorCycles?: boolean;
|
|
25
|
+
};
|
|
26
|
+
export type AssertConsistencyOptions = {
|
|
27
|
+
failOn?: ConsistencySeverity;
|
|
28
|
+
};
|
|
29
|
+
/** Contrôles de base sur une personne (INDI, références d’actes). */
|
|
30
|
+
export declare function validatePerson(person: Person, context?: ValidatePersonContext): ModelConsistencyIssue[];
|
|
31
|
+
/** Agrège {@link validatePerson} pour toutes les personnes du graphe, plus les contrôles optionnels sur FAM. */
|
|
32
|
+
export declare function validateReadGed(readGed: ReadGed, options?: ValidateReadGedOptions): ModelConsistencyIssue[];
|
|
33
|
+
/** Lève une erreur si {@link validatePerson} retourne des problèmes selon `failOn` (défaut : seulement `error`). */
|
|
34
|
+
export declare function assertPersonConsistent(person: Person, context?: ValidatePersonContext & AssertConsistencyOptions): void;
|
|
35
|
+
/** Lève une erreur si {@link validateReadGed} retourne des problèmes selon `failOn` (défaut : seulement `error`). */
|
|
36
|
+
export declare function assertReadGedConsistent(readGed: ReadGed, options?: ValidateReadGedOptions & AssertConsistencyOptions): void;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Act, type TypeAct } from "../commons/Act";
|
|
2
|
+
import { DateAct } from "../commons/DateAct";
|
|
3
|
+
import { Place } from "../commons/Place";
|
|
4
|
+
import { ActMediaEdit } from "./ActMediaEdit";
|
|
5
|
+
import { NotesEdit } from "./NotesEdit";
|
|
6
|
+
/**
|
|
7
|
+
* API d’édition cohérente autour d’un {@link Act} existant (mutation in-place).
|
|
8
|
+
*/
|
|
9
|
+
export declare class ActEdit {
|
|
10
|
+
private readonly target;
|
|
11
|
+
constructor(target: Act);
|
|
12
|
+
get value(): Act;
|
|
13
|
+
setType(type: TypeAct): this;
|
|
14
|
+
setIndis(ids: readonly number[]): this;
|
|
15
|
+
setDateAct(date: DateAct | null): this;
|
|
16
|
+
setSdateAct(sdate: DateAct | null): this;
|
|
17
|
+
/** Remplace le lieu ; `null` efface le lieu attaché à l’acte. */
|
|
18
|
+
setPlace(place: Place | null): this;
|
|
19
|
+
setEvenDescription(text: string | null): this;
|
|
20
|
+
setEvenTypeLabel(label: string | null): this;
|
|
21
|
+
setEventPhrases(phrases: readonly string[]): this;
|
|
22
|
+
clearEventPhrases(): this;
|
|
23
|
+
appendEventPhrase(phrase: string): this;
|
|
24
|
+
setPreservedPrefix(lines: readonly string[]): this;
|
|
25
|
+
appendPreservedPrefixLine(line: string): this;
|
|
26
|
+
clearPreservedPrefix(): this;
|
|
27
|
+
setPreservedSuffix(lines: readonly string[]): this;
|
|
28
|
+
appendPreservedSuffixLine(line: string): this;
|
|
29
|
+
clearPreservedSuffix(): this;
|
|
30
|
+
notes(): NotesEdit;
|
|
31
|
+
multimedia(): ActMediaEdit;
|
|
32
|
+
/** Supprime toutes les notes rattachées à l’acte. */
|
|
33
|
+
clearNotes(): this;
|
|
34
|
+
/** Supprime tous les médias rattachés à l’acte. */
|
|
35
|
+
clearMultimedia(): this;
|
|
36
|
+
}
|
|
37
|
+
export declare function editAct(act: Act): ActEdit;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { MultimediaFile } from "../commons/MultimediaFile";
|
|
2
|
+
import type { Act } from "../commons/Act";
|
|
3
|
+
import { MultimediaFileEdit } from "./MultimediaFileEdit";
|
|
4
|
+
/**
|
|
5
|
+
* Médias rattachés à un {@link Act} : délègue à {@link Act.addMultimedia} / {@link Act.removeMultimedia}.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ActMediaEdit {
|
|
8
|
+
private readonly target;
|
|
9
|
+
constructor(target: Act);
|
|
10
|
+
get value(): Act;
|
|
11
|
+
/**
|
|
12
|
+
* Crée un {@link MultimediaFile} à partir d'un fichier local, l'ajoute et renvoie sa facade.
|
|
13
|
+
*/
|
|
14
|
+
addNewFromFile(file: File, ownerIndi?: number): MultimediaFileEdit;
|
|
15
|
+
addNewFromUri(uri: string, ownerIndi?: number, objeXrefId?: number | null): MultimediaFileEdit;
|
|
16
|
+
add(multimediaFile: MultimediaFile, ownerIndi?: number): this;
|
|
17
|
+
removeAt(index: number): this;
|
|
18
|
+
clear(): this;
|
|
19
|
+
at(index: number): MultimediaFileEdit;
|
|
20
|
+
}
|
|
21
|
+
export declare function editActMedia(act: Act): ActMediaEdit;
|