PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.34.2
MailPoet – Newsletters, Email Marketing, and Automation v5.34.2
5.35.1 5.35.0 5.34.3 5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / vendor-prefixed / sabberworm / php-css-parser / src / OutputFormatter.php
mailpoet / vendor-prefixed / sabberworm / php-css-parser / src Last commit date
CSSList 8 months ago Comment 3 years ago Parsing 2 years ago Property 2 years ago Rule 2 years ago RuleSet 8 months ago Value 2 years ago OutputFormat.php 2 years ago OutputFormatter.php 2 years ago Parser.php 8 months ago Renderable.php 4 years ago Settings.php 4 years ago index.php 3 years ago
OutputFormatter.php
149 lines
1 <?php
2 namespace MailPoetVendor\Sabberworm\CSS;
3 if (!defined('ABSPATH')) exit;
4 use MailPoetVendor\Sabberworm\CSS\Comment\Commentable;
5 use MailPoetVendor\Sabberworm\CSS\Parsing\OutputException;
6 class OutputFormatter
7 {
8 private $oFormat;
9 public function __construct(OutputFormat $oFormat)
10 {
11 $this->oFormat = $oFormat;
12 }
13 public function space($sName, $sType = null)
14 {
15 $sSpaceString = $this->oFormat->get("Space{$sName}");
16 // If $sSpaceString is an array, we have multiple values configured
17 // depending on the type of object the space applies to
18 if (\is_array($sSpaceString)) {
19 if ($sType !== null && isset($sSpaceString[$sType])) {
20 $sSpaceString = $sSpaceString[$sType];
21 } else {
22 $sSpaceString = \reset($sSpaceString);
23 }
24 }
25 return $this->prepareSpace($sSpaceString);
26 }
27 public function spaceAfterRuleName()
28 {
29 return $this->space('AfterRuleName');
30 }
31 public function spaceBeforeRules()
32 {
33 return $this->space('BeforeRules');
34 }
35 public function spaceAfterRules()
36 {
37 return $this->space('AfterRules');
38 }
39 public function spaceBetweenRules()
40 {
41 return $this->space('BetweenRules');
42 }
43 public function spaceBeforeBlocks()
44 {
45 return $this->space('BeforeBlocks');
46 }
47 public function spaceAfterBlocks()
48 {
49 return $this->space('AfterBlocks');
50 }
51 public function spaceBetweenBlocks()
52 {
53 return $this->space('BetweenBlocks');
54 }
55 public function spaceBeforeSelectorSeparator()
56 {
57 return $this->space('BeforeSelectorSeparator');
58 }
59 public function spaceAfterSelectorSeparator()
60 {
61 return $this->space('AfterSelectorSeparator');
62 }
63 public function spaceBeforeListArgumentSeparator($sSeparator)
64 {
65 return $this->space('BeforeListArgumentSeparator', $sSeparator);
66 }
67 public function spaceAfterListArgumentSeparator($sSeparator)
68 {
69 return $this->space('AfterListArgumentSeparator', $sSeparator);
70 }
71 public function spaceBeforeOpeningBrace()
72 {
73 return $this->space('BeforeOpeningBrace');
74 }
75 public function safely($cCode)
76 {
77 if ($this->oFormat->get('IgnoreExceptions')) {
78 // If output exceptions are ignored, run the code with exception guards
79 try {
80 return $cCode();
81 } catch (OutputException $e) {
82 return null;
83 }
84 // Do nothing
85 } else {
86 // Run the code as-is
87 return $cCode();
88 }
89 }
90 public function implode($sSeparator, array $aValues, $bIncreaseLevel = \false)
91 {
92 $sResult = '';
93 $oFormat = $this->oFormat;
94 if ($bIncreaseLevel) {
95 $oFormat = $oFormat->nextLevel();
96 }
97 $bIsFirst = \true;
98 foreach ($aValues as $mValue) {
99 if ($bIsFirst) {
100 $bIsFirst = \false;
101 } else {
102 $sResult .= $sSeparator;
103 }
104 if ($mValue instanceof Renderable) {
105 $sResult .= $mValue->render($oFormat);
106 } else {
107 $sResult .= $mValue;
108 }
109 }
110 return $sResult;
111 }
112 public function removeLastSemicolon($sString)
113 {
114 if ($this->oFormat->get('SemicolonAfterLastRule')) {
115 return $sString;
116 }
117 $sString = \explode(';', $sString);
118 if (\count($sString) < 2) {
119 return $sString[0];
120 }
121 $sLast = \array_pop($sString);
122 $sNextToLast = \array_pop($sString);
123 \array_push($sString, $sNextToLast . $sLast);
124 return \implode(';', $sString);
125 }
126 public function comments(Commentable $oCommentable)
127 {
128 if (!$this->oFormat->bRenderComments) {
129 return '';
130 }
131 $sResult = '';
132 $aComments = $oCommentable->getComments();
133 $iLastCommentIndex = \count($aComments) - 1;
134 foreach ($aComments as $i => $oComment) {
135 $sResult .= $oComment->render($this->oFormat);
136 $sResult .= $i === $iLastCommentIndex ? $this->spaceAfterBlocks() : $this->spaceBetweenBlocks();
137 }
138 return $sResult;
139 }
140 private function prepareSpace($sSpaceString)
141 {
142 return \str_replace("\n", "\n" . $this->indent(), $sSpaceString);
143 }
144 private function indent()
145 {
146 return \str_repeat($this->oFormat->sIndentation, $this->oFormat->level());
147 }
148 }
149