%PDF- %PDF-
Direktori : /home/q/g/b/qgbqkvz/www/wp-content/plugins/wp-scss/scssphp/src/Ast/Css/ |
Current File : /home/q/g/b/qgbqkvz/www/wp-content/plugins/wp-scss/scssphp/src/Ast/Css/ModifiableCssDeclaration.php |
<?php /** * SCSSPHP * * @copyright 2012-2020 Leaf Corcoran * * @license http://opensource.org/licenses/MIT MIT * * @link http://scssphp.github.io/scssphp */ namespace ScssPhp\ScssPhp\Ast\Css; use ScssPhp\ScssPhp\SourceSpan\FileSpan; use ScssPhp\ScssPhp\Value\SassString; use ScssPhp\ScssPhp\Value\Value; /** * A modifiable version of {@see CssDeclaration} for use in the evaluation step. * * @internal */ final class ModifiableCssDeclaration extends ModifiableCssNode implements CssDeclaration { /** * @var CssValue<string> * @readonly */ private $name; /** * @var CssValue<Value> * @readonly */ private $value; /** * @var bool * @readonly */ private $parsedAsCustomProperty; /** * @var FileSpan * @readonly */ private $valueSpanForMap; /** * @var FileSpan * @readonly */ private $span; /** * @param CssValue<string> $name * @param CssValue<Value> $value * @param bool $parsedAsCustomProperty * @param FileSpan $valueSpanForMap * @param FileSpan $span */ public function __construct(CssValue $name, CssValue $value, FileSpan $span, bool $parsedAsCustomProperty, ?FileSpan $valueSpanForMap = null) { $this->name = $name; $this->value = $value; $this->parsedAsCustomProperty = $parsedAsCustomProperty; $this->valueSpanForMap = $valueSpanForMap ?? $value->getSpan(); $this->span = $span; if ($parsedAsCustomProperty) { if (!$this->isCustomProperty()) { throw new \InvalidArgumentException('parsedAsCustomProperty must be false if name doesn\'t begin with "--".'); } if (!$value->getValue() instanceof SassString) { throw new \InvalidArgumentException(sprintf('If parsedAsCustomProperty is true, value must contain a SassString (was %s).', get_class($value->getValue()))); } } } public function getName(): CssValue { return $this->name; } public function getValue(): CssValue { return $this->value; } public function isParsedAsCustomProperty(): bool { return $this->parsedAsCustomProperty; } public function getValueSpanForMap(): FileSpan { return $this->valueSpanForMap; } public function getSpan(): FileSpan { return $this->span; } public function isCustomProperty(): bool { return 0 === strpos($this->name->getValue(), '--'); } public function accept($visitor) { return $visitor->visitCssDeclaration($this); } }