Example #1
0
 /**
  * Constructor.
  *
  * @param string $name The name
  * @param array|string $value The value
  * @param RulesetNode|null|array $rules
  * @param int $index The index
  * @param FileInfo $currentFileInfo Current file info
  * @param DebugInfo $debugInfo The debug information
  * @param bool $isReferenced Is referenced?
  * @param bool $isRooted Is rooted?
  */
 public function __construct($name, $value, $rules = null, $index = 0, FileInfo $currentFileInfo = null, DebugInfo $debugInfo = null, $isReferenced = false, $isRooted = false)
 {
     $this->name = $name;
     parent::__construct($value);
     if (null !== $rules) {
         if (is_array($rules)) {
             $this->rules = $rules;
         } else {
             $this->rules = [$rules];
             $selectors = new SelectorNode([], [], null, $index, $currentFileInfo);
             $this->rules[0]->selectors = $selectors->createEmptySelectors();
         }
         for ($i = 0; $i < count($this->rules); ++$i) {
             $this->rules[$i]->allowImports = true;
         }
     } else {
         // null
         $this->rules = $rules;
     }
     $this->index = $index;
     $this->currentFileInfo = $currentFileInfo;
     $this->debugInfo = $debugInfo;
     $this->isReferenced = $isReferenced;
     $this->isRooted = $isRooted;
 }
Example #2
0
 /**
  * Compiles top media
  *
  * @param Context $context
  * @return RulesetNode
  */
 public function compileTop(Context $context)
 {
     $result = $this;
     if (count($context->mediaBlocks) > 1) {
         $selector = new SelectorNode([], [], null, $this->index, $this->currentFileInfo);
         $selectors = $selector->createEmptySelectors();
         $result = new RulesetNode($selectors, $context->mediaBlocks);
         $result->multiMedia = true;
     }
     $context->mediaBlocks = [];
     $context->mediaPath = [];
     return $result;
 }