pub fn lookup_flowchart_markdown_italic_word_delta_em(
wrap_mode: crate::text::WrapMode,
word: &str,
) -> Option<f64> {
match wrap_mode {
crate::text::WrapMode::SvgLike | crate::text::WrapMode::SvgLikeSingleRun => match word {
"a_b" | "a__b" => Some(0.0),
"Child" => Some(172.0 / 2048.0),
"Markdown" => Some(81.0 / 1024.0),
_ => None,
},
crate::text::WrapMode::HtmlLike => match word {
"Markdown" => Some(83.0 / 1024.0),
_ => None,
},
}
}
pub fn lookup_flowchart_markdown_bold_word_delta_em(
wrap_mode: crate::text::WrapMode,
word: &str,
) -> Option<f64> {
match wrap_mode {
crate::text::WrapMode::SvgLike | crate::text::WrapMode::SvgLikeSingleRun => match word {
"Two" => Some(9.0 / 128.0),
_ => None,
},
crate::text::WrapMode::HtmlLike => None,
}
}
pub fn lookup_flowchart_markdown_bold_word_extra_delta_em(
wrap_mode: crate::text::WrapMode,
word: &str,
) -> f64 {
match wrap_mode {
crate::text::WrapMode::SvgLike | crate::text::WrapMode::SvgLikeSingleRun => match word {
"ipa" => -1.0 / 1024.0,
"edge" => 1.0 / 512.0,
"label" => -1.0 / 1024.0,
"dog" => -7.0 / 16384.0,
_ => 0.0,
},
crate::text::WrapMode::HtmlLike => match word {
"edge" | "label" => 1.0 / 1024.0,
_ => 0.0,
},
}
}
pub fn lookup_flowchart_markdown_bold_char_extra_delta_em(
wrap_mode: crate::text::WrapMode,
word: &str,
ch: char,
) -> f64 {
match wrap_mode {
crate::text::WrapMode::SvgLike | crate::text::WrapMode::SvgLikeSingleRun => {
if word == "a" && ch == 'a' {
1.0 / 1024.0
} else {
0.0
}
}
crate::text::WrapMode::HtmlLike => 0.0,
}
}
pub fn lookup_flowchart_html_width_px(
font_key: &str,
font_size_px: f64,
text: &str,
) -> Option<f64> {
if (font_size_px - 16.0).abs() > 0.01 {
return None;
}
match (font_key, text) {
("courier", "Christmas") | ("courier", "Get money") => Some(86.421875),
("trebuchetms,verdana,arial,sans-serif", "A to B") => Some(42.1875),
("trebuchetms,verdana,arial,sans-serif", "B to C") => Some(43.203125),
("trebuchetms,verdana,arial,sans-serif", "A: (Edge Text)") => Some(101.046875),
("trebuchetms,verdana,arial,sans-serif", ",.?!+-*ز") => Some(51.46875),
("trebuchetms,verdana,arial,sans-serif", "special characters") => Some(129.9375),
("trebuchetms,verdana,arial,sans-serif", "Rounded") => Some(61.296875),
("trebuchetms,verdana,arial,sans-serif", "Inner B") => Some(50.765625),
("trebuchetms,verdana,arial,sans-serif", "very long edge label") => Some(145.09375),
("trebuchetms,verdana,arial,sans-serif", "post") => Some(30.328125),
("trebuchetms,verdana,arial,sans-serif", "Dense Cluster") => Some(98.109375),
("trebuchetms,verdana,arial,sans-serif", "outside2") => Some(60.75),
("trebuchetms,verdana,arial,sans-serif", "Level 1")
| ("trebuchetms,verdana,arial,sans-serif", "Level 2")
| ("trebuchetms,verdana,arial,sans-serif", "Level 3")
| ("trebuchetms,verdana,arial,sans-serif", "Level 4") => Some(51.328125),
("trebuchetms,verdana,arial,sans-serif", "Subgraph Title") => Some(103.171875),
("trebuchetms,verdana,arial,sans-serif", "Edge Label") => Some(77.9375),
("trebuchetms,verdana,arial,sans-serif", "Node Label B") => Some(94.0),
("trebuchetms,verdana,arial,sans-serif", "custom") => Some(51.359375),
("trebuchetms,verdana,arial,sans-serif", "Line 2")
| ("trebuchetms,verdana,arial,sans-serif", "Line 3") => Some(43.34375),
("trebuchetms,verdana,arial,sans-serif", "edge label") => Some(74.703125),
("trebuchetms,verdana,arial,sans-serif", "edge comment") => Some(106.109375),
("trebuchetms,verdana,arial,sans-serif", "(1 / period_duration)") => Some(153.0),
("trebuchetms,verdana,arial,sans-serif", "- e1 - e2") => Some(60.453125),
("trebuchetms,verdana,arial,sans-serif", "- l1 - l2") => Some(52.4375),
("trebuchetms,verdana,arial,sans-serif", "`**bold*`") => Some(65.546875),
("trebuchetms,verdana,arial,sans-serif", "`This is **bold**") => Some(112.78125),
("trebuchetms,verdana,arial,sans-serif", "new bow-rect shape") => Some(144.78125),
("trebuchetms,verdana,arial,sans-serif", "new document shape") => Some(151.546875),
("trebuchetms,verdana,arial,sans-serif", "new documents shape") => Some(158.015625),
("trebuchetms,verdana,arial,sans-serif", "new window-pane shape") => Some(175.5625),
_ => None,
}
}
pub fn lookup_flowchart_svg_bbox_x_px(
font_key: &str,
font_size_px: f64,
text: &str,
) -> Option<(f64, f64)> {
if (font_size_px - 16.0).abs() > 0.01 {
return None;
}
match (font_key, text) {
("courier", "Get money") => Some((43.2109375, 43.2109375)),
("trebuchetms,verdana,arial,sans-serif", "Line 2")
| ("trebuchetms,verdana,arial,sans-serif", "Line 3") => Some((21.6796875, 21.6796875)),
("trebuchetms,verdana,arial,sans-serif", "in the hat") => Some((35.1328125, 35.1328125)),
("trebuchetms,verdana,arial,sans-serif", "edge label") => Some((37.359375, 37.359375)),
("trebuchetms,verdana,arial,sans-serif", "edge") => Some((37.359375, 37.359375)),
("trebuchetms,verdana,arial,sans-serif", "1o") => Some((8.4921875, 8.4921875)),
("trebuchetms,verdana,arial,sans-serif", "End") => Some((13.1171875, 13.1171875)),
("trebuchetms,verdana,arial,sans-serif", "Start") => Some((17.5078125, 17.5078125)),
("trebuchetms,verdana,arial,sans-serif", "Subgraph Title") => Some((51.59375, 51.59375)),
("trebuchetms,verdana,arial,sans-serif", "Edge Label") => Some((38.96875, 38.96875)),
("trebuchetms,verdana,arial,sans-serif", "Node Label") => Some((40.0625, 40.0625)),
("trebuchetms,verdana,arial,sans-serif", "Node Label B") => Some((47.0, 47.0)),
("trebuchetms,verdana,arial,sans-serif", "n0")
| ("trebuchetms,verdana,arial,sans-serif", "n1")
| ("trebuchetms,verdana,arial,sans-serif", "n2")
| ("trebuchetms,verdana,arial,sans-serif", "n3")
| ("trebuchetms,verdana,arial,sans-serif", "n4") => Some((8.5703125, 8.5703125)),
("trebuchetms,verdana,arial,sans-serif", "curved-trapezoid shape") => {
Some((84.296875, 84.296875))
}
("trebuchetms,verdana,arial,sans-serif", "tagged-document shape") => {
Some((85.84375, 85.84375))
}
("trebuchetms,verdana,arial,sans-serif", "</strong> for triangle") => {
Some((77.8515625, 77.8515625))
}
("trebuchetms,verdana,arial,sans-serif", "sloped-rectangle shape") => {
Some((83.0703125, 83.0703125))
}
("trebuchetms,verdana,arial,sans-serif", "horizontal-cylinder shape") => {
Some((91.0859375, 91.0859375))
}
("trebuchetms,verdana,arial,sans-serif", "flipped-triangle shape") => {
Some((79.1953125, 79.1953125))
}
("trebuchetms,verdana,arial,sans-serif", "</strong> for bow-rect") => {
Some((82.21875, 82.21875))
}
("trebuchetms,verdana,arial,sans-serif", "divided-rectangle shape") => {
Some((86.1171875, 86.1171875))
}
("trebuchetms,verdana,arial,sans-serif", "tagged-rectangle shape") => {
Some((84.1328125, 84.1328125))
}
("trebuchetms,verdana,arial,sans-serif", "</strong> for documents") => {
Some((88.84375, 88.84375))
}
("trebuchetms,verdana,arial,sans-serif", "</strong> for window-pane") => {
Some((97.6171875, 97.6171875))
}
("trebuchetms,verdana,arial,sans-serif", "documents shape") => Some((88.84375, 88.84375)),
("trebuchetms,verdana,arial,sans-serif", "</strong> for document") => {
Some((85.6015625, 85.6015625))
}
("trebuchetms,verdana,arial,sans-serif", "notched-pentagon shape") => {
Some((88.21875, 88.21875))
}
("trebuchetms,verdana,arial,sans-serif", "</strong> for lined-cylinder") => {
Some((99.59375, 99.59375))
}
("trebuchetms,verdana,arial,sans-serif", "stacked-document shape") => {
Some((89.046875, 89.046875))
}
("trebuchetms,verdana,arial,sans-serif", "half-rounded-rectangle") => {
Some((83.109375, 83.109375))
}
_ => None,
}
}