import { Type_JSON } from '../types/Utils'; export type SankeyNodeAttrLocal = { local_aggregation?: boolean; shape_visible?: boolean; label_visible?: boolean; node_width?: number; node_height?: number; color?: string; shape?: 'ellipse' | 'rect' | 'arrow'; node_arrow_angle_factor?: number; node_arrow_angle_direction?: string; colorSustainable?: boolean; font_family?: string; font_size?: number; uppercase?: boolean; bold?: boolean; italic?: boolean; label_box_width?: number; label_color?: boolean; label_vert?: string; label_horiz?: string; label_background?: boolean; show_value?: boolean; label_vert_valeur?: string; label_horiz_valeur?: string; value_font_size?: number; label_horiz_shift?: number; name_label_horiz_shift?: number; value_label_horiz_shift?: number; label_horiz_valeur_shift?: number; value_label_vert_shift?: number; label_vert_valeur_shift?: number; label_vert_shift?: number; name_label_vert_shift?: number; position?: 'absolute' | 'relative' | 'parametric'; relative_dy?: number; relative_dx?: number; }; export type SankeyNodeStyle = { idNode: string; name: string; shape_visible: boolean; label_visible: boolean; node_width: number; node_height: number; color: string; shape: 'ellipse' | 'rect' | 'arrow'; node_arrow_angle_factor: number; node_arrow_angle_direction: string; colorSustainable: boolean; font_family: string; font_size: number; uppercase: boolean; bold: boolean; italic: boolean; label_box_width: number; label_color: boolean; label_vert: string; label_horiz: string; label_background: boolean; show_value: boolean; label_vert_valeur: string; label_horiz_valeur: string; value_font_size: number; value_label_horiz_shift: number; label_horiz_valeur_shift: number; value_label_vert_shift: number; label_vert_valeur_shift: number; label_vert_shift: number; name_label_vert_shift: number; label_horiz_shift: number; name_label_horiz_shift: number; position: 'absolute' | 'relative'; dy: number; }; export type SankeyNode = { idNode: string; name: string; dimensions: { [_: string]: { parent_name?: string; level?: number; children_tags?: string[]; parent_tag?: string; antitag?: boolean; force_show_children?: boolean; force_show_parent?: boolean; container_mode?: 'in_children_out_parent' | 'in_parent_out_children' | 'in_children_out_children' | 'in_parent_out_parent'; expanded_left?: boolean; expanded_right?: boolean; }; }; local?: SankeyNodeAttrLocal; colorParameter: string; colorTag: string; trade_close?: boolean; position?: string; x: number; y: number; x_label?: number; y_label?: number; tooltip_text?: string; inputLinksId: string[]; outputLinksId: string[]; tags: { [_: string]: string[]; }; style: string; }; export type SankeyLinkValue = { value: number | string; display_value: string; tags: { [_: string]: string[]; }; extension: { [_: string]: string; }; }; export type SankeyLinkValueDict = { [_: string]: SankeyLinkValue | SankeyLinkValueDict; }; export type SankeyLinkAttrLocal = { user_scale?: number; orientation?: string; left_horiz_shift?: number; right_horiz_shift?: number; starting_tangeant?: number; ending_tangeant?: number; starting_curve?: number; ending_curve?: number; vert_shift?: number; curvature?: number; curved?: boolean; recycling?: boolean; arrow_size?: number; label_position?: string; orthogonal_label_position?: string; label_on_path?: boolean; label_pos_auto?: boolean; arrow?: boolean; color?: string; opacity?: number; dashed?: boolean; label_visible?: boolean; label_font_size?: number; text_color?: string; to_precision?: boolean; scientific_precision?: boolean; nb_scientific_precision?: number; font_family?: string; label_unit_visible?: boolean; label_unit?: string; label_unit_factor?: number; custom_digit?: boolean; nb_digit?: number; gradient?: boolean; value_label_is_visible?: boolean; color_rule?: string; }; export type SankeyLinkStyle = { idLink: string; name: string; orientation: string; arrow: boolean; color: string; opacity: number; left_horiz_shift: number; right_horiz_shift: number; vert_shift: number; curvature: number; curved: boolean; recycling: boolean; arrow_size: number; dashed: boolean; label_position: string; orthogonal_label_position: string; label_on_path: boolean; label_pos_auto: boolean; label_visible: boolean; label_font_size: number; text_color: string; to_precision: boolean; scientific_precision: boolean; nb_scientific_precision: number; font_family: string; label_unit_visible: boolean; label_unit: string; custom_digit: boolean; nb_digit: number; starting_tangeant: number; ending_tangeant: number; color_rule: string; }; export type SankeyLink = { idLink: string; idSource: string; idTarget: string; colorTag: string; value: SankeyLinkValueDict | SankeyLinkValue; tooltip_text?: string; x_label?: number; y_label?: number; drag_label_offset?: number; position_offset_label?: number; style: string; local?: SankeyLinkAttrLocal; }; export type TagsGroup = { group_name: string; show_legend: boolean; use_colors?: boolean; color_map: string; tags: { [_: string]: { name: string; shape?: string; color?: string; selected: boolean; }; }; banner: string; activated: boolean; siblings: string[]; }; export type TagsCatalog = { [_: string]: TagsGroup; }; export type display_styleType = { filter: number; filter_label: number; font_family: string[]; }; export type SankeyData = { version: string; file_name?: string; couleur_fond_sankey: string; displayed_node_selector: boolean; displayed_link_selector: boolean; user_scale: number; maximum_flux?: number | null; minimum_flux?: number | null; maximum_node?: number | null; minimum_node?: number | null; accordeonToShow: string[]; style_node: { [_: string]: SankeyNodeStyle; }; style_link: { [_: string]: SankeyLinkStyle; }; show_structure: 'structure' | 'data' | 'reconciled' | 'free_value' | 'free_interval'; fit_screen: boolean; height: number; width: number; h_space: number; v_space: number; left_shift: number; right_shift: number; legend_position: number[]; display_legend_scale: boolean; legend_police: number; mask_legend: boolean; legend_bg_color: string; legend_bg_opacity: number; legend_bg_border: boolean; legend_show_dataTags: boolean; nodes: { [_: string]: SankeyNode; }; links: { [_: string]: SankeyLink; }; display_style: display_styleType; linkZIndex: string[]; grid_square_size: number; grid_visible: boolean; nodeTags: TagsCatalog; dataTags: TagsCatalog; fluxTags: TagsCatalog; levelTags: TagsCatalog; colorMap: string; nodesColorMap: string; linksColorMap: string; legend_width: number; node_label_separator: string; node_label_separator_part: string; }; export interface treeFolderType { id: string; name: string; children?: treeFolderType[]; checked?: 1 | 0.5 | 0; } export type postProcessLoadExcelFuncType = (server_data: SankeyData) => void; export interface ConvertSankeyValue { color_tag?: { [key: string]: string; }; extension: { mini: number; maxi: number; free_mini: number; free_maxi: number; }; } export interface ConvertSankeyNode { id?: string; orientation?: string; subchain?: string; definition?: string; tooltips: string[]; total_input_offset: number; input_offsets: number[]; total_output_offset: number; input_links?: number[]; output_links?: number[]; output_offsets: number[]; horizontal_index: number; visible?: number | boolean; node_visible?: boolean; label_visible?: boolean; shape_visible?: number | boolean; trade_close: boolean; show_value: number | boolean; type?: string; node_width?: number; node_height?: number; shape?: string; color?: string; colorSustainable?: boolean; not_to_scale?: boolean; not_to_scale_direction?: string; display?: boolean; display_style?: { label_vert: string; label_horiz: string; font_family: string; font_size: number; uppercase: boolean; bold: boolean; italic: boolean; label_vert_valeur: string; label_horiz_valeur: string; value_font_size: number; label_box_width: number; label_color: boolean; }; } export interface ConvertSankeyLink { classif?: string; title_length?: number; raw_value?: number; old_display_value?: string; old_color?: string; y_sd_label?: string; x_sd_label?: string; visible?: boolean; label_visible?: boolean; text_same_color?: boolean | string; frozen?: boolean; link_reverse?: boolean; display_unit?: string; type?: string; tooltip_text?: string; data_value?: number | number[]; data_source?: string | string[]; agregated_data_value?: number; conv?: number[]; natural_unit?: string; value: number | number[]; value2: SankeyLinkValue | SankeyLinkValueDict; display_value?: string | string[]; data?: boolean; subchain?: string; mini?: number | number[]; maxi?: number | number[]; dashed: number | boolean; } export interface ConvertSankeyData { units_names: string[]; display_style: { trade_close?: boolean; unit?: boolean | number; font_family_selected?: string; font_size: number; }; node_width: number; node_height: number; show_uncert?: boolean; tags_catalog?: TagsCatalog; sankey_type?: string; flux_types?: string[]; use_flux_types?: boolean; subchains?: string[]; links?: { [region_name: string]: ConvertSankeyLink[]; }; nodes2tooltips: unknown; nodes2units_conv: unknown; error: string; max_vertical_offset: number; region_names?: string[]; region_name?: string; nodes_names: string[]; filtered_nodes: SankeyNode[]; filtered_nodes_names: string[]; filtered_links: SankeyLink[]; previous_filter: number; trade_hspace?: number; trade_close_hspace?: number; trade_close_vspace?: number; trade_sectors?: string[]; periods?: boolean; nodeTags: { group_name: string; show_legend: boolean; tags: string[]; selected_tags: string[]; }[]; agregated_level?: number; show_structure: boolean | string; show_data?: boolean; view: { id: string; view_data: object; nom: string; details: string; }[]; filter_link_value: number; filter_label: number; node_label_separator_first: boolean; } export type ConvertDataLegacyFuncType = (json_object: Type_JSON) => void; export type layout_type = { layout: SankeyData; }; export type GetLinkValueFuncType = (data: SankeyData, idLink: string, up?: boolean) => SankeyLinkValue; export type DefaultNodeFuncType = (data: SankeyData) => SankeyNode; export type DefaultNodeStyleFuncType = () => SankeyNodeStyle; export type DefaultNodeSectorStyleFuncStyle = () => SankeyNodeStyle; export type DefaultNodeProductStyleFuncStyle = () => SankeyNodeStyle; export type DefaultLinkStyleFuncType = () => SankeyLinkStyle; export type CreateObjectFuncType = (data: SankeyData, l: string[]) => SankeyLinkValueDict | SankeyLinkValue; export type DefaultLinkFuncType = (data: SankeyData) => SankeyLink; export type ReturnValueNodeFuncType = (data: SankeyData, n: SankeyNode, k: keyof SankeyNodeAttrLocal | keyof SankeyNodeStyle) => string | number | boolean; export type ReturnLocalNodeValueFuncType = (n: SankeyNode, key: keyof SankeyNodeAttrLocal) => string | number | boolean | null | undefined; export type ReturnValueLinkFuncType = (data: SankeyData, l: SankeyLink, k: keyof SankeyLinkAttrLocal | keyof SankeyLinkStyle) => string | number | boolean; export type ReturnLocalLinkValueFuncType = (n: SankeyLink, key: keyof SankeyLinkAttrLocal) => string | number | boolean | null | undefined; export type AssignLinkLocalAttributeFuncType = (n: SankeyLink, k: keyof SankeyLinkAttrLocal, v: boolean | string | number) => void; export type compute_initial_colorsFType = (data: SankeyData) => void; export type convert_booleanFType = (data: SankeyData) => void; export type compute_flux_maxFType = (data: SankeyData) => void; export type convert_nodesFuncType = (data: SankeyData) => void; export type convert_linksFuncType = (data: SankeyData) => void; export type convert_tagsFuncType = (data: SankeyData) => void; export interface DataSuiteType { is_catalog?: boolean; view?: { id: string; view_data: object; nom: string; details: string; }[]; }