MDL-65759 library: Update php-css-parser to 8.3.0
[moodle.git] / lib / php-css-parser / CSSList / AtRuleBlockList.php
1 <?php
3 namespace Sabberworm\CSS\CSSList;
5 use Sabberworm\CSS\Property\AtRule;
7 /**
8  * A BlockList constructed by an unknown @-rule. @media rules are rendered into AtRuleBlockList objects.
9  */
10 class AtRuleBlockList extends CSSBlockList implements AtRule {
12         private $sType;
13         private $sArgs;
15         public function __construct($sType, $sArgs = '', $iLineNo = 0) {
16                 parent::__construct($iLineNo);
17                 $this->sType = $sType;
18                 $this->sArgs = $sArgs;
19         }
21         public function atRuleName() {
22                 return $this->sType;
23         }
25         public function atRuleArgs() {
26                 return $this->sArgs;
27         }
29         public function __toString() {
30                 return $this->render(new \Sabberworm\CSS\OutputFormat());
31         }
33         public function render(\Sabberworm\CSS\OutputFormat $oOutputFormat) {
34                 $sArgs = $this->sArgs;
35                 if($sArgs) {
36                         $sArgs = ' ' . $sArgs;
37                 }
38                 $sResult  = $oOutputFormat->sBeforeAtRuleBlock;
39                 $sResult .= "@{$this->sType}$sArgs{$oOutputFormat->spaceBeforeOpeningBrace()}{";
40                 $sResult .= parent::render($oOutputFormat);
41                 $sResult .= '}';
42                 $sResult .= $oOutputFormat->sAfterAtRuleBlock;
43                 return $sResult;
44         }
46         public function isRootList() {
47                 return false;
48         }
50 }