Skip to content

Commit 0ab2022

Browse files
committed
l,a,b,alpha values in relative mode
1 parent b169014 commit 0ab2022

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

org/w3c/css/values/color/LAB.java

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.w3c.css.values.CssCheckableValue;
1313
import org.w3c.css.values.CssColor;
1414
import org.w3c.css.values.CssExpression;
15+
import org.w3c.css.values.CssIdent;
1516
import org.w3c.css.values.CssNumber;
1617
import org.w3c.css.values.CssTypes;
1718
import org.w3c.css.values.CssValue;
@@ -20,6 +21,15 @@
2021
import static org.w3c.css.values.CssOperator.SPACE;
2122

2223
public class LAB {
24+
public static final CssIdent l, a, b, al;
25+
26+
static {
27+
l = CssIdent.getIdent("h");
28+
a = CssIdent.getIdent("s");
29+
b = CssIdent.getIdent("l");
30+
al = CssIdent.getIdent("alpha");
31+
}
32+
2333
String output = null;
2434
CssValue vl, va, vb, alpha;
2535
boolean faSet = false;
@@ -128,7 +138,8 @@ public static final LAB parseLABColor(ApplContext ac, CssExpression exp, CssColo
128138
lab.setL(ac, val);
129139
break;
130140
case CssTypes.CSS_IDENT:
131-
if (CssColor.none.equals(val.getIdent())) {
141+
if (CssColor.none.equals(val.getIdent()) ||
142+
(lab.isRelative && l.equals(val.getIdent()))) {
132143
lab.setL(ac, val);
133144
break;
134145
}
@@ -152,7 +163,8 @@ public static final LAB parseLABColor(ApplContext ac, CssExpression exp, CssColo
152163
lab.setA(ac, val);
153164
break;
154165
case CssTypes.CSS_IDENT:
155-
if (CssColor.none.equals(val.getIdent())) {
166+
if (CssColor.none.equals(val.getIdent()) ||
167+
(lab.isRelative && a.equals(val.getIdent()))) {
156168
lab.setA(ac, val);
157169
break;
158170
}
@@ -179,7 +191,8 @@ public static final LAB parseLABColor(ApplContext ac, CssExpression exp, CssColo
179191
lab.setB(ac, val);
180192
break;
181193
case CssTypes.CSS_IDENT:
182-
if (CssColor.none.equals(val.getIdent())) {
194+
if (CssColor.none.equals(val.getIdent()) ||
195+
(lab.isRelative && b.equals(val.getIdent()))) {
183196
lab.setB(ac, val);
184197
break;
185198
}
@@ -218,7 +231,8 @@ public static final LAB parseLABColor(ApplContext ac, CssExpression exp, CssColo
218231
lab.setAlpha(ac, val);
219232
break;
220233
case CssTypes.CSS_IDENT:
221-
if (CssColor.none.equals(val.getIdent())) {
234+
if (CssColor.none.equals(val.getIdent()) ||
235+
(lab.isRelative && al.equals(val.getIdent()))) {
222236
lab.setAlpha(ac, val);
223237
break;
224238
}

0 commit comments

Comments
 (0)