%PDF- %PDF-
| Direktori : /home/q/g/b/qgbqkvz/www/wp-content/plugins/wp-scss/scssphp/src/Value/ |
| Current File : /home/q/g/b/qgbqkvz/www/wp-content/plugins/wp-scss/scssphp/src/Value/UnitlessSassNumber.php |
<?php
/**
* SCSSPHP
*
* @copyright 2012-2020 Leaf Corcoran
*
* @license http://opensource.org/licenses/MIT MIT
*
* @link http://scssphp.github.io/scssphp
*/
namespace ScssPhp\ScssPhp\Value;
use ScssPhp\ScssPhp\Util\NumberUtil;
/**
* A specialized subclass of {@see SassNumber} for numbers that have no units.
*
* @internal
*/
final class UnitlessSassNumber extends SassNumber
{
/**
* @param float $value
* @param array{SassNumber, SassNumber}|null $asSlash
*/
public function __construct(float $value, array $asSlash = null)
{
parent::__construct($value, $asSlash);
}
public function getNumeratorUnits(): array
{
return [];
}
public function getDenominatorUnits(): array
{
return [];
}
public function hasUnits(): bool
{
return false;
}
protected function withValue(float $value): SassNumber
{
return new self($value);
}
public function withSlash(SassNumber $numerator, SassNumber $denominator): SassNumber
{
return new self($this->getValue(), array($numerator, $denominator));
}
public function hasUnit(string $unit): bool
{
return false;
}
public function hasCompatibleUnits(SassNumber $other): bool
{
return $other instanceof UnitlessSassNumber;
}
public function hasPossiblyCompatibleUnits(SassNumber $other): bool
{
return $other instanceof UnitlessSassNumber;
}
public function compatibleWithUnit(string $unit): bool
{
return true;
}
public function coerceToMatch(SassNumber $other, ?string $name = null, ?string $otherName = null): SassNumber
{
return $other->withValue($this->getValue());
}
public function coerceValueToMatch(SassNumber $other, ?string $name = null, ?string $otherName = null): float
{
return $this->getValue();
}
public function convertToMatch(SassNumber $other, ?string $name = null, ?string $otherName = null): SassNumber
{
if (!$other->hasUnits()) {
return $this;
}
// Call the parent to generate a consistent error message.
return parent::convertToMatch($other, $name, $otherName);
}
public function convertValueToMatch(SassNumber $other, ?string $name = null, ?string $otherName = null): float
{
if (!$other->hasUnits()) {
return $this->getValue();
}
// Call the parent to generate a consistent error message.
return parent::convertValueToMatch($other, $name, $otherName);
}
public function coerce(array $newNumeratorUnits, array $newDenominatorUnits, ?string $name = null): SassNumber
{
return SassNumber::withUnits($this->getValue(), $newNumeratorUnits, $newDenominatorUnits);
}
public function coerceValue(array $newNumeratorUnits, array $newDenominatorUnits, ?string $name = null): float
{
return $this->getValue();
}
public function coerceValueToUnit(string $unit, ?string $name = null): float
{
return $this->getValue();
}
public function greaterThan(Value $other): SassBoolean
{
if ($other instanceof SassNumber) {
return SassBoolean::create(NumberUtil::fuzzyGreaterThan($this->getValue(), $other->getValue()));
}
return parent::greaterThan($other);
}
public function greaterThanOrEquals(Value $other): SassBoolean
{
if ($other instanceof SassNumber) {
return SassBoolean::create(NumberUtil::fuzzyGreaterThanOrEquals($this->getValue(), $other->getValue()));
}
return parent::greaterThanOrEquals($other);
}
public function lessThan(Value $other): SassBoolean
{
if ($other instanceof SassNumber) {
return SassBoolean::create(NumberUtil::fuzzyLessThan($this->getValue(), $other->getValue()));
}
return parent::lessThan($other);
}
public function lessThanOrEquals(Value $other): SassBoolean
{
if ($other instanceof SassNumber) {
return SassBoolean::create(NumberUtil::fuzzyLessThanOrEquals($this->getValue(), $other->getValue()));
}
return parent::lessThanOrEquals($other);
}
public function modulo(Value $other): Value
{
if ($other instanceof SassNumber) {
return $other->withValue(NumberUtil::moduloLikeSass($this->getValue(), $other->getValue()));
}
return parent::modulo($other);
}
public function plus(Value $other): Value
{
if ($other instanceof SassNumber) {
return $other->withValue($this->getValue() + $other->getValue());
}
return parent::plus($other);
}
public function minus(Value $other): Value
{
if ($other instanceof SassNumber) {
return $other->withValue($this->getValue() - $other->getValue());
}
return parent::minus($other);
}
public function times(Value $other): Value
{
if ($other instanceof SassNumber) {
return $other->withValue($this->getValue() * $other->getValue());
}
return parent::times($other);
}
public function dividedBy(Value $other): Value
{
if ($other instanceof SassNumber) {
$value = NumberUtil::divideLikeSass($this->getValue(), $other->getValue());
if ($other->hasUnits()) {
return SassNumber::withUnits($value, $other->getDenominatorUnits(), $other->getNumeratorUnits());
}
return new self($value);
}
return parent::dividedBy($other);
}
public function unaryMinus(): Value
{
return new self(-$this->getValue());
}
public function equals(object $other): bool
{
return $other instanceof UnitlessSassNumber && NumberUtil::fuzzyEquals($this->getValue(), $other->getValue());
}
}