import React, { Dispatch, MutableRefObject, RefObject, SetStateAction } from 'react'; import { Type_MacroTagGroup, Type_JSON } from '../types/Utils'; import { Class_DataTagGroup } from './TagGroup'; import { Class_EventBus } from './EventBus'; import { Class_PanelManager, Type_PanelMode } from './PanelManager'; import type { ConverterConfig } from './ConverterConfig'; import type { Type_TemplateSource } from './TemplateSource'; import { Class_NodeBase } from '../Elements/NodeBase'; import { Class_LinkElement } from '../Elements/Link'; import { Class_ElementStyle } from '../Elements/Element'; export type Type_AdditionalMenus = { external_top_buttons_item: { [x: string]: JSX.Element; }; extra_background_element: JSX.Element; additional_nav_item: JSX.Element[]; additional_bottom_item: JSX.Element[]; formations_menu: object; template_module_key: string[]; }; export type Type_MainZoneDocLayout = 'sheet-right' | 'sheet-left' | 'sheet-top' | 'sheet-bottom' | 'diagram-bottom' | 'window-bottom'; export declare const DOC_LAYOUTS_WITH_SHEET: Type_MainZoneDocLayout[]; export declare const DOC_LAYOUTS_BOTTOM: Type_MainZoneDocLayout[]; export type Type_SheetMode = 'grid' | 'json'; export declare const TOOLS_COLUMN_WIDTH_PX = 48; export declare const MENU_CONFIG_WIDTH_PCT = 20; export declare const MENU_CONFIG_MIN_WIDTH_PX = 420; export declare const TEMPLATE_GALLERY_WIDTH_PX = 300; export interface IType_DictHookRefSetterShowDialogComponents { ref_setter_modal_welcome_active_page: MutableRefObject>>; ref_setter_show_modal_welcome: MutableRefObject>>; ref_setter_show_modal_support: MutableRefObject>>; ref_setter_show_modal_file_converter: MutableRefObject>>; ref_setter_show_modal_rich_text_editor: MutableRefObject>>; ref_setter_show_shape_attribute_editor: MutableRefObject>>; ref_setter_show_value_type_editor: MutableRefObject>>; ref_setter_show_tooltip_editor: MutableRefObject>>; ref_setter_show_units_editor: MutableRefObject>>; ref_setter_show_unitary_process_editor: MutableRefObject>>; ref_setter_show_sankeymatic_editor: MutableRefObject>>; ref_setter_show_modal_export: MutableRefObject>>; ref_setter_show_modal_new_document: MutableRefObject>>; ref_setter_show_modal_png_saver: MutableRefObject>>; ref_setter_png_saver_res_h: MutableRefObject>>; ref_setter_png_saver_res_v: MutableRefObject>>; ref_setter_show_modal_pdf_saver: MutableRefObject>>; ref_setter_show_modal_styles: MutableRefObject>>; ref_setter_show_modal_apply_layout: MutableRefObject>>; ref_setter_show_modal_styles_containers: MutableRefObject>>; ref_setter_show_modal_preference: MutableRefObject>>; ref_setter_show_modal_templates_lib: MutableRefObject>>; ref_setter_show_gallery_source: MutableRefObject>>; ref_setter_show_spreadsheet: MutableRefObject>>; ref_setter_show_menu_node_icon: MutableRefObject>>; ref_setter_show_modal_import_icons: MutableRefObject>>; } /** * Define shortcut to update menu components * @export * @class Class_MenuConfig */ export declare class Class_MenuConfig { private _timeout_sequence; /** * Order of buttons in top menu * * @protected * @memberof Class_MenuConfig */ protected _menu_top_order: string[][]; protected _flow_color_origin_type: ('flow' | 'source' | 'target' | 'gradient' | 'auto')[]; protected _shape_type: string[]; protected _spreadsheet_freeze: boolean; protected _spreadsheet_placement_mode: 'auto' | 'none' | 'increment'; protected _spreadsheet_matrix_mode: 'cross' | 'value'; protected _tab_selected: 'shape' | 'name_label' | 'value_label' | 'icon' | 'stock'; get tab_selected(): "shape" | "icon" | "value_label" | "name_label" | "stock"; set tab_selected(tab_selected: "shape" | "icon" | "value_label" | "name_label" | "stock"); protected _main_zone_show_diagram: boolean; protected _main_zone_show_spreadsheet: boolean; protected _main_zone_show_doc: boolean; main_zone_doc_detached: boolean; protected _doc_external: { title: string; markdown: string; } | null; protected _main_zone_doc_layout: Type_MainZoneDocLayout; protected _main_zone_doc_bottom_px: number; protected _main_zone_split_ratio: number; protected _main_zone_doc_sheet_ratio: number; protected _main_zone_show_unitary: boolean; protected _main_zone_unitary_ratio: number; protected _main_zone_unitary_detached: boolean; protected _main_zone_spreadsheet_mode: Type_SheetMode; protected _tools_column_enabled: boolean; get tools_column_enabled(): boolean; set tools_column_enabled(v: boolean); protected _filter_bar_available: boolean; get filter_bar_available(): boolean; set filter_bar_available(v: boolean); protected _tools_column_open: boolean; protected _event_bus: Class_EventBus; protected _notifyMainZone(): void; get tools_column_open(): boolean; set tools_column_open(v: boolean); /** Largeur (px) réservée à droite par la colonne d'outils. * * Nulle quand la colonne est REPLIÉE (07/08) : repliée, elle ne laisse * qu'une poignée flottante, elle ne doit donc plus rogner le dessin — c'est * tout l'intérêt de la replier sur une page publiée, où chaque pixel de * diagramme compte. */ getToolsColumnWidthPx(): number; render_tag_group_editor: ((element_tag_name_prop: string, group_id: string) => JSX.Element | null) | null; context_recording_ui: { armed: (group_id: string) => string | null; arm: (group_id: string, tag_id: string) => void; disarm: () => void; } | null; panels: Class_PanelManager; protected _config_last_container: Type_PanelMode; get config_last_container(): Type_PanelMode; get config_panel_pinned(): boolean; set config_panel_pinned(v: boolean); /** Largeur (px) réservée à droite par la config quand elle est la barre * latérale (0 sinon). La réserve GLOBALE passe par panels.getSidebarReservedPx(). * ⚠️ OS#388 — Ne JAMAIS s'en servir pour déclencher un recadrage : la barre * latérale est partagée, donc changer de menu ancré fait basculer cette valeur * (270 -> 0) et sa symétrique (0 -> 270) sans que la réserve totale bouge. * Plus aucun consommateur interne ; conservé pour l'API publique. */ getConfigPanelPinnedReservedPx(): number; protected _filter_last_container: Type_PanelMode; get filter_last_container(): Type_PanelMode; /** Une page PUBLIÉE ouvre ce panneau ANCRÉ (07/08) : c'est sa légende, elle * accompagne la lecture au lieu de flotter par-dessus le diagramme. Posé UNE * fois par chargement — `filter_panel_docked_by_default` retient que le * défaut a été appliqué, pour qu'un lecteur qui dépingle ne se le voie pas * ré-imposer au rendu suivant. En édition, rien ne change : le filtre reste * une pop-up tant qu'on ne l'ancre pas. */ filter_panel_docked_by_default: boolean; applyPublishedFilterDock(): void; get filter_panel_pinned(): boolean; set filter_panel_pinned(v: boolean); filter_drawer_open: boolean; filter_drawer_width_px: number; /** Largeur (px) réservée à droite par le filtre quand il est la barre latérale * (0 sinon). La réserve GLOBALE passe par panels.getSidebarReservedPx(). * ⚠️ OS#388 — Même mise en garde que getConfigPanelPinnedReservedPx : ce n'est * pas un déclencheur de recadrage. Plus aucun consommateur interne. */ getFilterPanelPinnedReservedPx(): number; /** Réserve TOTALE de « chrome » à droite : colonne d'outils + barre latérale * unifiée. C'est l'offset commun de la colonne tableur/doc/unitaire * (MainZoneTabs) et de la réserve du diagramme — même système de fenêtrage * pour tous les panneaux dockés (#1243). */ getRightChromeReservedPx(): number; get main_zone_show_diagram(): boolean; set main_zone_show_diagram(v: boolean); get main_zone_show_spreadsheet(): boolean; set main_zone_show_spreadsheet(v: boolean); get main_zone_show_doc(): boolean; set main_zone_show_doc(v: boolean); get doc_external(): { title: string; markdown: string; } | null; set doc_external(v: { title: string; markdown: string; } | null); get main_zone_doc_layout(): Type_MainZoneDocLayout; set main_zone_doc_layout(v: Type_MainZoneDocLayout); get main_zone_doc_bottom_px(): number; set main_zone_doc_bottom_px(v: number); get main_zone_split_ratio(): number; set main_zone_split_ratio(v: number); get main_zone_doc_sheet_ratio(): number; set main_zone_doc_sheet_ratio(v: number); get main_zone_show_unitary(): boolean; set main_zone_show_unitary(v: boolean); get main_zone_unitary_ratio(): number; set main_zone_unitary_ratio(v: number); get main_zone_unitary_detached(): boolean; set main_zone_unitary_detached(v: boolean); get main_zone_spreadsheet_mode(): Type_SheetMode; set main_zone_spreadsheet_mode(v: Type_SheetMode); addMainZoneListener(l: () => void): () => void; /** Notifie les abonnés de la grande zone (barre du haut + MainZoneTabs). Exposé pour * que des features injectées (ex. l'onglet « Unit. » OS+) puissent re-rendre le bouton. */ notifyMainZone(): void; subscribe(topic: string, l: () => void): () => void; notify(topic: string): void; unitary_tab_available: boolean; last_import: { format: string; } | null; level_selection_applier: ((tagg_id: string, tag_id: string) => void) | null; toggleUnitaryTab: () => void; /** * Largeur (px) réservée à droite par le tableur/doc en mode split (0 sinon). Source unique de * vérité : calculée à partir de l'état (booléens + ratio) et de window.innerWidth, donc valable * pour N'IMPORTE quelle drawing area (maître ou vue recréée à la volée) sans état par instance. * Cf. MainZoneTabs (spreadsheetWidthPx) pour la disposition de l'overlay. */ getMainZoneRightReservedPx(): number; /** * Hauteur (px) réservée en bas pour la doc quand elle est en mode bas (diagram-bottom / window- * bottom). Symétrique de getMainZoneRightReservedPx : lue par window_fitting_height de toute * drawing area, donc le diagramme se recadre dans la hauteur restante. 0 dans les autres cas. */ getMainZoneBottomReservedPx(): number; /** * Sérialise l'état d'affichage de la grande zone (panneaux diagramme / tableur / doc visibles, * position de la doc, ratios) pour le persister dans le JSON du diagramme. Restauré par * mainZoneStateFromJSON au chargement. */ mainZoneStateToJSON(): Type_JSON; /** * Restaure l'état d'affichage de la grande zone depuis le JSON (clé `main_zone`). Les champs * absents conservent la valeur courante. Notifie les abonnés (barre du haut + MainZoneTabs). */ mainZoneStateFromJSON(json: Type_JSON): void; protected _waiting_processes: { [id: string]: NodeJS.Timeout; }; protected _waiting_time_for_processes: number; private _ref_close_filter_drawer; private _ref_toggle_filter_drawer; private _ref_toggle_search; private _ref_toolbar; private _ref_rerender_submodules_menus; private _ref_to_splashscreen_updater; private _ref_to_menu_updater; private _ref_to_submenu_updater; private _ref_to_spreadsheet; private _ref_to_doc; private _ref_menu_opened; private _ref_to_toolbar_link_visual_filter_updater; private _ref_to_toolbar_level_tag_filter_updater; private _ref_to_unitarytag_filter_updater; private _ref_to_toolbar_node_tag_updater; private _ref_to_toolbar_link_tag_updater; private _ref_to_toolbar_data_tag_updater; private _refs_to_btn_toogle_top_menus; protected _ref_to_menu_config_updater: MutableRefObject<() => void>; private _ref_to_inspector_updater; private _ref_to_menu_config_layout_updater; private _ref_to_menu_contextual_config_layout_updater; private _ref_to_config_DA_bg_image_updater; private _ref_to_menu_config_nodes_selection_updater; private _ref_to_menu_config_nodes_dim_selection_updater; private _ref_to_menu_config_nodes_stock_updater; private _ref_to_menu_config_apparence_updater; private _ref_to_menu_config_styles_updater; private _ref_to_menu_config_styles_editor_updater; private _ref_to_menu_config_nodes_tags_updater; private _ref_to_menu_config_nodes_dim_tags_updater; private _ref_to_menu_config_nodes_tooltips_updater; private _ref_to_menu_config_links_selection_updater; private _ref_to_menu_config_containers_selection_updater; private _ref_to_menu_config_links_data_updater; private _ref_to_menu_contextual_config_links_data_updater; private _ref_to_menu_config_links_tags_updater; private _ref_to_menu_config_links_tooltips_updater; private _ref_to_menu_config_tags_updater; private _ref_to_menu_context_nodes_updater; private _ref_to_menu_context_links_updater; private _ref_to_menu_context_drawing_area_updater; private _ref_to_toolbar_updater; private _ref_to_save_in_cache_indicator; private _ref_to_save_in_cache_indicator_value; private _ref_to_last_download_updater; private _ref_to_never_save_view_session; private _ref_to_never_save_view_session_value; private _ref_to_save_diagram_updater; private _ref_to_load_diagram_updater; private _ref_universal_converter_set_config; private _ref_to_updater_modal_apply_layout; /** If provided, row keys returning true will be greyed in UpdateModeGrid */ apply_layout_is_row_disabled?: (key: string) => boolean; /** Optional extra tab injected into UpdateModeGrid by OSP or other extensions */ extra_apply_layout_tab?: { label: string; /** If provided and returns true: tab header is greyed and content disabled */ disabled?: () => boolean; render: (attrs: string[], onToggle: (key: string) => void, t: (key: string) => string) => React.ReactNode; }; /** Optional extra menu items appended to the top export dropdown (PNG/PDF/SVG list). Injected by OSP or other extensions. */ extra_export_menu_items?: Array<{ type?: 'item'; key: string; label: string; icon?: React.ReactNode; onClick: () => void; disabled?: () => boolean; tooltip?: () => string; } | { type: 'group'; key: string; label: string; children: Array<{ key: string; label: string; icon?: React.ReactNode; onClick: () => void; disabled?: () => boolean; tooltip?: () => string; }>; }>; /** * sa#399 — Entrées supplémentaires du menu « Enregistrer » (dropdown dédié + groupe * Enregistrer du menu Fichier). Injectées par OSP (dépôt dans la bibliothèque de * briques) ou d'autres extensions. `label` et `hidden` sont des fonctions évaluées * au rendu : l'entrée suit la langue active et peut n'apparaître que pour un compte * connecté (une entrée cachée n'est pas rendue du tout, contrairement à `disabled`). */ extra_save_menu_items?: Array<{ key: string; label: () => string; icon?: React.ReactNode; onClick: () => void; disabled?: () => boolean; tooltip?: () => string; hidden?: () => boolean; }>; /** * sa#424 (lot 5) — Commandes ajoutées EN BAS du menu Fichier, après le dernier * séparateur. Sert au « Partager… » que la couche SaaS y pose : partager n'est * ni un format ni une destination d'enregistrement, c'est une commande à part. * * Point d'injection plutôt qu'appel direct : l'éditeur open-source ignore tout * de la publication (qui vit dans OS+ / SA), et doit continuer à l'ignorer. * Même contrat que `extra_save_menu_items` — `label` et `hidden` évalués au * rendu, pour suivre la langue et l'état de connexion. */ extra_file_menu_items?: Array<{ key: string; label: () => string; icon?: React.ReactNode; onClick: () => void; disabled?: () => boolean; tooltip?: () => string; hidden?: () => boolean; }>; /** * Optional handler that saves one standalone JSON file per view, packaged in a * single zip. Injected by OSP (views are an OSP feature). When set, the * persistence dialog's ``save_one_json_per_view`` JSON output option routes the * blob→json save through this instead of the single-file saveToJSON. */ save_all_views_as_json?: (kwargs: Type_JSON) => Promise | void; /** Optional extra menu items appended to the top "Aide" dropdown (after Visite guidée / Tutoriels). Injected by SA (e.g. Sankeythèque) or other extensions. */ extra_help_menu_items?: Array<{ key: string; label: string | (() => string); icon?: React.ReactNode; onClick: () => void; disabled?: () => boolean; tooltip?: () => string; }>; private _ref_to_modal_pref_updater; protected _ref_to_toolbar_bottom_updater: MutableRefObject<() => void>; protected _ref_to_sheet_tabs_updater: MutableRefObject<() => void>; protected _sheet_tabs_visible: boolean; private _ref_to_nodetag_filter_updater; private _ref_to_datatag_filter_updater; private _dict_setter_show_dialog; private _selector_only_visible_elements; private _ref_selected_style; private _ref_to_updater_node_disagregate; private _ref_to_updater_node_agregate; private _never_see_again; private _show_splashscreen; private _additionalMenus; constructor(); closeAllMenus(): void; /** * Open menu configuration * @memberof Class_MenuConfig */ openConfigMenu(): void; /** * Open menu configuration * @memberof Class_MenuConfig */ closeConfigMenu(): void; updateComponentRelatedToLayoutApparence(): void; /** * Update component with timeOut to avoid multiple refreshs * @memberof Class_MenuConfig */ updateComponentRelatedToNodesSelection(): void; /** * Update component with timeOut to avoid multiple refreshs * @memberof Class_MenuConfig */ updateComponentRelatedToNodesDimSelection(): void; updateComponentRelatedToStyles(): void; updateComponentRelatedToContainersApparence(): void; /** * Update component with timeOut to avoid multiple refreshs * @memberof Class_MenuConfig */ updateComponentRelatedToNodesTags(): void; /** * Update component with timeOut to avoid multiple refreshs * @memberof Class_MenuConfig */ updateComponentRelatedToNodesDimTags(): void; /** * Update component with timeOut to avoid multiple refreshs * @memberof Class_MenuConfig */ updateComponentRelatedToNodesTooltips(): void; /** * Update component with timeOut to avoid multiple refreshs * @memberof Class_MenuConfig */ updateComponentRelatedToLinksSelection(): void; updateComponentRelatedToContainerSelection(): void; /** * Update component with timeOut to avoid multiple refreshs * @memberof Class_MenuConfig */ updateComponentRelatedToLinksData(): void; /** * Update component with timeOut to avoid multiple refreshs * @memberof Class_MenuConfig */ updateComponentRelatedToLinksTags(): void; /** * Update component with timeOut to avoid multiple refreshs * @memberof Class_MenuConfig */ updateComponentRelatedToLinksTooltips(): void; /** * Update all menus using related refs to update function * @memberof Class_MenuConfig */ updateAllMenuComponents(): void; updateComponentPref(): void; updateMenuConfigComponent(): void; /** * Reconstruit le classeur du Tableur (si l'onglet est ouvert) en DEBOUNCE. Le rebuild * (buildAndApply) dispose+recrée l'unit Univer entier : c'est lourd, et il était appelé * directement à chaque update de nœuds/flux -> grosse latence dans la zone de dessin tableur * ouvert. Un id de process partagé collapse les rafales d'updates en un seul rebuild. * @memberof Class_MenuConfig */ updateSpreadsheet(): void; /** * Re-render all menus for node config * - SankeyNodeEdition * - OpenSankeyConfigurationNodesAttributes * - OpenSankeyConfigurationNodesTags * - MenuConfigurationNodesTooltip * @memberof Class_MenuConfig */ updateAllComponentsRelatedToNodes(): void; /** * Re-render all submenus for node config * - OpenSankeyConfigurationNodesAttributes * - OpenSankeyConfigurationNodesTags * - MenuConfigurationNodesTooltip * @memberof Class_MenuConfig */ updateAllComponentsRelatedToNodesConfig(): void; /** * Re-render all menus for link config * - SankeyMenuConfigurationLinks * - MenuConfigurationLinksData * - MenuConfigurationLinksAppearence * - MenuConfigurationLinksTags * @memberof Class_MenuConfig */ updateAllComponentsRelatedToLinks(): void; updateAllComponentsRelatedToContainers(): void; updateAllComponentsRelatedToContainersStyles(): void; /** * Re-render all submenus for link config * - MenuConfigurationLinksData * - MenuConfigurationLinksAppearence * - MenuConfigurationLinksTags * @memberof Class_MenuConfig */ updateAllComponentsRelatedToLinksConfig(): void; updateAllComponentsRelatedToContainersConfig(): void; /** * Re-render all submenus for tags config * - SankeyMenuConfigurationNodes * - OpenSankeyConfigurationNodesTags * - SankeyMenuConfigurationLinks * - OpenSankeyConfigurationLinksTags * - OpenSankeyConfigurationLinksData * - ToolbarBuilder * @memberof Class_MenuConfig */ updateAllComponentsRelatedToTags(): void; updateAllComponentsRelatedToLevelTags(): void; updateAllComponentsRelatedToNodeTags(): void; updateAllComponentsRelatedToFluxTags(): void; updateAllComponentsRelatedToDataTags(): void; updateAllComponentsRelatedToTagsType(type: Type_MacroTagGroup): void; updateAllComponentsRelatedToToolbar(): void; toggle_selector_on_visible_elements(): void; /** * Update modal Save diagram JSON * * @memberof Class_MenuConfig */ updateComponentSaveDiagramJSON(): void; /** * Update modal Load diagram JSON * * @memberof Class_MenuConfig */ updateComponentLoadDiagramJSON(): void; /** * Function to update ApplyLayoutDialog component, * can be overrided in submodule if we add subcomponent to ApplyLayoutDialog * * @memberof Class_MenuConfig */ updateComponentApplyLayout(): void; /** * Create a timed out process - Used to avoid multiple reloading of components * * The process_func is meant to be use by setTimeout(), * and inside setTimeOut 'this' keyword has another meaning, * so the current object must be passed directly as an argument. * see : https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#the_this_problem * * @protected * @param {string} process_id * @param {(_: Class_MenuConfig) => void} process_func * @memberof Class_MenuConfig */ _add_waiting_process(process_id: string, process_func: (_: Class_MenuConfig) => void): void; private _ref_to_drawer_sequence_data_tag_updater; /** * Launch datatagg sequence, it go through each tag of a group and draw sankey * * @param {Class_DataTagGroup} tagg * @memberof Class_MenuConfigOSP */ launchDataSequence(tagg: Class_DataTagGroup): void; /** * Cancel a timed out process - It wont happen * @protected * @param {string} process_id * @memberof Class_MenuConfig */ protected _cancel_waiting_process(process_id: string): void; updateComponentRelatedToApparence(): void; private _is_playing_sequence; private _is_sequence_loop; get ref_to_drawer_sequence_data_tag_updater(): MutableRefObject<(() => void)>; get is_playing_sequence(): boolean; set is_playing_sequence(b: boolean); get is_sequence_loop(): boolean; set is_sequence_loop(value: boolean); get timeout_sequence(): number; set timeout_sequence(value: number); get ref_rerender_submodules_menus(): React.MutableRefObject<() => void>; get ref_to_menu_updater(): MutableRefObject<() => void>; get ref_to_submenu_updater(): MutableRefObject<() => void>; get ref_to_spreadsheet(): MutableRefObject<(() => void)>; get ref_to_doc(): MutableRefObject<(() => void)>; get ref_menu_opened(): MutableRefObject<[boolean, (b: boolean) => void]>; get ref_to_splashscreen_updater(): MutableRefObject<() => void>; get never_see_again(): MutableRefObject; get show_splashscreen(): boolean; set show_splashscreen(_: boolean); init_refs_to_btn_toogle_top_menus(id: string): void; get refs_to_btn_toogle_top_menus(): { [id: string]: RefObject; }; get ref_to_menu_config_updater(): MutableRefObject<() => void>; get ref_to_inspector_updater(): MutableRefObject<() => void>; /** * #1255 — Onglet que l'inspecteur doit tenir ouvert, demandé par la visite guidée (l'onglet * actif est un état local d'InspectorPanel, inatteignable depuis le modèle). * * C'est une demande PERSISTANTE, pas une commande ponctuelle : l'inspecteur réinitialise son * onglet à chaque changement de composition de sélection, et le tour sélectionne justement un * élément avant de demander son onglet — une commande ponctuelle serait écrasée par cette * réinitialisation. Tant que la demande est posée, elle l'emporte ; un clic de l'utilisateur sur * un onglet la lève (il reprend la main), tout comme la fin de l'étape ou du tour. */ private _inspector_requested_tab_id; get inspector_requested_tab_id(): string | null; set inspector_requested_tab_id(_: string | null); updateInspector(): void; get ref_universal_converter_set_config(): React.MutableRefObject<(_: ConverterConfig, file_path: string, launch_at_opening: boolean, default_solver_options?: { with_reconciled?: boolean; with_completed?: boolean; }) => void>; get ref_to_menu_config_layout_updater(): MutableRefObject<() => void>; get ref_to_menu_contextual_config_layout_updater(): MutableRefObject<() => void>; get ref_to_config_DA_bg_image_updater(): MutableRefObject<() => void>; get ref_to_menu_context_drawing_area_updater(): MutableRefObject<(() => void)>; get ref_to_menu_config_nodes_selection_updater(): MutableRefObject<() => void>; get ref_to_menu_config_nodes_stock_updater(): MutableRefObject<() => void>; get ref_to_menu_config_nodes_dim_selection_updater(): MutableRefObject<() => void>; get ref_to_menu_config_apparence_updater(): MutableRefObject<() => void>; get ref_to_menu_config_styles_editor_updater(): MutableRefObject<() => void>; get ref_to_menu_config_nodes_tags_updater(): MutableRefObject<() => void>; get ref_to_menu_config_nodes_dim_tags_updater(): MutableRefObject<() => void>; get ref_to_menu_config_nodes_tooltips_updater(): MutableRefObject<(() => void)>; get ref_to_menu_context_nodes_updater(): MutableRefObject<(() => void)>; get ref_to_updater_node_disagregate(): MutableRefObject<(b: boolean) => void>; get ref_to_updater_node_agregate(): MutableRefObject<(b: boolean) => void>; get ref_to_menu_config_links_selection_updater(): MutableRefObject<() => void>; get ref_to_menu_config_containers_selection_updater(): MutableRefObject<() => void>; get ref_to_menu_config_links_data_updater(): MutableRefObject<() => void>; get ref_to_menu_contextual_config_links_data_updater(): MutableRefObject<() => void>; get ref_to_menu_config_styles_updater(): MutableRefObject<() => void>; get ref_to_menu_config_links_tags_updater(): MutableRefObject<() => void>; get ref_to_menu_config_links_tooltips_updater(): MutableRefObject<(() => void)>; get ref_to_menu_context_links_updater(): MutableRefObject<(() => void)>; get ref_to_menu_config_tags_updater(): { [_: string]: MutableRefObject<() => void>; }; get ref_to_save_in_cache_indicator(): MutableRefObject<(b: boolean) => void>; get ref_to_save_in_cache_indicator_value(): MutableRefObject; get ref_to_last_download_updater(): MutableRefObject<() => void>; get ref_to_never_save_view_session(): MutableRefObject<(b: boolean) => void>; get ref_to_never_save_view_session_value(): MutableRefObject; get ref_to_toolbar_updater(): MutableRefObject<() => void>; get ref_to_nodetag_filter_updater(): MutableRefObject<() => void>; get ref_to_datatag_filter_updater(): MutableRefObject<() => void>; get dict_setter_show_dialog(): IType_DictHookRefSetterShowDialogComponents; get ref_selected_style(): MutableRefObject; protected _presentation_composer_mode: Type_PanelMode; get presentation_composer_mode(): Type_PanelMode; set presentation_composer_mode(mode: Type_PanelMode); get ref_to_save_diagram_updater(): MutableRefObject<() => void>; get ref_to_load_diagram_updater(): MutableRefObject<() => void>; get ref_to_updater_modal_apply_layout(): MutableRefObject<() => void>; get ref_to_modal_pref_updater(): React.MutableRefObject<() => void>; get ref_to_toolbar_bottom_updater(): MutableRefObject<() => void>; get ref_to_sheet_tabs_updater(): MutableRefObject<() => void>; /** OS#85 — la barre des feuilles est-elle dépliée ? */ get sheet_tabs_visible(): boolean; /** Replie / déplie la barre des feuilles. Le recadrage du dessin (la barre du bas change * de hauteur) est déclenché par la barre elle-même, une fois le DOM à jour — la hauteur * réservée est LUE dans le DOM (DrawingArea.getBottomBarHeight). */ toggleSheetTabs(): void; get ref_to_menu_config_node_icon_updater(): React.MutableRefObject<() => void>; get r_editor_content_set_elements(): React.MutableRefObject<(_: Class_NodeBase[] | Class_LinkElement[], prefix: "name_label" | "value_label" | "icon") => void>; get r_rich_text_editor_refresh(): React.MutableRefObject<() => void>; get icon_selector_set_elements(): React.MutableRefObject<(_: Class_NodeBase[] | Class_LinkElement[], prefix: "name_label" | "value_label" | "icon") => void>; get ref_to_menu_config_node_name_label_bg_updater(): MutableRefObject<(() => void)>; get ref_to_menu_config_link_scientific_precision_updater(): MutableRefObject<(() => void)>; get ref_to_menu_config_containers_updater(): MutableRefObject<(() => void)>; get ref_to_menu_context_container_updater(): React.MutableRefObject<() => void>; get r_setter_editor_content_fo_node(): MutableRefObject> | undefined>; get r_value_formatting_set_elements(): React.MutableRefObject<(elements: Class_NodeBase[] | Class_ElementStyle[] | Class_LinkElement[], attributePath: string) => void>; get r_value_type_set_elements(): React.MutableRefObject<(_selected_links: Class_LinkElement[], _unit_data_tagg: Class_DataTagGroup, _refreshThis: () => void) => void>; get ref_close_filter_drawer(): MutableRefObject<((_: boolean) => void)>; get ref_toggle_filter_drawer(): MutableRefObject<(() => void)>; get ref_toggle_search(): MutableRefObject<(() => void)>; get ref_toolbar(): MutableRefObject<(() => void)>; get ref_to_toolbar_node_tag_updater(): MutableRefObject<(() => void)>; get ref_to_toolbar_link_tag_updater(): MutableRefObject<(() => void)>; get ref_to_toolbar_data_tag_updater(): MutableRefObject<(() => void)>; get ref_to_toolbar_level_tag_filter_updater(): MutableRefObject<() => void>; get ref_to_unitarytag_filter_updater(): MutableRefObject<() => void>; get ref_to_toolbar_link_visual_filter_updater(): MutableRefObject<(() => void)>; /** * Order of buttons in top menu * * @memberof Class_MenuConfig */ get menu_top_order(): string[][]; get spreadsheet_freeze(): boolean; set spreadsheet_freeze(_: boolean); get spreadsheet_placement_mode(): "auto" | "none" | "increment"; set spreadsheet_placement_mode(_: 'auto' | 'none' | 'increment'); get spreadsheet_matrix_mode(): "cross" | "value"; set spreadsheet_matrix_mode(_: 'cross' | 'value'); get flow_color_origin_type(): string[]; get shape_type(): string[]; get additionalMenus(): React.MutableRefObject; private _ref_to_menu_config_container_updater; private _ref_to_menu_context_container_updater; private _ref_to_menu_config_node_name_label_bg_updater; private _ref_to_menu_config_link_scientific_precision_updater; private _ref_to_menu_config_node_icon_updater; private _r_setter_editor_content_fo_node; private _r_editor_content_set_elements; private _r_rich_text_editor_refresh; private _icon_selector_set_elements; private _r_value_formatting_set_elements; private _r_value_type_set_elements; updateComponentRelatedToContainers(): void; }