import * as d3 from '../d3Modules'; import type { Type_BaseElementPosition } from '../types/elementBasics'; import type { Class_DrawingArea } from '../types/DrawingArea'; import { AttributeConfig, IconLabelAttributeTypes, LinkLabelSpecificValues, LinkShapeSpecificValues, NameLabelAttributeTypes, NodeShapeSpecificAttributeTypes, ShapeAttributeTypes, StockLabelAttributeTypes, ValueLabelAttributeTypes, ConfigType } from './ElementsAttributesConfig'; export declare const TRANSLATABLE_TEXT_ATTRIBUTES: ReadonlySet; export declare abstract class Class_BaseElement { d3_selection: d3.Selection | null; private _drawing_area; protected _is_visible: boolean; protected _visibility_fingerprint: string; private _is_currently_deleted; protected _position: Type_BaseElementPosition; protected _is_selected: boolean; protected _svg_parent_group: string; protected _id: string; protected _is_mouse_over: boolean; protected _is_mouse_grabbed: boolean; constructor(id: string, drawing_area: Class_DrawingArea, is_visible: boolean, svg_parent_group: string); protected _process_or_bypass(process_func: () => void): void; setEventsListeners(): void; delete(): void; protected cleanForDeletion(): void; copyFrom(element_to_copy: Class_BaseElement): void; protected _copyFrom(element: Class_BaseElement): void; draw(): void; /** * OS#1246 — invalide les caches de géométrie recalculés à chaque draw. * Auparavant porté par les surcharges de unDraw() (appelé à chaque draw) ; * extrait ici pour rester exécuté malgré la réutilisation du racine. * No-op par défaut ; surchargé là où existe un cache paresseux (Link). */ protected _invalidateDrawCaches(): void; /** * Gate affichage pour le data-join (OS#1246). Détermine si l'élément doit * avoir un dans le DOM. Surchargée par les sous-classes qui ont des * conditions d'affichage supplémentaires (ex. seuil de valeur des flux), * de sorte que le passage sous condition déclenche bien un exit (unDraw) * au lieu de laisser un orphelin dans le DOM réutilisé. */ _shouldBeDrawn(): boolean; protected _draw(): void; unDraw(): void; protected _initDraw(): void; setPosXY(x: number, y: number): void; protected applyPosition(): void; get position_x(): number; set position_x(_: number); get position_y(): number; set position_y(_: number); get drawing_area(): Class_DrawingArea; get is_visible(): boolean; /** * sa#283 lot 4 — état de visibilité PROPRE : le seul drapeau `_is_visible`, celui que * `setVisible()` / `setInvisible()` posent, SANS la porte du diagramme (`sankey.is_visible`) * ni les portes dérivées des sous-classes (tags, niveaux, flux visibles, modes englobants). * * Lecteur légitime : un overlay RÉVERSIBLE qui doit mémoriser l'état d'origine avant de * masquer, puis le restaurer à l'identique (vues contextuelles, `ContextsRuntime`). Pour * savoir si un élément s'affiche, c'est `is_visible` qu'il faut lire, pas ceci. */ get is_own_visible(): boolean; get visibility_fingerprint(): string; setVisible(): void; setInvisible(): void; updateVisibilityFingerprint(): void; setSelected(): void; setUnSelected(): void; get is_selected(): boolean; protected drawAsSelected(): void; get is_locked(): boolean; get id(): string; get sankey(): import("../types/Sankey").Class_Sankey; get svg_parent_group(): string; get svg_group(): string; isMouseOver(): boolean; setMouseOver(): void; unsetMouseOver(): void; protected eventSimpleLMBClick(_event: React.MouseEvent): void; protected eventDoubleLMBClick(_event: React.MouseEvent): void; protected eventSimpleRMBClick(_event: React.MouseEvent): void; protected eventMaintainedClick(_event: React.MouseEvent): void; protected eventReleasedClick(_event: React.MouseEvent): void; protected eventMouseOver(_event: React.MouseEvent): void; protected eventMouseOut(_event: React.MouseEvent): void; protected eventMouseMove(_event: React.MouseEvent): void; protected eventMouseDragStart(_event: d3.D3DragEvent): void; protected eventMouseDrag(_event: d3.D3DragEvent): void; protected eventMouseDragEnd(_event: d3.D3DragEvent): void; } export declare abstract class Class_ProtoElement extends Class_BaseElement { protected _clickTimer: NodeJS.Timeout | null; protected _clickDelay: number; protected _storage: StorageType; protected _config: ConfigType; protected _suspend_actions: boolean; protected _position: Type_BaseElementPosition; protected _style: Class_ElementStyle[]; constructor(id: string, drawing_area: Class_DrawingArea, svg_parent_group: string, style: Class_ElementStyle); eventSimpleLMBClick(event: React.MouseEvent): void; /** Simple clic CONFIRMÉ (après désambiguïsation). Surchargé par les feuilles. */ protected onSingleLMBClick(_event: React.MouseEvent): void; /** Double clic CONFIRMÉ. Surchargé par les feuilles (édition, etc.). */ protected onDoubleLMBClick(_event: React.MouseEvent): void; protected createDynamicProperties(): void; get attributes(): StorageType; set attributes(_: StorageType); getStyleWithAttr(k: keyof ConfigType): Class_ElementStyle; getStylesWithAttr(k: keyof ConfigType): Class_ElementStyle[]; getStyleProperty(k: keyof ConfigType): unknown; getElementProperty(k: keyof ConfigType): unknown; get style(): readonly Class_ElementStyle[]; /** * Ajoute un style à l'élément * Le style est ajouté en fin de liste (donc prioritaire) */ addStyle(style: Class_ElementStyle): void; /** * Retire un style de l'élément par son instance */ removeStyle(style: Class_ElementStyle): void; /** * Retire un style de l'élément par son ID */ removeStyleById(styleId: string): void; /** * Retire tous les styles sauf le style par défaut */ removeAllStyles(): void; /** * Remplace tous les styles (sauf le défaut) par de nouveaux styles * Utile pour des opérations en batch */ replaceStyles(styles: Class_ElementStyle[]): void; /** * Vérifie si un style est appliqué à l'élément */ hasStyle(styleId: string): boolean; /** * Obtient un style par son ID */ getStyleById(styleId: string): Class_ElementStyle | undefined; /** * Obtient tous les styles sauf le style par défaut */ getCustomStyles(): Class_ElementStyle[]; resetAttributes(): void; shouldSaveAttribute(key: keyof ConfigType, value: string | number | boolean | undefined): boolean; useDefaultStyle(): void; isAttributeOverloaded(attr: keyof ConfigType): boolean; delete_attribute(k: keyof ConfigType): void; protected cleanForDeletion(): void; isEqual(_: this): boolean; copyAttrFrom(element_to_copy: Class_ProtoElement): void; snapshotStorage(): Partial; restoreStorage(snapshot: Partial): void; protected _copyFrom(element_to_copy: Class_ProtoElement): void; /** * OS#1246 — « la représentation DOM de cet élément est-elle à jour ? ». * * Cherchait auparavant un sous le groupe parent : l'EXISTENCE de * l'id valait « synchronisé ». Insuffisant depuis les data-joins — un enter * peut pré-créer un VIDE, que l'ancienne version déclarait synchronisé, * si bien que le nœud sautait le dessin et laissait un flux invisible. * On vérifie donc la sélection vivante ET un marqueur de CONTENU. Au passage * c'est moins cher : plus de double requête DOM par élément et par frame. */ isRelatedD3SelectionPresentAndSynced(): boolean; /** * Marqueur de contenu dessiné, complément de * isRelatedD3SelectionPresentAndSynced(). Base : la présence du suffit. * Surchargé là où un peut légitimement être présent mais vide (Link). */ protected _hasDrawnContent(): boolean; protected _process_or_bypass(process_func: () => void): void; saveUndo(f: (_: Class_ProtoElement) => void): void; saveRedo(f: (_: Class_ProtoElement) => void): void; } export declare abstract class Class_BaseShape extends Class_ProtoElement { selected_label_prefix: 'name_label' | 'value_label' | 'icon' | null; shape_visible: ShapeAttributeTypes['visible']; shape_type: ShapeAttributeTypes['type']; shape_min_width: ShapeAttributeTypes['min_width']; shape_min_height: ShapeAttributeTypes['min_height']; shape_color_visible: ShapeAttributeTypes['color_visible']; shape_color: ShapeAttributeTypes['color']; shape_opacity: ShapeAttributeTypes['opacity']; shape_color_sustainable: ShapeAttributeTypes['color_sustainable']; shape_border_visible: ShapeAttributeTypes['border_visible']; shape_border_color: ShapeAttributeTypes['border_color']; shape_border_color_sustainable: ShapeAttributeTypes['border_color_sustainable']; shape_border_thickness: ShapeAttributeTypes['border_thickness']; shape_border_dashed: ShapeAttributeTypes['border_dashed']; shape_border_radius: ShapeAttributeTypes['border_radius']; shape_shadow_visible: ShapeAttributeTypes['shadow_visible']; name_label_has_fo: NameLabelAttributeTypes['has_fo']; name_label_fo_content: NameLabelAttributeTypes['fo_content']; name_label_is_visible: NameLabelAttributeTypes['is_visible']; name_label_font_family: NameLabelAttributeTypes['font_family']; name_label_font_size: NameLabelAttributeTypes['font_size']; name_label_uppercase: NameLabelAttributeTypes['uppercase']; name_label_bold: NameLabelAttributeTypes['bold']; name_label_italic: NameLabelAttributeTypes['italic']; name_label_color: NameLabelAttributeTypes['color']; name_label_separator: NameLabelAttributeTypes['separator']; name_label_separator_part: NameLabelAttributeTypes['separator_part']; name_label_source: NameLabelAttributeTypes['source']; name_label_text: NameLabelAttributeTypes['text']; name_label_template: NameLabelAttributeTypes['template']; name_label_tag_group_id: NameLabelAttributeTypes['tag_group_id']; name_label_dimension_id: NameLabelAttributeTypes['dimension_id']; name_label_horiz: NameLabelAttributeTypes['horiz']; name_label_vert: NameLabelAttributeTypes['vert']; name_label_horiz_shift: NameLabelAttributeTypes['horiz_shift']; name_label_vert_shift: NameLabelAttributeTypes['vert_shift']; name_label_box_width: NameLabelAttributeTypes['box_width']; name_label_vertical_text: NameLabelAttributeTypes['vertical_text']; name_label_text_angle: NameLabelAttributeTypes['text_angle']; name_label_position_x: NameLabelAttributeTypes['position_x']; name_label_position_y: NameLabelAttributeTypes['position_y']; name_label_position_offset: NameLabelAttributeTypes['position_offset']; name_label_text_align: NameLabelAttributeTypes['text_align']; name_label_inside_horiz: NameLabelAttributeTypes['inside_horiz']; name_label_inside_vert: NameLabelAttributeTypes['inside_vert']; name_label_scientific_notation: ValueLabelAttributeTypes['scientific_notation']; name_label_significant_digits: ValueLabelAttributeTypes['significant_digits']; name_label_nb_significant_digits: ValueLabelAttributeTypes['nb_significant_digits']; name_label_custom_digit: ValueLabelAttributeTypes['custom_digit']; name_label_nb_digit: ValueLabelAttributeTypes['nb_digit']; name_label_unit_visible: ValueLabelAttributeTypes['unit_visible']; name_label_unit_type: ValueLabelAttributeTypes['unit_type']; name_label_unit: ValueLabelAttributeTypes['unit']; name_label_unit_factor: ValueLabelAttributeTypes['unit_factor']; name_label_background_visible: NameLabelAttributeTypes['background_visible']; name_label_background_color: NameLabelAttributeTypes['background_color']; name_label_background_opacity: NameLabelAttributeTypes['background_opacity']; name_label_background_type: NameLabelAttributeTypes['background_type']; name_label_background_min_width: NameLabelAttributeTypes['background_min_width']; name_label_background_min_height: NameLabelAttributeTypes['background_min_height']; name_label_background_color_visible: NameLabelAttributeTypes['background_color_visible']; name_label_background_color_sustainable: NameLabelAttributeTypes['background_color_sustainable']; name_label_background_border_visible: NameLabelAttributeTypes['background_border_visible']; name_label_background_border_color: NameLabelAttributeTypes['background_border_color']; name_label_background_border_color_sustainable: NameLabelAttributeTypes['background_border_color_sustainable']; name_label_background_border_thickness: NameLabelAttributeTypes['background_border_thickness']; name_label_background_border_dashed: NameLabelAttributeTypes['background_border_dashed']; name_label_background_border_radius: NameLabelAttributeTypes['background_border_radius']; value_label_has_fo: ValueLabelAttributeTypes['has_fo']; value_label_fo_content: ValueLabelAttributeTypes['fo_content']; value_label_is_visible: ValueLabelAttributeTypes['is_visible']; value_label_font_family: ValueLabelAttributeTypes['font_family']; value_label_font_size: ValueLabelAttributeTypes['font_size']; value_label_uppercase: ValueLabelAttributeTypes['uppercase']; value_label_bold: ValueLabelAttributeTypes['bold']; value_label_italic: ValueLabelAttributeTypes['italic']; value_label_color: ValueLabelAttributeTypes['color']; value_label_horiz: ValueLabelAttributeTypes['horiz']; value_label_vert: ValueLabelAttributeTypes['vert']; value_label_horiz_shift: ValueLabelAttributeTypes['horiz_shift']; value_label_vert_shift: ValueLabelAttributeTypes['vert_shift']; value_label_box_width: ValueLabelAttributeTypes['box_width']; value_label_vertical_text: ValueLabelAttributeTypes['vertical_text']; value_label_text_angle: ValueLabelAttributeTypes['text_angle']; value_label_position_x: ValueLabelAttributeTypes['position_x']; value_label_position_y: ValueLabelAttributeTypes['position_y']; value_label_position_offset: ValueLabelAttributeTypes['position_offset']; value_label_text_align: ValueLabelAttributeTypes['text_align']; value_label_inside_horiz: ValueLabelAttributeTypes['inside_horiz']; value_label_inside_vert: ValueLabelAttributeTypes['inside_vert']; value_label_stick_to_label: ValueLabelAttributeTypes['stick_to_label']; value_label_background_visible: ValueLabelAttributeTypes['background_visible']; value_label_background_color: ValueLabelAttributeTypes['background_color']; value_label_background_opacity: ValueLabelAttributeTypes['background_opacity']; value_label_background_type: ValueLabelAttributeTypes['background_type']; value_label_background_min_width: ValueLabelAttributeTypes['background_min_width']; value_label_background_min_height: ValueLabelAttributeTypes['background_min_height']; value_label_background_color_visible: ValueLabelAttributeTypes['background_color_visible']; value_label_background_color_sustainable: ValueLabelAttributeTypes['background_color_sustainable']; value_label_background_border_visible: ValueLabelAttributeTypes['background_border_visible']; value_label_background_border_color: ValueLabelAttributeTypes['background_border_color']; value_label_background_border_thickness: ValueLabelAttributeTypes['background_border_thickness']; value_label_background_border_dashed: ValueLabelAttributeTypes['background_border_dashed']; value_label_background_border_radius: ValueLabelAttributeTypes['background_border_radius']; value_label_scientific_notation: ValueLabelAttributeTypes['scientific_notation']; value_label_significant_digits: ValueLabelAttributeTypes['significant_digits']; value_label_nb_significant_digits: ValueLabelAttributeTypes['nb_significant_digits']; value_label_custom_digit: ValueLabelAttributeTypes['custom_digit']; value_label_nb_digit: ValueLabelAttributeTypes['nb_digit']; value_label_in_out_display_mode: ValueLabelAttributeTypes['in_out_display_mode']; value_label_unit_visible: ValueLabelAttributeTypes['unit_visible']; value_label_unit_type: ValueLabelAttributeTypes['unit_type']; value_label_unit: ValueLabelAttributeTypes['unit']; value_label_unit_factor: ValueLabelAttributeTypes['unit_factor']; value_label_on_path: LinkLabelSpecificValues['on_path']; value_label_pos_auto: LinkLabelSpecificValues['pos_auto']; value_label_text_source: LinkLabelSpecificValues['text_source']; name_label_on_path: LinkLabelSpecificValues['on_path']; name_label_pos_auto: LinkLabelSpecificValues['pos_auto']; name_label_text_source: LinkLabelSpecificValues['text_source']; name_label_flux_tag_group_id: LinkLabelSpecificValues['flux_tag_group_id']; stock_label_is_visible: StockLabelAttributeTypes['is_visible']; stock_label_font_family: StockLabelAttributeTypes['font_family']; stock_label_font_size: StockLabelAttributeTypes['font_size']; stock_label_color: StockLabelAttributeTypes['color']; stock_label_bold: StockLabelAttributeTypes['bold']; stock_label_italic: StockLabelAttributeTypes['italic']; stock_label_uppercase: StockLabelAttributeTypes['uppercase']; stock_label_horiz: StockLabelAttributeTypes['horiz']; stock_label_vert: StockLabelAttributeTypes['vert']; stock_label_inside_horiz: StockLabelAttributeTypes['inside_horiz']; stock_label_inside_vert: StockLabelAttributeTypes['inside_vert']; stock_label_box_width: StockLabelAttributeTypes['box_width']; stock_label_pos_auto: StockLabelAttributeTypes['pos_auto']; stock_label_background_visible: StockLabelAttributeTypes['background_visible']; stock_label_background_color: StockLabelAttributeTypes['background_color']; stock_label_background_opacity: StockLabelAttributeTypes['background_opacity']; stock_label_background_color_visible: StockLabelAttributeTypes['background_color_visible']; stock_label_background_color_sustainable: StockLabelAttributeTypes['background_color_sustainable']; stock_label_background_border_visible: StockLabelAttributeTypes['background_border_visible']; stock_label_background_border_color: StockLabelAttributeTypes['background_border_color']; stock_label_background_border_color_sustainable: StockLabelAttributeTypes['background_border_color_sustainable']; stock_label_background_border_thickness: StockLabelAttributeTypes['background_border_thickness']; stock_label_background_border_dashed: StockLabelAttributeTypes['background_border_dashed']; stock_label_background_border_radius: StockLabelAttributeTypes['background_border_radius']; stock_label_scientific_notation: StockLabelAttributeTypes['scientific_notation']; stock_label_significant_digits: StockLabelAttributeTypes['significant_digits']; stock_label_nb_significant_digits: StockLabelAttributeTypes['nb_significant_digits']; stock_label_custom_digit: StockLabelAttributeTypes['custom_digit']; stock_label_nb_digit: StockLabelAttributeTypes['nb_digit']; stock_label_unit_visible: StockLabelAttributeTypes['unit_visible']; stock_label_unit_type: StockLabelAttributeTypes['unit_type']; stock_label_unit: StockLabelAttributeTypes['unit']; stock_label_unit_factor: StockLabelAttributeTypes['unit_factor']; shape_orphan_node_visible: boolean; shape_position_type: NodeShapeSpecificAttributeTypes['position_type']; shape_position_dx: NodeShapeSpecificAttributeTypes['position_dx']; shape_position_dy: NodeShapeSpecificAttributeTypes['position_dy']; shape_anchor_align_vertical: NodeShapeSpecificAttributeTypes['anchor_align_vertical']; shape_anchor_align_horizontal: NodeShapeSpecificAttributeTypes['anchor_align_horizontal']; shape_io_reorg_mode: NodeShapeSpecificAttributeTypes['io_reorg_mode']; shape_link_inset: NodeShapeSpecificAttributeTypes['link_inset']; shape_hatch: NodeShapeSpecificAttributeTypes['hatch']; shape_is_reference_stock: NodeShapeSpecificAttributeTypes['is_reference_stock']; shape_line_flip: NodeShapeSpecificAttributeTypes['line_flip']; shape_line_x1: NodeShapeSpecificAttributeTypes['line_x1']; shape_line_y1: NodeShapeSpecificAttributeTypes['line_y1']; shape_line_x2: NodeShapeSpecificAttributeTypes['line_x2']; shape_line_y2: NodeShapeSpecificAttributeTypes['line_y2']; shape_position_u_locked: boolean; shape_position_v_locked: boolean; shape_is_locked: boolean; shape_margin_bottom: ShapeAttributeTypes['margin_bottom']; shape_margin_top: ShapeAttributeTypes['margin_top']; shape_margin_left: ShapeAttributeTypes['margin_left']; shape_margin_right: ShapeAttributeTypes['margin_right']; icon_color: IconLabelAttributeTypes['color']; icon_is_visible: IconLabelAttributeTypes['is_visible']; icon_icon_name: IconLabelAttributeTypes['icon_name']; icon_box_width: IconLabelAttributeTypes['box_width']; icon_view_box: IconLabelAttributeTypes['view_box']; icon_color_sustainable: IconLabelAttributeTypes['color_sustainable']; icon_horiz: IconLabelAttributeTypes['horiz']; icon_vert: IconLabelAttributeTypes['vert']; icon_horiz_shift: IconLabelAttributeTypes['horiz_shift']; icon_vert_shift: IconLabelAttributeTypes['vert_shift']; icon_inside_horiz: IconLabelAttributeTypes['inside_horiz']; icon_inside_vert: IconLabelAttributeTypes['inside_vert']; icon_is_image: IconLabelAttributeTypes['is_image']; icon_image_src: IconLabelAttributeTypes['image_src']; hyperlink: string | undefined; shape_local_link_scale: LinkShapeSpecificValues['local_link_scale']; shape_is_curved: LinkShapeSpecificValues['is_curved']; shape_curvature: LinkShapeSpecificValues['curvature']; shape_is_recycling: LinkShapeSpecificValues['is_recycling']; shape_is_recycling_locked: LinkShapeSpecificValues['is_recycling_locked']; shape_is_structure: LinkShapeSpecificValues['is_structure']; shape_must_stay_straight: LinkShapeSpecificValues['must_stay_straight']; shape_straight_include_children: LinkShapeSpecificValues['straight_include_children']; shape_straight_mode: LinkShapeSpecificValues['straight_mode']; shape_straight_offset: LinkShapeSpecificValues['straight_offset']; shape_is_reference_flux: LinkShapeSpecificValues['is_reference_flux']; shape_show_as_path_locked: LinkShapeSpecificValues['show_as_path_locked']; shape_orientation: LinkShapeSpecificValues['orientation']; shape_starting_curve: LinkShapeSpecificValues['starting_curve']; shape_ending_curve: LinkShapeSpecificValues['ending_curve']; shape_starting_tangeant: LinkShapeSpecificValues['starting_tangeant']; shape_ending_tangeant: LinkShapeSpecificValues['ending_tangeant']; shape_middle_recycling: LinkShapeSpecificValues['middle_recycling']; shape_waypoints: LinkShapeSpecificValues['waypoints']; shape_source_anchor_offset: LinkShapeSpecificValues['source_anchor_offset']; shape_target_anchor_offset: LinkShapeSpecificValues['target_anchor_offset']; shape_is_arrow: LinkShapeSpecificValues['is_arrow']; shape_arrow_at_source: LinkShapeSpecificValues['arrow_at_source']; shape_arrow_size: LinkShapeSpecificValues['arrow_size']; shape_arrow_size_ratio: LinkShapeSpecificValues['arrow_size_ratio']; shape_arrow_standalone: LinkShapeSpecificValues['arrow_standalone']; shape_arrow_min_width: LinkShapeSpecificValues['arrow_min_width']; shape_structure_force_min: LinkShapeSpecificValues['structure_force_min']; shape_uncertainty_display: LinkShapeSpecificValues['uncertainty_display']; shape_source_notch: LinkShapeSpecificValues['source_notch']; shape_source_notch_size: LinkShapeSpecificValues['source_notch_size']; shape_source_notch_size_ratio: LinkShapeSpecificValues['source_notch_size_ratio']; shape_is_dashed: LinkShapeSpecificValues['is_dashed']; shape_color_rule: LinkShapeSpecificValues['color_rule']; shape_visible_when_zero: LinkShapeSpecificValues['visible_when_zero']; shape_link_caps: LinkShapeSpecificValues['link_caps']; getShapeColorToUse(): string; get is_locked(): boolean; } export declare abstract class Class_LinkAttribute extends Class_BaseShape { constructor(id: string, drawing_area: Class_DrawingArea, svg_parent_group: string, default_style: Class_ElementStyle); private customShapeOrientation; private customStartingCurve; private customEndingCurve; private customStartingTangeant; private customEndingTangeant; private customShapeIsRecycling; protected updateLinkAndSourceTarget(): void; } export type ExtractAttributeValue = T extends AttributeConfig ? U : never; export type StorageType>> = { -readonly [K in keyof CONFIG]?: ExtractAttributeValue; }; export declare class Class_ElementStyle { shape_visible: ShapeAttributeTypes['visible']; shape_type: ShapeAttributeTypes['type']; shape_min_width: ShapeAttributeTypes['min_width']; shape_min_height: ShapeAttributeTypes['min_height']; shape_color_visible: ShapeAttributeTypes['color_visible']; shape_color: ShapeAttributeTypes['color']; shape_opacity: ShapeAttributeTypes['opacity']; shape_color_sustainable: ShapeAttributeTypes['color_sustainable']; shape_border_visible: ShapeAttributeTypes['border_visible']; shape_border_color: ShapeAttributeTypes['border_color']; shape_border_thickness: ShapeAttributeTypes['border_thickness']; shape_border_dashed: ShapeAttributeTypes['border_dashed']; shape_border_radius: ShapeAttributeTypes['border_radius']; shape_shadow_visible: ShapeAttributeTypes['shadow_visible']; name_label_has_fo: NameLabelAttributeTypes['has_fo']; name_label_fo_content: NameLabelAttributeTypes['fo_content']; name_label_is_visible: NameLabelAttributeTypes['is_visible']; name_label_font_family: NameLabelAttributeTypes['font_family']; name_label_font_size: NameLabelAttributeTypes['font_size']; name_label_uppercase: NameLabelAttributeTypes['uppercase']; name_label_bold: NameLabelAttributeTypes['bold']; name_label_italic: NameLabelAttributeTypes['italic']; name_label_color: NameLabelAttributeTypes['color']; name_label_separator: NameLabelAttributeTypes['separator']; name_label_separator_part: NameLabelAttributeTypes['separator_part']; name_label_source: NameLabelAttributeTypes['source']; name_label_text: NameLabelAttributeTypes['text']; name_label_template: NameLabelAttributeTypes['template']; name_label_tag_group_id: NameLabelAttributeTypes['tag_group_id']; name_label_dimension_id: NameLabelAttributeTypes['dimension_id']; name_label_horiz: NameLabelAttributeTypes['horiz']; name_label_vert: NameLabelAttributeTypes['vert']; name_label_horiz_shift: NameLabelAttributeTypes['horiz_shift']; name_label_vert_shift: NameLabelAttributeTypes['vert_shift']; name_label_box_width: NameLabelAttributeTypes['box_width']; name_label_vertical_text: NameLabelAttributeTypes['vertical_text']; name_label_text_angle: NameLabelAttributeTypes['text_angle']; name_label_position_x: NameLabelAttributeTypes['position_x']; name_label_position_y: NameLabelAttributeTypes['position_y']; name_label_position_offset: NameLabelAttributeTypes['position_offset']; name_label_position_absolute: NameLabelAttributeTypes['position_absolute']; name_label_text_align: NameLabelAttributeTypes['text_align']; name_label_inside_horiz: NameLabelAttributeTypes['inside_horiz']; name_label_inside_vert: NameLabelAttributeTypes['inside_vert']; name_label_background_visible: NameLabelAttributeTypes['background_visible']; name_label_background_color: NameLabelAttributeTypes['background_color']; name_label_background_opacity: NameLabelAttributeTypes['background_opacity']; name_label_background_type: NameLabelAttributeTypes['background_type']; name_label_background_min_width: NameLabelAttributeTypes['background_min_width']; name_label_background_min_height: NameLabelAttributeTypes['background_min_height']; name_label_background_color_visible: NameLabelAttributeTypes['background_color_visible']; name_label_background_color_sustainable: NameLabelAttributeTypes['background_color_sustainable']; name_label_background_border_visible: NameLabelAttributeTypes['background_border_visible']; name_label_background_border_color: NameLabelAttributeTypes['background_border_color']; name_label_background_border_thickness: NameLabelAttributeTypes['background_border_thickness']; name_label_background_border_dashed: NameLabelAttributeTypes['background_border_dashed']; name_label_background_border_radius: NameLabelAttributeTypes['background_border_radius']; value_label_has_fo: ValueLabelAttributeTypes['has_fo']; value_label_fo_content: ValueLabelAttributeTypes['fo_content']; value_label_is_visible: ValueLabelAttributeTypes['is_visible']; value_label_font_family: ValueLabelAttributeTypes['font_family']; value_label_font_size: ValueLabelAttributeTypes['font_size']; value_label_uppercase: ValueLabelAttributeTypes['uppercase']; value_label_bold: ValueLabelAttributeTypes['bold']; value_label_italic: ValueLabelAttributeTypes['italic']; value_label_color: ValueLabelAttributeTypes['color']; value_label_horiz: ValueLabelAttributeTypes['horiz']; value_label_vert: ValueLabelAttributeTypes['vert']; value_label_horiz_shift: ValueLabelAttributeTypes['horiz_shift']; value_label_vert_shift: ValueLabelAttributeTypes['vert_shift']; value_label_box_width: ValueLabelAttributeTypes['box_width']; value_label_vertical_text: ValueLabelAttributeTypes['vertical_text']; value_label_text_angle: ValueLabelAttributeTypes['text_angle']; value_label_position_x: ValueLabelAttributeTypes['position_x']; value_label_position_y: ValueLabelAttributeTypes['position_y']; value_label_position_offset: ValueLabelAttributeTypes['position_offset']; value_label_position_absolute: ValueLabelAttributeTypes['position_absolute']; value_label_text_align: ValueLabelAttributeTypes['text_align']; value_label_inside_horiz: ValueLabelAttributeTypes['inside_horiz']; value_label_inside_vert: ValueLabelAttributeTypes['inside_vert']; value_label_background_visible: ValueLabelAttributeTypes['background_visible']; value_label_background_color: ValueLabelAttributeTypes['background_color']; value_label_background_opacity: ValueLabelAttributeTypes['background_opacity']; value_label_background_type: ValueLabelAttributeTypes['background_type']; value_label_background_min_width: ValueLabelAttributeTypes['background_min_width']; value_label_background_min_height: ValueLabelAttributeTypes['background_min_height']; value_label_background_color_visible: ValueLabelAttributeTypes['background_color_visible']; value_label_background_color_sustainable: ValueLabelAttributeTypes['background_color_sustainable']; value_label_background_border_visible: ValueLabelAttributeTypes['background_border_visible']; value_label_background_border_color: ValueLabelAttributeTypes['background_border_color']; value_label_background_border_thickness: ValueLabelAttributeTypes['background_border_thickness']; value_label_background_border_dashed: ValueLabelAttributeTypes['background_border_dashed']; value_label_background_border_radius: ValueLabelAttributeTypes['background_border_radius']; value_label_scientific_notation: ValueLabelAttributeTypes['scientific_notation']; value_label_significant_digits: ValueLabelAttributeTypes['significant_digits']; value_label_nb_significant_digits: ValueLabelAttributeTypes['nb_significant_digits']; value_label_custom_digit: ValueLabelAttributeTypes['custom_digit']; value_label_nb_digit: ValueLabelAttributeTypes['nb_digit']; value_label_in_out_display_mode: ValueLabelAttributeTypes['in_out_display_mode']; value_label_unit_visible: ValueLabelAttributeTypes['unit_visible']; value_label_unit_type: ValueLabelAttributeTypes['unit_type']; value_label_unit: ValueLabelAttributeTypes['unit']; value_label_unit_factor: ValueLabelAttributeTypes['unit_factor']; icon_color: IconLabelAttributeTypes['color']; icon_is_visible: IconLabelAttributeTypes['is_visible']; icon_icon_name: IconLabelAttributeTypes['icon_name']; icon_view_box: IconLabelAttributeTypes['view_box']; icon_color_sustainable: IconLabelAttributeTypes['color_sustainable']; icon_horiz: IconLabelAttributeTypes['horiz']; icon_vert: IconLabelAttributeTypes['vert']; icon_horiz_shift: IconLabelAttributeTypes['horiz_shift']; icon_vert_shift: IconLabelAttributeTypes['vert_shift']; icon_inside_horiz: IconLabelAttributeTypes['inside_horiz']; icon_inside_vert: IconLabelAttributeTypes['inside_vert']; icon_is_image: IconLabelAttributeTypes['is_image']; icon_image_src: IconLabelAttributeTypes['image_src']; hyperlink: string | undefined; shape_local_link_scale: LinkShapeSpecificValues['local_link_scale']; shape_is_curved: LinkShapeSpecificValues['is_curved']; shape_curvature: LinkShapeSpecificValues['curvature']; shape_is_recycling: LinkShapeSpecificValues['is_recycling']; shape_is_recycling_locked: LinkShapeSpecificValues['is_recycling_locked']; shape_is_structure: LinkShapeSpecificValues['is_structure']; shape_must_stay_straight: LinkShapeSpecificValues['must_stay_straight']; shape_straight_include_children: LinkShapeSpecificValues['straight_include_children']; shape_straight_mode: LinkShapeSpecificValues['straight_mode']; shape_straight_offset: LinkShapeSpecificValues['straight_offset']; shape_is_reference_flux: LinkShapeSpecificValues['is_reference_flux']; shape_show_as_path_locked: LinkShapeSpecificValues['show_as_path_locked']; shape_orientation: LinkShapeSpecificValues['orientation']; shape_starting_curve: LinkShapeSpecificValues['starting_curve']; shape_ending_curve: LinkShapeSpecificValues['ending_curve']; shape_starting_tangeant: LinkShapeSpecificValues['starting_tangeant']; shape_ending_tangeant: LinkShapeSpecificValues['ending_tangeant']; shape_middle_recycling: LinkShapeSpecificValues['middle_recycling']; shape_waypoints: LinkShapeSpecificValues['waypoints']; shape_source_anchor_offset: LinkShapeSpecificValues['source_anchor_offset']; shape_target_anchor_offset: LinkShapeSpecificValues['target_anchor_offset']; shape_is_arrow: LinkShapeSpecificValues['is_arrow']; shape_arrow_at_source: LinkShapeSpecificValues['arrow_at_source']; shape_arrow_size: LinkShapeSpecificValues['arrow_size']; shape_arrow_size_ratio: LinkShapeSpecificValues['arrow_size_ratio']; shape_arrow_standalone: LinkShapeSpecificValues['arrow_standalone']; shape_arrow_min_width: LinkShapeSpecificValues['arrow_min_width']; shape_structure_force_min: LinkShapeSpecificValues['structure_force_min']; shape_uncertainty_display: LinkShapeSpecificValues['uncertainty_display']; shape_source_notch: LinkShapeSpecificValues['source_notch']; shape_source_notch_size: LinkShapeSpecificValues['source_notch_size']; shape_source_notch_size_ratio: LinkShapeSpecificValues['source_notch_size_ratio']; shape_is_dashed: LinkShapeSpecificValues['is_dashed']; shape_color_rule: LinkShapeSpecificValues['color_rule']; shape_visible_when_zero: LinkShapeSpecificValues['visible_when_zero']; shape_link_caps: LinkShapeSpecificValues['link_caps']; value_label_on_path: LinkLabelSpecificValues['on_path']; value_label_pos_auto: LinkLabelSpecificValues['pos_auto']; value_label_text_source: LinkLabelSpecificValues['text_source']; name_label_on_path: LinkLabelSpecificValues['on_path']; name_label_pos_auto: LinkLabelSpecificValues['pos_auto']; name_label_text_source: LinkLabelSpecificValues['text_source']; name_label_flux_tag_group_id: LinkLabelSpecificValues['flux_tag_group_id']; stock_label_is_visible: StockLabelAttributeTypes['is_visible']; stock_label_font_size: StockLabelAttributeTypes['font_size']; stock_label_color: StockLabelAttributeTypes['color']; stock_label_bold: StockLabelAttributeTypes['bold']; stock_label_italic: StockLabelAttributeTypes['italic']; stock_label_uppercase: StockLabelAttributeTypes['uppercase']; stock_label_horiz: StockLabelAttributeTypes['horiz']; stock_label_vert: StockLabelAttributeTypes['vert']; stock_label_inside_horiz: StockLabelAttributeTypes['inside_horiz']; stock_label_inside_vert: StockLabelAttributeTypes['inside_vert']; stock_label_background_color: StockLabelAttributeTypes['background_color']; stock_label_background_border_color: StockLabelAttributeTypes['background_border_color']; shape_orphan_node_visible: boolean; shape_position_type: NodeShapeSpecificAttributeTypes['position_type']; shape_position_dx: NodeShapeSpecificAttributeTypes['position_dx']; shape_position_dy: NodeShapeSpecificAttributeTypes['position_dy']; shape_anchor_align_vertical: NodeShapeSpecificAttributeTypes['anchor_align_vertical']; shape_anchor_align_horizontal: NodeShapeSpecificAttributeTypes['anchor_align_horizontal']; shape_io_reorg_mode: NodeShapeSpecificAttributeTypes['io_reorg_mode']; shape_link_inset: NodeShapeSpecificAttributeTypes['link_inset']; shape_hatch: NodeShapeSpecificAttributeTypes['hatch']; shape_is_reference_stock: NodeShapeSpecificAttributeTypes['is_reference_stock']; shape_line_flip: NodeShapeSpecificAttributeTypes['line_flip']; shape_line_x1: NodeShapeSpecificAttributeTypes['line_x1']; shape_line_y1: NodeShapeSpecificAttributeTypes['line_y1']; shape_line_x2: NodeShapeSpecificAttributeTypes['line_x2']; shape_line_y2: NodeShapeSpecificAttributeTypes['line_y2']; shape_position_u_locked: boolean; shape_position_v_locked: boolean; shape_is_locked: boolean; shape_margin_bottom: ShapeAttributeTypes['margin_bottom']; shape_margin_top: ShapeAttributeTypes['margin_top']; shape_margin_left: ShapeAttributeTypes['margin_left']; shape_margin_right: ShapeAttributeTypes['margin_right']; private _storage; private _config; private _id; private _name; private _references; private _default_style; private _drawing_area; constructor(config: Record>, id: string, name: string, is_deletable: boolean, default_style: Class_ElementStyle, drawing_area: Class_DrawingArea); getElementProperty(k: keyof ConfigType): {} | null | undefined; protected createDynamicProperties(): void; deleteAttribute(key: string): void; copyFrom(element: Class_ElementStyle): void; /** Vrai pour le style 'default' (socle sans style parent). Sert à la persistance : * le 'default' ne sauve que ce qui diffère du défaut usine, les autres styles sauvent * toute valeur explicitement stockée (cf. StylePersistence.toJSON). */ get is_default_style(): boolean; /** Un attribut est-il explicitement porté par CE style (présent dans son storage) ? * Les styles non-'default' ne sont pas pré-remplis : leur storage ne contient que les * valeurs de seed + chargées + posées par l'utilisateur, donc « explicites ». */ isAttributeExplicit(attr: keyof ConfigType): boolean; isAttributeOverloaded(attr: keyof ConfigType): boolean; delete(): void; addReference(ref: Class_BaseElement): void; removeReference(ref: Class_BaseElement): void; get attributes(): Record; set attributes(value: Record); /** Redessine tous les éléments qui référencent ce style. */ redrawReferences(): void; /** * Enlève toutes les surcharges du style par rapport au style par défaut * (réhéritage). Reconstruit un nouveau _storage pour ne pas muter un éventuel * snapshot d'undo. Sur le style par défaut, isAttributeOverloaded est faux * partout (valeurs == défaut) donc aucun attribut n'est retiré. */ resetOverloadedAttributes(): void; get id(): string; get name(): string; set name(value: string); get drawing_area(): Class_DrawingArea; }