Leafo\ScssPhp\Compiler::mergeMediaTypes PHP Method

mergeMediaTypes() protected method

Merge media types
protected mergeMediaTypes ( array $type1, array $type2 ) : array | null
$type1 array
$type2 array
return array | null
    protected function mergeMediaTypes($type1, $type2)
    {
        if (empty($type1)) {
            return $type2;
        }
        if (empty($type2)) {
            return $type1;
        }
        $m1 = '';
        $t1 = '';
        if (count($type1) > 1) {
            $m1 = strtolower($type1[0]);
            $t1 = strtolower($type1[1]);
        } else {
            $t1 = strtolower($type1[0]);
        }
        $m2 = '';
        $t2 = '';
        if (count($type2) > 1) {
            $m2 = strtolower($type2[0]);
            $t2 = strtolower($type2[1]);
        } else {
            $t2 = strtolower($type2[0]);
        }
        if ($m1 === Type::T_NOT ^ $m2 === Type::T_NOT) {
            if ($t1 === $t2) {
                return null;
            }
            return [$m1 === Type::T_NOT ? $m2 : $m1, $m1 === Type::T_NOT ? $t2 : $t1];
        }
        if ($m1 === Type::T_NOT && $m2 === Type::T_NOT) {
            // CSS has no way of representing "neither screen nor print"
            if ($t1 !== $t2) {
                return null;
            }
            return [Type::T_NOT, $t1];
        }
        if ($t1 !== $t2) {
            return null;
        }
        // t1 == t2, neither m1 nor m2 are "not"
        return [empty($m1) ? $m2 : $m1, $t1];
    }
Compiler