1212import org .w3c .css .values .CssCheckableValue ;
1313import org .w3c .css .values .CssColor ;
1414import org .w3c .css .values .CssExpression ;
15+ import org .w3c .css .values .CssIdent ;
1516import org .w3c .css .values .CssNumber ;
1617import org .w3c .css .values .CssTypes ;
1718import org .w3c .css .values .CssValue ;
2021import static org .w3c .css .values .CssOperator .SPACE ;
2122
2223public 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