@@ -54,12 +54,12 @@ final class Protofier {
54
54
case SassNumber ():
55
55
result.number = _protofyNumber (value);
56
56
case SassColor ():
57
- result.color = Value_Color ()
58
- ..space = value.space.name
59
- ..channel1 = value.channel0
60
- ..channel2 = value.channel1
61
- ..channel3 = value.channel2
62
- ..alpha = value. alpha * 1.0 ;
57
+ result.color = Value_Color (
58
+ space : value.space.name,
59
+ channel1 : value.channel0OrNull,
60
+ channel2 : value.channel1OrNull,
61
+ channel3 : value.channel2OrNull,
62
+ alpha: value.alphaOrNull) ;
63
63
case SassArgumentList ():
64
64
_argumentLists.add (value);
65
65
result.argumentList = Value_ArgumentList ()
@@ -178,79 +178,50 @@ final class Protofier {
178
178
179
179
case Value_Value .color:
180
180
var space = ColorSpace .fromName (value.color.space);
181
+ var channel1 =
182
+ value.color.hasChannel1 () ? value.color.channel1 : null ;
183
+ var channel2 =
184
+ value.color.hasChannel2 () ? value.color.channel2 : null ;
185
+ var channel3 =
186
+ value.color.hasChannel3 () ? value.color.channel3 : null ;
187
+ var alpha = value.color.hasAlpha () ? value.color.alpha : null ;
181
188
switch (space) {
182
189
case ColorSpace .rgb:
183
- return SassColor .rgb (value.color.channel1, value.color.channel2,
184
- value.color.channel3, value.color.alpha);
190
+ return SassColor .rgb (channel1, channel2, channel3, alpha);
185
191
186
192
case ColorSpace .hsl:
187
- return SassColor .hsl (value.color.channel1, value.color.channel2,
188
- value.color.channel3, value.color.alpha);
193
+ return SassColor .hsl (channel1, channel2, channel3, alpha);
189
194
190
195
case ColorSpace .hwb:
191
- return SassColor .hwb (value.color.channel1, value.color.channel2,
192
- value.color.channel3, value.color.alpha);
196
+ return SassColor .hwb (channel1, channel2, channel3, alpha);
193
197
194
198
case ColorSpace .lab:
195
- return SassColor .lab (value.color.channel1, value.color.channel2,
196
- value.color.channel3, value.color.alpha);
199
+ return SassColor .lab (channel1, channel2, channel3, alpha);
197
200
case ColorSpace .oklab:
198
- return SassColor .oklab (value.color.channel1, value.color.channel2,
199
- value.color.channel3, value.color.alpha);
201
+ return SassColor .oklab (channel1, channel2, channel3, alpha);
200
202
201
203
case ColorSpace .lch:
202
- return SassColor .lch (value.color.channel1, value.color.channel2,
203
- value.color.channel3, value.color.alpha);
204
+ return SassColor .lch (channel1, channel2, channel3, alpha);
204
205
case ColorSpace .oklch:
205
- return SassColor .oklch (value.color.channel1, value.color.channel2,
206
- value.color.channel3, value.color.alpha);
206
+ return SassColor .oklch (channel1, channel2, channel3, alpha);
207
207
208
208
case ColorSpace .srgb:
209
- return SassColor .srgb (value.color.channel1, value.color.channel2,
210
- value.color.channel3, value.color.alpha);
209
+ return SassColor .srgb (channel1, channel2, channel3, alpha);
211
210
case ColorSpace .srgbLinear:
212
- return SassColor .srgbLinear (
213
- value.color.channel1,
214
- value.color.channel2,
215
- value.color.channel3,
216
- value.color.alpha);
211
+ return SassColor .srgbLinear (channel1, channel2, channel3, alpha);
217
212
case ColorSpace .displayP3:
218
- return SassColor .displayP3 (
219
- value.color.channel1,
220
- value.color.channel2,
221
- value.color.channel3,
222
- value.color.alpha);
213
+ return SassColor .displayP3 (channel1, channel2, channel3, alpha);
223
214
case ColorSpace .a98Rgb:
224
- return SassColor .a98Rgb (
225
- value.color.channel1,
226
- value.color.channel2,
227
- value.color.channel3,
228
- value.color.alpha);
215
+ return SassColor .a98Rgb (channel1, channel2, channel3, alpha);
229
216
case ColorSpace .prophotoRgb:
230
- return SassColor .prophotoRgb (
231
- value.color.channel1,
232
- value.color.channel2,
233
- value.color.channel3,
234
- value.color.alpha);
217
+ return SassColor .prophotoRgb (channel1, channel2, channel3, alpha);
235
218
case ColorSpace .rec2020:
236
- return SassColor .rec2020 (
237
- value.color.channel1,
238
- value.color.channel2,
239
- value.color.channel3,
240
- value.color.alpha);
219
+ return SassColor .rec2020 (channel1, channel2, channel3, alpha);
241
220
242
221
case ColorSpace .xyzD50:
243
- return SassColor .xyzD50 (
244
- value.color.channel1,
245
- value.color.channel2,
246
- value.color.channel3,
247
- value.color.alpha);
222
+ return SassColor .xyzD50 (channel1, channel2, channel3, alpha);
248
223
case ColorSpace .xyzD65:
249
- return SassColor .xyzD65 (
250
- value.color.channel1,
251
- value.color.channel2,
252
- value.color.channel3,
253
- value.color.alpha);
224
+ return SassColor .xyzD65 (channel1, channel2, channel3, alpha);
254
225
255
226
default :
256
227
throw "Unreachable" ;
0 commit comments