%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/SassMap.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\Collection\Map; use ScssPhp\ScssPhp\Visitor\ValueVisitor; /** * A SassScript map. */ final class SassMap extends Value { /** * @var Map<Value> * @readonly */ private $contents; /** * @param Map<Value> $contents */ private function __construct(Map $contents) { $this->contents = Map::unmodifiable($contents); } public static function createEmpty(): SassMap { return new self(new Map()); } /** * @param Map<Value> $contents * * @return SassMap */ public static function create(Map $contents): SassMap { return new self($contents); } /** * The returned Map is unmodifiable. * * @return Map<Value> */ public function getContents(): Map { return $this->contents; } public function getSeparator(): string { return \count($this->contents) === 0 ? ListSeparator::UNDECIDED : ListSeparator::COMMA; } public function asList(): array { $result = []; foreach ($this->contents as $key => $value) { $result[] = new SassList([$key, $value], ListSeparator::SPACE); } return $result; } protected function getLengthAsList(): int { return \count($this->contents); } public function accept(ValueVisitor $visitor) { return $visitor->visitMap($this); } public function assertMap(?string $name = null): SassMap { return $this; } public function tryMap(): ?SassMap { return $this; } public function equals(object $other): bool { if ($other instanceof SassList) { return \count($this->contents) === 0 && \count($other->asList()) === 0; } if (!$other instanceof SassMap) { return false; } if ($this->contents === $other->contents) { return true; } if (\count($this->contents) !== \count($other->contents)) { return false; } foreach ($this->contents as $key => $value) { $otherValue = $other->contents->get($key); if ($otherValue === null) { return false; } if (!$value->equals($otherValue)) { return false; } } return true; } }