text_document_formatting/
dtos.rs1use common::entities::TextDirection;
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7pub struct SetTextFormatDto {
8 pub position: i64,
9 pub anchor: i64,
10 pub font_family: Option<String>,
11 pub font_point_size: Option<i64>,
12 pub font_weight: Option<i64>,
13 pub font_bold: Option<bool>,
14 pub font_italic: Option<bool>,
15 pub font_underline: Option<bool>,
16 pub font_overline: Option<bool>,
17 pub font_strikeout: Option<bool>,
18 pub letter_spacing: Option<i64>,
19 pub word_spacing: Option<i64>,
20 pub underline_style: Option<UnderlineStyle>,
21 pub vertical_alignment: Option<CharVerticalAlignment>,
22}
23
24#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
25pub enum UnderlineStyle {
26 #[default]
27 NoUnderline,
28 SingleUnderline,
29 DashUnderline,
30 DotLine,
31 DashDotLine,
32 DashDotDotLine,
33 WaveUnderline,
34 SpellCheckUnderline,
35}
36
37#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
38pub enum CharVerticalAlignment {
39 #[default]
40 Normal,
41 SuperScript,
42 SubScript,
43 Middle,
44 Bottom,
45 Top,
46 Baseline,
47}
48#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
49pub struct MergeTextFormatDto {
50 pub position: i64,
51 pub anchor: i64,
52 pub font_family: Option<String>,
53 pub font_bold: Option<bool>,
54 pub font_italic: Option<bool>,
55 pub font_underline: Option<bool>,
56}
57#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
58pub struct SetBlockFormatDto {
59 pub position: i64,
60 pub anchor: i64,
61 pub alignment: Option<Alignment>,
62 pub heading_level: Option<i64>,
63 pub indent: Option<i64>,
64 pub marker: Option<MarkerType>,
65 pub line_height: Option<i64>,
66 pub non_breakable_lines: Option<bool>,
67 pub direction: Option<TextDirection>,
68 pub background_color: Option<String>,
69}
70
71#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
72pub enum Alignment {
73 #[default]
74 Left,
75 Right,
76 Center,
77 Justify,
78}
79
80#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
81pub enum MarkerType {
82 #[default]
83 NoMarker,
84 Unchecked,
85 Checked,
86}
87#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
88pub struct SetFrameFormatDto {
89 pub position: i64,
90 pub anchor: i64,
91 pub frame_id: i64,
92 pub height: Option<i64>,
93 pub width: Option<i64>,
94 pub top_margin: Option<i64>,
95 pub bottom_margin: Option<i64>,
96 pub left_margin: Option<i64>,
97 pub right_margin: Option<i64>,
98 pub padding: Option<i64>,
99 pub border: Option<i64>,
100}
101#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
102pub struct SetTableFormatDto {
103 pub table_id: i64,
104 pub border: Option<i64>,
105 pub cell_spacing: Option<i64>,
106 pub cell_padding: Option<i64>,
107 pub width: Option<i64>,
108 pub alignment: Option<Alignment>,
109}
110#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
111pub struct SetTableCellFormatDto {
112 pub cell_id: i64,
113 pub padding: Option<i64>,
114 pub border: Option<i64>,
115 pub vertical_alignment: Option<CellVerticalAlignment>,
116 pub background_color: Option<String>,
117}
118
119pub use common::entities::ListStyle;
120
121#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
122pub struct SetListFormatDto {
123 pub list_id: i64,
124 pub style: Option<ListStyle>,
125 pub indent: Option<i64>,
126 pub prefix: Option<String>,
127 pub suffix: Option<String>,
128}
129
130#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
131pub enum CellVerticalAlignment {
132 #[default]
133 Top,
134 Middle,
135 Bottom,
136}