@@ -809,33 +809,40 @@ class ExpressionMapping {
809
809
previousIndex = i + 1 ;
810
810
}
811
811
for (List <css.Expression > list in valueList) {
812
- css.Expression exp = list[0 ];
813
- css.Expression exp2 = list[1 ];
814
- css.LiteralTerm ? exp3 = list.length > 2 ? list[2 ] as css.LiteralTerm ? : null ;
815
- css.LiteralTerm ? exp4 = list.length > 3 ? list[3 ] as css.LiteralTerm ? : null ;
812
+ css.Expression ? offsetX;
813
+ css.Expression ? offsetY;
814
+ css.Expression ? blurRadius;
815
+ css.HexColorTerm ? color;
816
+ int expressionIndex = 0 ;
817
+ list.forEach ((element) {
818
+ if (element is css.HexColorTerm ) {
819
+ color = element;
820
+ } else if (expressionIndex == 0 ) {
821
+ offsetX = element;
822
+ expressionIndex++ ;
823
+ } else if (expressionIndex++ == 1 ) {
824
+ offsetY = element;
825
+ expressionIndex++ ;
826
+ } else {
827
+ blurRadius = element;
828
+ }
829
+ });
816
830
RegExp nonNumberRegex = RegExp (r'\s+(\d+\.\d+)\s+' );
817
- if (exp is css.LiteralTerm && exp2 is css.LiteralTerm ) {
818
- if (exp3 != null && ExpressionMapping .expressionToColor (exp3 ) != null ) {
831
+ if (offsetX is css.LiteralTerm && offsetY is css.LiteralTerm ) {
832
+ if (color != null && ExpressionMapping .expressionToColor (color ) != null ) {
819
833
shadow.add (Shadow (
820
- color: expressionToColor (exp3)! ,
821
- offset: Offset (double .tryParse (exp.text.replaceAll (nonNumberRegex, '' ))! , double .tryParse (exp2.text.replaceAll (nonNumberRegex, '' ))! )
834
+ color: expressionToColor (color)! ,
835
+ offset: Offset (
836
+ double .tryParse ((offsetX as css.LiteralTerm ).text.replaceAll (nonNumberRegex, '' ))! ,
837
+ double .tryParse ((offsetY as css.LiteralTerm ).text.replaceAll (nonNumberRegex, '' ))! ),
838
+ blurRadius: (blurRadius is css.LiteralTerm ) ? double .tryParse ((blurRadius as css.LiteralTerm ).text.replaceAll (nonNumberRegex, '' ))! : 0.0 ,
822
839
));
823
- } else if (exp3 != null && exp3 is css.LiteralTerm ) {
824
- if (exp4 != null && ExpressionMapping .expressionToColor (exp4) != null ) {
825
- shadow.add (Shadow (
826
- color: expressionToColor (exp4)! ,
827
- offset: Offset (double .tryParse (exp.text.replaceAll (nonNumberRegex, '' ))! , double .tryParse (exp2.text.replaceAll (nonNumberRegex, '' ))! ),
828
- blurRadius: double .tryParse (exp3.text.replaceAll (nonNumberRegex, '' ))!
829
- ));
830
- } else {
831
- shadow.add (Shadow (
832
- offset: Offset (double .tryParse (exp.text.replaceAll (nonNumberRegex, '' ))! , double .tryParse (exp2.text.replaceAll (nonNumberRegex, '' ))! ),
833
- blurRadius: double .tryParse (exp3.text.replaceAll (nonNumberRegex, '' ))!
834
- ));
835
- }
836
840
} else {
837
841
shadow.add (Shadow (
838
- offset: Offset (double .tryParse (exp.text.replaceAll (nonNumberRegex, '' ))! , double .tryParse (exp2.text.replaceAll (nonNumberRegex, '' ))! )
842
+ offset: Offset (
843
+ double .tryParse ((offsetX as css.LiteralTerm ).text.replaceAll (nonNumberRegex, '' ))! ,
844
+ double .tryParse ((offsetY as css.LiteralTerm ).text.replaceAll (nonNumberRegex, '' ))! ),
845
+ blurRadius: (blurRadius is css.LiteralTerm ) ? double .tryParse ((blurRadius as css.LiteralTerm ).text.replaceAll (nonNumberRegex, '' ))! : 0.0 ,
839
846
));
840
847
}
841
848
}
0 commit comments