Automattic\WooCommerce\Vendor\Sabberworm\CSS\Value

Size::parsepublic staticWC 1.0

Method of the class: Size{}

No Hooks.

Returns

Size.

Usage

$result = Size::parse( $oParserState, $bIsColorComponent );
$oParserState(ParserState) (required)
.
$bIsColorComponent(true|false)
.
Default: false

Size::parse() code WC 10.4.3

public static function parse(ParserState $oParserState, $bIsColorComponent = false)
{
    $sSize = '';
    if ($oParserState->comes('-')) {
        $sSize .= $oParserState->consume('-');
    }
    while (is_numeric($oParserState->peek()) || $oParserState->comes('.') || $oParserState->comes('e', true)) {
        if ($oParserState->comes('.')) {
            $sSize .= $oParserState->consume('.');
        } elseif ($oParserState->comes('e', true)) {
            $sLookahead = $oParserState->peek(1, 1);
            if (is_numeric($sLookahead) || $sLookahead === '+' || $sLookahead === '-') {
                $sSize .= $oParserState->consume(2);
            } else {
                break; // Reached the unit part of the number like "em" or "ex"
            }
        } else {
            $sSize .= $oParserState->consume(1);
        }
    }

    $sUnit = null;
    $aSizeUnits = self::getSizeUnits();
    foreach ($aSizeUnits as $iLength => &$aValues) {
        $sKey = strtolower($oParserState->peek($iLength));
        if (array_key_exists($sKey, $aValues)) {
            if (($sUnit = $aValues[$sKey]) !== null) {
                $oParserState->consume($iLength);
                break;
            }
        }
    }
    return new Size((float)$sSize, $sUnit, $bIsColorComponent, $oParserState->currentLine());
}