%PDF- %PDF-
| Direktori : /home/q/g/b/qgbqkvz/www/wp-content/plugins/wp-scss/scssphp/src/Ast/Sass/Statement/ |
| Current File : /home/q/g/b/qgbqkvz/www/wp-content/plugins/wp-scss/scssphp/src/Ast/Sass/Statement/ExtendRule.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\Sass\Statement;
use ScssPhp\ScssPhp\Ast\Sass\Interpolation;
use ScssPhp\ScssPhp\Ast\Sass\Statement;
use ScssPhp\ScssPhp\SourceSpan\FileSpan;
use ScssPhp\ScssPhp\Visitor\StatementVisitor;
/**
* An `@extend` rule.
*
* This gives one selector all the styling of another.
*
* @internal
*/
final class ExtendRule implements Statement
{
/**
* @var Interpolation
* @readonly
*/
private $selector;
/**
* @var FileSpan
* @readonly
*/
private $span;
/**
* @var bool
* @readonly
*/
private $optional;
public function __construct(Interpolation $selector, FileSpan $span, bool $optional = false)
{
$this->selector = $selector;
$this->span = $span;
$this->optional = $optional;
}
public function getSelector(): Interpolation
{
return $this->selector;
}
/**
* Whether this is an optional extension.
*
* If an extension isn't optional, it will emit an error if it doesn't match
* any selectors.
*/
public function isOptional(): bool
{
return $this->optional;
}
public function getSpan(): FileSpan
{
return $this->span;
}
public function accept(StatementVisitor $visitor)
{
return $visitor->visitExtendRule($this);
}
public function __toString(): string
{
return '@extend ' . $this->selector . ($this->optional ? ' !optional' : '') . ';';
}
}