/**
* `ConverterConfig` — forme de configuration d'un convertisseur, contrat PARTAGE.
*
* OS#1331 : cette interface etait declaree dans `components/dialogs/PersistenceProcessDialogConfigs`,
* parti dans le paquet editeur, alors que `types/MenuConfig` (viewer) la reference. Un `import type`
* ne cree pas de dependance a l'execution, mais il en cree une A LA COMPILATION : le viewer ne
* pouvait plus type-checker sans l'editeur, ce qui rendait le decoupage en paquets impossible.
*
* Lecon a retenir : le test de frontiere (`architectureBoundary.test.ts`) ne garde que les aretes
* RUNTIME. Les aretes de type sont invisibles pour lui et doivent etre traquees separement avant tout
* decoupage.
*/
/**
* Nature de l'entree attendue par un convertisseur.
*
* sa#424 (lot 2) — les trois formats ETRANGERS (SankeyMATIC, STAN, e!Sankey)
* rejoignent cette liste. Ils vivaient auparavant hors du dialogue, derriere des
* `` caches du menu : ils n'avaient donc ni bandeau d'erreur,
* ni terminal, ni options, et un fichier illisible echouait en silence dans la
* console (famille du #381).
*
* Ils ne portent aucune option de format : `FormatConfigStructure` etant un
* `Record`, les tables d'attributs n'ont pas a les declarer, et les
* seaux d'options retombent sur `base`.
*/
export type FormatType = 'base' | 'excel' | 'json' | 'blob' | 'example_excel' | 'example_json' | 'sankeymatic' | 'stan' | 'esankey';
export interface ConverterConfig {
title: string;
launch_button_label: string;
success_status?: string;
failure_status?: string;
server_endpoint: string;
example_root?: 'sankeydata' | 'mfadata';
input: {
required: boolean;
format: {
options?: FormatType[];
};
};
output: {
required: boolean;
format: {
options?: FormatType[];
};
};
output_format_for_input?: Partial>;
no_default_input_format?: boolean;
output_overrides_excel?: Record;
output_overrides_json?: Record;
output_overrides_base?: Record;
input_overrides_excel?: Record;
input_overrides_json?: Record;
input_overrides_base?: Record;
output_options_visible_excel?: string[];
output_options_visible_json?: string[];
output_options_visible_base?: string[];
input_options_visible_excel?: string[];
input_options_visible_json?: string[];
input_options_visible_base?: string[];
hide_layout_tab?: boolean;
keep_terminal_open?: boolean;
}