1
+ /// Equivalent to CSS `display`
2
+ ///
3
+ /// (https://www.w3.org/TR/css-display-3/#the-display-properties)
4
+ enum Display {
5
+ /// Equivalent to css `display: none;`
6
+ none (
7
+ displayBox: DisplayBox .none,
8
+ ),
9
+
10
+ /// Equivalent to css `display: contents;`
11
+ ///
12
+ /// Not supported by flutter_html
13
+ contents (
14
+ displayBox: DisplayBox .contents,
15
+ ),
16
+
17
+ /// Equivalent to css `display: block;`
18
+ block (
19
+ displayOutside: DisplayOutside .block,
20
+ displayInside: DisplayInside .flow,
21
+ ),
22
+
23
+ /// Equivalent to css `display: flow-root;`
24
+ ///
25
+ /// Not supported by flutter_html
26
+ flowRoot (
27
+ displayOutside: DisplayOutside .block,
28
+ displayInside: DisplayInside .flowRoot,
29
+ ),
30
+
31
+ /// Equivalent to css `display: inline;`
32
+ inline (
33
+ displayOutside: DisplayOutside .inline,
34
+ displayInside: DisplayInside .flow,
35
+ ),
36
+
37
+ /// Equivalent to css `display: inline-block;`
38
+ inlineBlock (
39
+ displayOutside: DisplayOutside .inline,
40
+ displayInside: DisplayInside .flowRoot,
41
+ ),
42
+
43
+ /// Equivalent to css `display: run-in;`
44
+ ///
45
+ /// Not supported by flutter_html
46
+ runIn (
47
+ displayOutside: DisplayOutside .runIn,
48
+ displayInside: DisplayInside .flow,
49
+ ),
50
+
51
+ /// Equivalent to css `display: list-item;`
52
+ listItem (
53
+ displayOutside: DisplayOutside .block,
54
+ displayInside: DisplayInside .flow,
55
+ displayListItem: true ,
56
+ ),
57
+
58
+ /// Equivalent to css `display: inline list-item;`
59
+ inlineListItem (
60
+ displayOutside: DisplayOutside .inline,
61
+ displayInside: DisplayInside .flow,
62
+ displayListItem: true ,
63
+ ),
64
+
65
+ /// Equivalent to css `display: flex;`
66
+ ///
67
+ /// Not supported by flutter_html
68
+ flex (
69
+ displayOutside: DisplayOutside .block,
70
+ displayInside: DisplayInside .flex,
71
+ ),
72
+
73
+ /// Equivalent to css `display: inline-flex;`
74
+ ///
75
+ /// Not supported by flutter_html
76
+ inlineFlex (
77
+ displayOutside: DisplayOutside .inline,
78
+ displayInside: DisplayInside .flex,
79
+ ),
80
+
81
+ /// Equivalent to css `display: grid;`
82
+ ///
83
+ /// Not supported by flutter_html
84
+ grid (
85
+ displayOutside: DisplayOutside .block,
86
+ displayInside: DisplayInside .grid,
87
+ ),
88
+
89
+ /// Equivalent to css `display: inline-grid;`
90
+ ///
91
+ /// Not supported by flutter_html
92
+ inlineGrid (
93
+ displayOutside: DisplayOutside .inline,
94
+ displayInside: DisplayInside .grid,
95
+ ),
96
+
97
+ /// Equivalent to css `display: ruby;`
98
+ ruby (
99
+ displayOutside: DisplayOutside .inline,
100
+ displayInside: DisplayInside .ruby,
101
+ ),
102
+
103
+ /// Equivalent to css `display: block ruby;`
104
+ blockRuby (
105
+ displayOutside: DisplayOutside .block,
106
+ displayInside: DisplayInside .ruby,
107
+ ),
108
+
109
+ /// Equivalent to css `display: table;`
110
+ table (
111
+ displayOutside: DisplayOutside .block,
112
+ displayInside: DisplayInside .table,
113
+ ),
114
+
115
+ /// Equivalent to css `display: inline-table;`
116
+ inlineTable (
117
+ displayOutside: DisplayOutside .inline,
118
+ displayInside: DisplayInside .table,
119
+ ),
120
+
121
+ /// Equivalent to css `display: table-row-group;`
122
+ tableRowGroup (
123
+ displayInternal: DisplayInternal .tableRowGroup,
124
+ ),
125
+
126
+ /// Equivalent to css `display: table-header-group;`
127
+ tableHeaderGroup (
128
+ displayInternal: DisplayInternal .tableHeaderGroup,
129
+ ),
130
+
131
+ /// Equivalent to css `display: table-footer-group;`
132
+ tableFooterGroup (
133
+ displayInternal: DisplayInternal .tableFooterGroup,
134
+ ),
135
+
136
+ /// Equivalent to css `display: table-row;`
137
+ tableRow (
138
+ displayInternal: DisplayInternal .tableRowGroup,
139
+ ),
140
+
141
+ /// Equivalent to css `display: table-cell;`
142
+ tableCell (
143
+ displayInternal: DisplayInternal .tableCell,
144
+ displayInside: DisplayInside .flowRoot,
145
+ ),
146
+
147
+ /// Equivalent to css `display: table-column-group;`
148
+ tableColumnGroup (
149
+ displayInternal: DisplayInternal .tableColumnGroup,
150
+ ),
151
+
152
+ /// Equivalent to css `display: table-column;`
153
+ tableColumn (
154
+ displayInternal: DisplayInternal .tableColumn,
155
+ ),
156
+
157
+ /// Equivalent to css `display: table-caption;`
158
+ tableCaption (
159
+ displayInternal: DisplayInternal .tableCaption,
160
+ displayInside: DisplayInside .flowRoot,
161
+ ),
162
+
163
+ /// Equivalent to css `display: ruby-base;`
164
+ rubyBase (
165
+ displayInternal: DisplayInternal .rubyBase,
166
+ displayInside: DisplayInside .flow,
167
+ ),
168
+
169
+ /// Equivalent to css `display: ruby-text;`
170
+ rubyText (
171
+ displayInternal: DisplayInternal .rubyText,
172
+ displayInside: DisplayInside .flow,
173
+ ),
174
+
175
+ /// Equivalent to css `display: ruby-base-container;`
176
+ rubyBaseContainer (
177
+ displayInternal: DisplayInternal .rubyBaseContainer,
178
+ ),
179
+
180
+ /// Equivalent to css `display: ruby-text-container;`
181
+ rubyTextContainer (
182
+ displayInternal: DisplayInternal .rubyTextContainer,
183
+ );
184
+
185
+ const Display ({
186
+ this .displayOutside,
187
+ this .displayInside,
188
+ this .displayListItem = false ,
189
+ this .displayInternal,
190
+ this .displayBox,
191
+ });
192
+
193
+ final DisplayOutside ? displayOutside;
194
+ final DisplayInside ? displayInside;
195
+ final bool displayListItem;
196
+ final DisplayInternal ? displayInternal;
197
+ final DisplayBox ? displayBox;
198
+
199
+ /// Evaluates to `true` if `displayOutside` is equal to
200
+ /// `DisplayOutside.block` .
201
+ bool get isBlock {
202
+ return displayOutside == DisplayOutside .block;
203
+ }
204
+ }
205
+
206
+ enum DisplayOutside {
207
+ block,
208
+ inline,
209
+ runIn, // not supported
210
+ }
211
+
212
+ enum DisplayInside {
213
+ flow,
214
+ flowRoot,
215
+ table,
216
+ flex, // not supported
217
+ grid, // not supported
218
+ ruby,
219
+ }
220
+
221
+ enum DisplayInternal {
222
+ tableRowGroup,
223
+ tableHeaderGroup,
224
+ tableFooterGroup,
225
+ tableRow,
226
+ tableCell,
227
+ tableColumnGroup,
228
+ tableColumn,
229
+ tableCaption,
230
+ rubyBase,
231
+ rubyText,
232
+ rubyBaseContainer,
233
+ rubyTextContainer,
234
+ }
235
+
236
+ enum DisplayBox {
237
+ contents, // not supported
238
+ none,
239
+ }
0 commit comments