diff --git a/crates/idml/src/model/mod.rs b/crates/idml/src/model/mod.rs index 75d6f8074..a4560b22e 100644 --- a/crates/idml/src/model/mod.rs +++ b/crates/idml/src/model/mod.rs @@ -45,7 +45,7 @@ pub use spread::{ TextWrapPreference, spreads, }; pub use story::{ - Ace, AnchoredObjectSetting, AnchoredObjectValues, CONTAINERS, Cell, CellOptions, Container, ContainerKind, ContentPart, + Ace, AnchoredObjectSetting, AnchoredObjectValues, CONTAINERS, Cell, CellOptions, Container, ContainerKind, ContentPart, CrossReferenceSource, IndexCrossReferenceValues, IndexDocument, IndexReference, IndexTopicPath, IndexValues, PageReference, Range, SavedCrossReference, SavedCrossReferencePart, Story, StoryAnchor, StoryPreference, Table, TableChild, TableColumn, TableLayout, TableRow, TextNode, TrackedChangeKind, stories, diff --git a/crates/idml/src/model/story.rs b/crates/idml/src/model/story.rs index afa32a5a5..38839b0d3 100644 --- a/crates/idml/src/model/story.rs +++ b/crates/idml/src/model/story.rs @@ -337,6 +337,20 @@ pub struct SavedCrossReference { pub character_range: Option, } +/// The IDML cross-reference source wrapper around its saved character range. +pub struct CrossReferenceSource; + +impl CrossReferenceSource { + pub fn to_el(self_id: &str, applied_format: &str, name: &str, character_range: El) -> El { + El::new("CrossReferenceSource") + .with_attr("Self", self_id) + .with_attr("AppliedFormat", applied_format) + .with_attr("Name", name) + .with_attr("Hidden", "false") + .with_child(character_range) + } +} + #[derive(Clone, Debug, PartialEq)] pub enum SavedCrossReferencePart { Text(String),