/** * `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; }