tryParse static method
Implementation
static CSSParsedLengthValue? tryParse(String text) {
double? parsedValue;
CSSLengthType unit = CSSLengthType.PX;
if (text == ZERO) {
return zero;
} else if (text == INITIAL) {
return initial;
} else if (text == INHERIT) {
return null;
} else if (text == AUTO) {
return auto;
} else if (text == NONE) {
return none;
} else if (text == NORMAL) {
return normal;
} else if (text.toLowerCase() == 'content') {
return content;
} else if (text.toLowerCase() == 'min-content') {
return minContent;
} else if (text.toLowerCase() == 'max-content') {
return maxContent;
} else if (text.toLowerCase() == 'fit-content') {
return fitContent;
} else if (text.endsWith(REM)) {
parsedValue = double.tryParse(text.split(REM)[0]);
unit = CSSLengthType.REM;
} else if (text.endsWith(EM)) {
parsedValue = double.tryParse(text.split(EM)[0]);
unit = CSSLengthType.EM;
} else if (text.endsWith(EX)) {
parsedValue = double.tryParse(text.split(EX)[0]);
unit = CSSLengthType.EX;
} else if (text.endsWith(CH)) {
parsedValue = double.tryParse(text.split(CH)[0]);
unit = CSSLengthType.CH;
} else if (text.endsWith(RPX)) {
parsedValue = double.tryParse(text.split(RPX)[0]);
unit = CSSLengthType.RPX;
} else if (text.endsWith(PX)) {
parsedValue = double.tryParse(text.split(PX)[0]);
} else if (text.endsWith(VW)) {
parsedValue = double.tryParse(text.split(VW)[0]);
if (parsedValue != null) {
parsedValue = parsedValue / 100;
}
unit = CSSLengthType.VW;
} else if (text.endsWith(VH)) {
parsedValue = double.tryParse(text.split(VH)[0]);
if (parsedValue != null) {
parsedValue = parsedValue / 100;
}
unit = CSSLengthType.VH;
} else if (text.endsWith(CM)) {
parsedValue = double.tryParse(text.split(CM)[0]);
if (parsedValue != null) {
parsedValue = parsedValue * _1cm;
}
} else if (text.endsWith(MM)) {
parsedValue = double.tryParse(text.split(MM)[0]);
if (parsedValue != null) {
parsedValue = parsedValue * _1mm;
}
} else if (text.endsWith(PC)) {
parsedValue = double.tryParse(text.split(PC)[0]);
if (parsedValue != null) {
parsedValue = parsedValue * _1pc;
}
} else if (text.endsWith(PT)) {
parsedValue = double.tryParse(text.split(PT)[0]);
if (parsedValue != null) {
parsedValue = parsedValue * _1pt;
}
} else if (text.endsWith(VMIN)) {
parsedValue = double.tryParse(text.split(VMIN)[0]);
if (parsedValue != null) {
parsedValue = parsedValue / 100;
}
unit = CSSLengthType.VMIN;
} else if (text.endsWith(VMAX)) {
parsedValue = double.tryParse(text.split(VMAX)[0]);
if (parsedValue != null) {
parsedValue = parsedValue / 100;
}
unit = CSSLengthType.VMAX;
} else if (text.endsWith(IN)) {
parsedValue = double.tryParse(text.split(IN)[0]);
if (parsedValue != null) {
parsedValue = parsedValue * _1in;
}
} else if (text.endsWith(Q)) {
parsedValue = double.tryParse(text.split(Q)[0]);
if (parsedValue != null) {
parsedValue = parsedValue * _1Q;
}
} else if (text.endsWith(PERCENTAGE)) {
parsedValue = double.tryParse(text.split(PERCENTAGE)[0]);
if (parsedValue != null) {
parsedValue = parsedValue / 100;
}
unit = CSSLengthType.PERCENTAGE;
} else if (CSSFunction.isFunction(text)) {
return null;
} else {
parsedValue = double.tryParse(text);
}
if (parsedValue == 0 && unit != CSSLengthType.PERCENTAGE) {
return zero;
}
if (parsedValue == null) {
return null;
}
return CSSParsedLengthValue(parsedValue, unit);
}