use serde::{Deserialize, Serialize};
use super::common::{AttrValString, XlsxExtLst, XlsxInnerXml};
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename = "a:theme")]
pub struct XlsxTheme {
#[serde(rename = "@xmlns:a", default)]
pub xmlns_a: Option<String>,
#[serde(rename = "@xmlns:r", default)]
pub xmlns_r: Option<String>,
#[serde(rename = "@name", default)]
pub name: String,
#[serde(rename = "a:themeElements", default)]
pub theme_elements: XlsxBaseStyles,
#[serde(rename = "a:objectDefaults", default)]
pub object_defaults: XlsxInnerXml,
#[serde(rename = "a:extraClrSchemeLst", default)]
pub extra_clr_scheme_lst: XlsxInnerXml,
#[serde(rename = "a:custClrLst", default)]
pub cust_clr_lst: Option<XlsxInnerXml>,
#[serde(rename = "a:extLst", default)]
pub ext_lst: Option<XlsxExtLst>,
}
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename = "a:themeElements")]
pub struct XlsxBaseStyles {
#[serde(rename = "a:clrScheme", default)]
pub clr_scheme: XlsxColorScheme,
#[serde(rename = "a:fontScheme", default)]
pub font_scheme: XlsxFontScheme,
#[serde(rename = "a:fmtScheme", default)]
pub fmt_scheme: XlsxStyleMatrix,
#[serde(rename = "a:extLst", default)]
pub ext_lst: Option<XlsxExtLst>,
}
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
pub struct XlsxCtColor {
#[serde(rename = "a:scrgbClr", default)]
pub scrgb_clr: Option<XlsxInnerXml>,
#[serde(rename = "a:srgbClr", default)]
pub srgb_clr: Option<AttrValString>,
#[serde(rename = "a:hslClr", default)]
pub hsl_clr: Option<XlsxInnerXml>,
#[serde(rename = "a:sysClr", default)]
pub sys_clr: Option<XlsxSysClr>,
#[serde(rename = "a:schemeClr", default)]
pub scheme_clr: Option<XlsxInnerXml>,
#[serde(rename = "a:prstClr", default)]
pub prst_clr: Option<XlsxInnerXml>,
}
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename = "a:clrScheme")]
pub struct XlsxColorScheme {
#[serde(rename = "@name", default)]
pub name: String,
#[serde(rename = "a:dk1", default)]
pub dk1: XlsxCtColor,
#[serde(rename = "a:lt1", default)]
pub lt1: XlsxCtColor,
#[serde(rename = "a:dk2", default)]
pub dk2: XlsxCtColor,
#[serde(rename = "a:lt2", default)]
pub lt2: XlsxCtColor,
#[serde(rename = "a:accent1", default)]
pub accent1: XlsxCtColor,
#[serde(rename = "a:accent2", default)]
pub accent2: XlsxCtColor,
#[serde(rename = "a:accent3", default)]
pub accent3: XlsxCtColor,
#[serde(rename = "a:accent4", default)]
pub accent4: XlsxCtColor,
#[serde(rename = "a:accent5", default)]
pub accent5: XlsxCtColor,
#[serde(rename = "a:accent6", default)]
pub accent6: XlsxCtColor,
#[serde(rename = "a:hlink", default)]
pub hlink: XlsxCtColor,
#[serde(rename = "a:folHlink", default)]
pub fol_hlink: XlsxCtColor,
#[serde(rename = "a:extLst", default)]
pub ext_lst: Option<XlsxExtLst>,
}
#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct XlsxCtSupplementalFont {
#[serde(rename = "@script", default)]
pub script: String,
#[serde(rename = "@typeface", default)]
pub typeface: String,
}
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
pub struct XlsxFontCollection {
#[serde(rename = "a:latin", default)]
pub latin: Option<XlsxCtTextFont>,
#[serde(rename = "a:ea", default)]
pub ea: Option<XlsxCtTextFont>,
#[serde(rename = "a:cs", default)]
pub cs: Option<XlsxCtTextFont>,
#[serde(rename = "a:font", default)]
pub font: Vec<XlsxCtSupplementalFont>,
#[serde(rename = "a:extLst", default)]
pub ext_lst: Option<XlsxExtLst>,
}
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename = "a:fontScheme")]
pub struct XlsxFontScheme {
#[serde(rename = "@name", default)]
pub name: String,
#[serde(rename = "a:majorFont", default)]
pub major_font: XlsxFontCollection,
#[serde(rename = "a:minorFont", default)]
pub minor_font: XlsxFontCollection,
#[serde(rename = "a:extLst", default)]
pub ext_lst: Option<XlsxExtLst>,
}
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename = "a:fmtScheme")]
pub struct XlsxStyleMatrix {
#[serde(rename = "@name", default)]
pub name: Option<String>,
#[serde(rename = "a:fillStyleLst", default)]
pub fill_style_lst: XlsxInnerXml,
#[serde(rename = "a:lnStyleLst", default)]
pub ln_style_lst: XlsxInnerXml,
#[serde(rename = "a:effectStyleLst", default)]
pub effect_style_lst: XlsxInnerXml,
#[serde(rename = "a:bgFillStyleLst", default)]
pub bg_fill_style_lst: XlsxInnerXml,
}
#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename = "a:sysClr")]
pub struct XlsxSysClr {
#[serde(rename = "@val", default)]
pub val: String,
#[serde(rename = "@lastClr", default)]
pub last_clr: String,
}
#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct XlsxCtTextFont {
#[serde(rename = "@typeface", default)]
pub typeface: String,
#[serde(rename = "@panose", default)]
pub panose: Option<String>,
#[serde(rename = "@pitchFamily", default)]
pub pitch_family: Option<String>,
#[serde(rename = "@Charset", default)]
pub charset: Option<String>,
}
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename = "theme")]
pub struct DecodeTheme {
#[serde(rename = "@name", default)]
pub name: String,
#[serde(rename = "themeElements", default)]
pub theme_elements: DecodeBaseStyles,
#[serde(rename = "objectDefaults", default)]
pub object_defaults: XlsxInnerXml,
#[serde(rename = "extraClrSchemeLst", default)]
pub extra_clr_scheme_lst: XlsxInnerXml,
#[serde(rename = "custClrLst", default)]
pub cust_clr_lst: Option<XlsxInnerXml>,
#[serde(rename = "extLst", default)]
pub ext_lst: Option<XlsxExtLst>,
}
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename = "themeElements")]
pub struct DecodeBaseStyles {
#[serde(rename = "clrScheme", default)]
pub clr_scheme: DecodeColorScheme,
#[serde(rename = "fontScheme", default)]
pub font_scheme: DecodeFontScheme,
#[serde(rename = "fmtScheme", default)]
pub fmt_scheme: DecodeStyleMatrix,
#[serde(rename = "extLst", default)]
pub ext_lst: Option<XlsxExtLst>,
}
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename = "clrScheme")]
pub struct DecodeColorScheme {
#[serde(rename = "@name", default)]
pub name: String,
#[serde(rename = "dk1", default)]
pub dk1: DecodeCtColor,
#[serde(rename = "lt1", default)]
pub lt1: DecodeCtColor,
#[serde(rename = "dk2", default)]
pub dk2: DecodeCtColor,
#[serde(rename = "lt2", default)]
pub lt2: DecodeCtColor,
#[serde(rename = "accent1", default)]
pub accent1: DecodeCtColor,
#[serde(rename = "accent2", default)]
pub accent2: DecodeCtColor,
#[serde(rename = "accent3", default)]
pub accent3: DecodeCtColor,
#[serde(rename = "accent4", default)]
pub accent4: DecodeCtColor,
#[serde(rename = "accent5", default)]
pub accent5: DecodeCtColor,
#[serde(rename = "accent6", default)]
pub accent6: DecodeCtColor,
#[serde(rename = "hlink", default)]
pub hlink: DecodeCtColor,
#[serde(rename = "folHlink", default)]
pub fol_hlink: DecodeCtColor,
#[serde(rename = "extLst", default)]
pub ext_lst: Option<XlsxExtLst>,
}
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
pub struct DecodeCtColor {
#[serde(rename = "scrgbClr", default)]
pub scrgb_clr: Option<XlsxInnerXml>,
#[serde(rename = "srgbClr", default)]
pub srgb_clr: Option<AttrValString>,
#[serde(rename = "hslClr", default)]
pub hsl_clr: Option<XlsxInnerXml>,
#[serde(rename = "sysClr", default)]
pub sys_clr: Option<XlsxSysClr>,
#[serde(rename = "schemeClr", default)]
pub scheme_clr: Option<XlsxInnerXml>,
#[serde(rename = "prstClr", default)]
pub prst_clr: Option<XlsxInnerXml>,
}
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename = "fontScheme")]
pub struct DecodeFontScheme {
#[serde(rename = "@name", default)]
pub name: String,
#[serde(rename = "majorFont", default)]
pub major_font: DecodeFontCollection,
#[serde(rename = "minorFont", default)]
pub minor_font: DecodeFontCollection,
#[serde(rename = "extLst", default)]
pub ext_lst: Option<XlsxExtLst>,
}
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
pub struct DecodeFontCollection {
#[serde(rename = "latin", default)]
pub latin: Option<XlsxCtTextFont>,
#[serde(rename = "ea", default)]
pub ea: Option<XlsxCtTextFont>,
#[serde(rename = "cs", default)]
pub cs: Option<XlsxCtTextFont>,
#[serde(rename = "font", default)]
pub font: Vec<XlsxCtSupplementalFont>,
#[serde(rename = "extLst", default)]
pub ext_lst: Option<XlsxExtLst>,
}
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename = "fmtScheme")]
pub struct DecodeStyleMatrix {
#[serde(rename = "@name", default)]
pub name: Option<String>,
#[serde(rename = "fillStyleLst", default)]
pub fill_style_lst: XlsxInnerXml,
#[serde(rename = "lnStyleLst", default)]
pub ln_style_lst: XlsxInnerXml,
#[serde(rename = "effectStyleLst", default)]
pub effect_style_lst: XlsxInnerXml,
#[serde(rename = "bgFillStyleLst", default)]
pub bg_fill_style_lst: XlsxInnerXml,
}