HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux vm8 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: afleverb (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //var/www/mussarq_bak/wp-content/plugins/megamenu/classes/scss/1.11.1/src/ValueConverter.php
<?php

/**
 * SCSSPHP
 *
 * @copyright 2012-2020 Leaf Corcoran
 *
 * @license http://opensource.org/licenses/MIT MIT
 *
 * @link http://scssphp.github.io/scssphp
 */

namespace ScssPhp\ScssPhp;

use ScssPhp\ScssPhp\Node\Number;

final class ValueConverter
{
    // Prevent instantiating it
    private function __construct()
    {
    }

    /**
     * Parses a value from a Scss source string.
     *
     * The returned value is guaranteed to be supported by the
     * Compiler methods for registering custom variables. No other
     * guarantee about it is provided. It should be considered
     * opaque values by the caller.
     *
     * @param string $source
     *
     * @return mixed
     */
    public static function parseValue($source)
    {
        $parser = new Parser(__CLASS__);

        if (!$parser->parseValue($source, $value)) {
            throw new \InvalidArgumentException(sprintf('Invalid value source "%s".', $source));
        }

        return $value;
    }

    /**
     * Converts a PHP value to a Sass value
     *
     * The returned value is guaranteed to be supported by the
     * Compiler methods for registering custom variables. No other
     * guarantee about it is provided. It should be considered
     * opaque values by the caller.
     *
     * @param mixed $value
     *
     * @return mixed
     */
    public static function fromPhp($value)
    {
        if ($value instanceof Number) {
            return $value;
        }

        if (is_array($value) && isset($value[0]) && \in_array($value[0], [Type::T_NULL, Type::T_COLOR, Type::T_KEYWORD, Type::T_LIST, Type::T_MAP, Type::T_STRING])) {
            return $value;
        }

        if ($value === null) {
            return Compiler::$null;
        }

        if ($value === true) {
            return Compiler::$true;
        }

        if ($value === false) {
            return Compiler::$false;
        }

        if ($value === '') {
            return Compiler::$emptyString;
        }

        if (\is_int($value) || \is_float($value)) {
            return new Number($value, '');
        }

        if (\is_string($value)) {
            return [Type::T_STRING, '"', [$value]];
        }

        throw new \InvalidArgumentException(sprintf('Cannot convert the value of type "%s" to a Sass value.', gettype($value)));
    }
}