PluginProbe
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress / 11.1.1
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress v11.1.1
11.1.1 11.1.0 11.0.5 11.0.4 11.0.3 11.0.2 11.0.1 11.0.0 10.11.1 10.11.0 10.10.2 10.10.1 10.10.0 10.9.1 trunk 10.0.0 10.0.1 10.1.0 10.1.1 10.1.2 10.1.3 10.1.4 10.2.0 10.2.1 10.2.2 All 62 releases
← All changes | back/Libraries/Sabberworm/CSS/src/OutputFormat.php +0 -334 10.2.2 → 11.1.1 View file →
@@ -1,334 +1,0 @@
1 -<?php
2 -
3 -namespace Sabberworm\CSS;
4 -
5 -/**
6 - * Class OutputFormat
7 - *
8 - * @method OutputFormat setSemicolonAfterLastRule(bool $bSemicolonAfterLastRule) Set whether semicolons are added after
9 - * last rule.
10 - */
11 -class OutputFormat
12 -{
13 - /**
14 - * Value format: `"` means double-quote, `'` means single-quote
15 - *
16 - * @var string
17 - */
18 - public $sStringQuotingType = '"';
19 -
20 - /**
21 - * Output RGB colors in hash notation if possible
22 - *
23 - * @var string
24 - */
25 - public $bRGBHashNotation = true;
26 -
27 - /**
28 - * Declaration format
29 - *
30 - * Semicolon after the last rule of a declaration block can be omitted. To do that, set this false.
31 - *
32 - * @var bool
33 - */
34 - public $bSemicolonAfterLastRule = true;
35 -
36 - /**
37 - * Spacing
38 - * Note that these strings are not sanity-checked: the value should only consist of whitespace
39 - * Any newline character will be indented according to the current level.
40 - * The triples (After, Before, Between) can be set using a wildcard (e.g. `$oFormat->set('Space*Rules', "\n");`)
41 - */
42 - public $sSpaceAfterRuleName = ' ';
43 -
44 - /**
45 - * @var string
46 - */
47 - public $sSpaceBeforeRules = '';
48 -
49 - /**
50 - * @var string
51 - */
52 - public $sSpaceAfterRules = '';
53 -
54 - /**
55 - * @var string
56 - */
57 - public $sSpaceBetweenRules = '';
58 -
59 - /**
60 - * @var string
61 - */
62 - public $sSpaceBeforeBlocks = '';
63 -
64 - /**
65 - * @var string
66 - */
67 - public $sSpaceAfterBlocks = '';
68 -
69 - /**
70 - * @var string
71 - */
72 - public $sSpaceBetweenBlocks = "\n";
73 -
74 - /**
75 - * Content injected in and around at-rule blocks.
76 - *
77 - * @var string
78 - */
79 - public $sBeforeAtRuleBlock = '';
80 -
81 - /**
82 - * @var string
83 - */
84 - public $sAfterAtRuleBlock = '';
85 -
86 - /**
87 - * This is what’s printed before and after the comma if a declaration block contains multiple selectors.
88 - *
89 - * @var string
90 - */
91 - public $sSpaceBeforeSelectorSeparator = '';
92 -
93 - /**
94 - * @var string
95 - */
96 - public $sSpaceAfterSelectorSeparator = ' ';
97 -
98 - /**
99 - * This is what’s printed after the comma of value lists
100 - *
101 - * @var string
102 - */
103 - public $sSpaceBeforeListArgumentSeparator = '';
104 -
105 - /**
106 - * @var string
107 - */
108 - public $sSpaceAfterListArgumentSeparator = '';
109 -
110 - /**
111 - * @var string
112 - */
113 - public $sSpaceBeforeOpeningBrace = ' ';
114 -
115 - /**
116 - * Content injected in and around declaration blocks.
117 - *
118 - * @var string
119 - */
120 - public $sBeforeDeclarationBlock = '';
121 -
122 - /**
123 - * @var string
124 - */
125 - public $sAfterDeclarationBlockSelectors = '';
126 -
127 - /**
128 - * @var string
129 - */
130 - public $sAfterDeclarationBlock = '';
131 -
132 - /**
133 - * Indentation character(s) per level. Only applicable if newlines are used in any of the spacing settings.
134 - *
135 - * @var string
136 - */
137 - public $sIndentation = "\t";
138 -
139 - /**
140 - * Output exceptions.
141 - *
142 - * @var bool
143 - */
144 - public $bIgnoreExceptions = false;
145 -
146 - /**
147 - * @var OutputFormatter|null
148 - */
149 - private $oFormatter = null;
150 -
151 - /**
152 - * @var OutputFormat|null
153 - */
154 - private $oNextLevelFormat = null;
155 -
156 - /**
157 - * @var int
158 - */
159 - private $iIndentationLevel = 0;
160 -
161 - public function __construct()
162 - {
163 - }
164 -
165 - /**
166 - * @param string $sName
167 - *
168 - * @return string|null
169 - */
170 - public function get($sName)
171 - {
172 - $aVarPrefixes = ['a', 's', 'm', 'b', 'f', 'o', 'c', 'i'];
173 - foreach ($aVarPrefixes as $sPrefix) {
174 - $sFieldName = $sPrefix . ucfirst($sName);
175 - if (isset($this->$sFieldName)) {
176 - return $this->$sFieldName;
177 - }
178 - }
179 - return null;
180 - }
181 -
182 - /**
183 - * @param array<array-key, string>|string $aNames
184 - * @param mixed $mValue
185 - *
186 - * @return self|false
187 - */
188 - public function set($aNames, $mValue)
189 - {
190 - $aVarPrefixes = ['a', 's', 'm', 'b', 'f', 'o', 'c', 'i'];
191 - if (is_string($aNames) && strpos($aNames, '*') !== false) {
192 - $aNames =
193 - [
194 - str_replace('*', 'Before', $aNames),
195 - str_replace('*', 'Between', $aNames),
196 - str_replace('*', 'After', $aNames),
197 - ];
198 - } elseif (!is_array($aNames)) {
199 - $aNames = [$aNames];
200 - }
201 - foreach ($aVarPrefixes as $sPrefix) {
202 - $bDidReplace = false;
203 - foreach ($aNames as $sName) {
204 - $sFieldName = $sPrefix . ucfirst($sName);
205 - if (isset($this->$sFieldName)) {
206 - $this->$sFieldName = $mValue;
207 - $bDidReplace = true;
208 - }
209 - }
210 - if ($bDidReplace) {
211 - return $this;
212 - }
213 - }
214 - // Break the chain so the user knows this option is invalid
215 - return false;
216 - }
217 -
218 - /**
219 - * @param string $sMethodName
220 - * @param array<array-key, mixed> $aArguments
221 - *
222 - * @return mixed
223 - *
224 - * @throws \Exception
225 - */
226 - public function __call($sMethodName, array $aArguments)
227 - {
228 - if (strpos($sMethodName, 'set') === 0) {
229 - return $this->set(substr($sMethodName, 3), $aArguments[0]);
230 - } elseif (strpos($sMethodName, 'get') === 0) {
231 - return $this->get(substr($sMethodName, 3));
232 - } elseif (method_exists(OutputFormatter::class, $sMethodName)) {
233 - return call_user_func_array([$this->getFormatter(), $sMethodName], $aArguments);
234 - } else {
235 - throw new \Exception('Unknown OutputFormat method called: ' . $sMethodName);
236 - }
237 - }
238 -
239 - /**
240 - * @param int $iNumber
241 - *
242 - * @return self
243 - */
244 - public function indentWithTabs($iNumber = 1)
245 - {
246 - return $this->setIndentation(str_repeat("\t", $iNumber));
247 - }
248 -
249 - /**
250 - * @param int $iNumber
251 - *
252 - * @return self
253 - */
254 - public function indentWithSpaces($iNumber = 2)
255 - {
256 - return $this->setIndentation(str_repeat(" ", $iNumber));
257 - }
258 -
259 - /**
260 - * @return OutputFormat
261 - */
262 - public function nextLevel()
263 - {
264 - if ($this->oNextLevelFormat === null) {
265 - $this->oNextLevelFormat = clone $this;
266 - $this->oNextLevelFormat->iIndentationLevel++;
267 - $this->oNextLevelFormat->oFormatter = null;
268 - }
269 - return $this->oNextLevelFormat;
270 - }
271 -
272 - /**
273 - * @return void
274 - */
275 - public function beLenient()
276 - {
277 - $this->bIgnoreExceptions = true;
278 - }
279 -
280 - /**
281 - * @return OutputFormatter
282 - */
283 - public function getFormatter()
284 - {
285 - if ($this->oFormatter === null) {
286 - $this->oFormatter = new OutputFormatter($this);
287 - }
288 - return $this->oFormatter;
289 - }
290 -
291 - /**
292 - * @return int
293 - */
294 - public function level()
295 - {
296 - return $this->iIndentationLevel;
297 - }
298 -
299 - /**
300 - * Creates an instance of this class without any particular formatting settings.
301 - *
302 - * @return self
303 - */
304 - public static function create()
305 - {
306 - return new OutputFormat();
307 - }
308 -
309 - /**
310 - * Creates an instance of this class with a preset for compact formatting.
311 - *
312 - * @return self
313 - */
314 - public static function createCompact()
315 - {
316 - $format = self::create();
317 - $format->set('Space*Rules', "")->set('Space*Blocks', "")->setSpaceAfterRuleName('')
318 - ->setSpaceBeforeOpeningBrace('')->setSpaceAfterSelectorSeparator('');
319 - return $format;
320 - }
321 -
322 - /**
323 - * Creates an instance of this class with a preset for pretty formatting.
324 - *
325 - * @return self
326 - */
327 - public static function createPretty()
328 - {
329 - $format = self::create();
330 - $format->set('Space*Rules', "\n")->set('Space*Blocks', "\n")
331 - ->setSpaceBetweenBlocks("\n\n")->set('SpaceAfterListArgumentSeparator', ['default' => '', ',' => ' ']);
332 - return $format;
333 - }
334 -}