PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.8.2
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.8.2
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / vendor / prefixed / symfony / console / Formatter / OutputFormatterStyleStack.php
matomo / app / vendor / prefixed / symfony / console / Formatter Last commit date
NullOutputFormatter.php 1 year ago NullOutputFormatterStyle.php 2 years ago OutputFormatter.php 1 year ago OutputFormatterInterface.php 2 years ago OutputFormatterStyle.php 1 year ago OutputFormatterStyleInterface.php 2 years ago OutputFormatterStyleStack.php 1 year ago WrappableOutputFormatterInterface.php 2 years ago
OutputFormatterStyleStack.php
95 lines
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11 namespace Matomo\Dependencies\Symfony\Component\Console\Formatter;
12
13 use Matomo\Dependencies\Symfony\Component\Console\Exception\InvalidArgumentException;
14 use Matomo\Dependencies\Symfony\Contracts\Service\ResetInterface;
15 /**
16 * @author Jean-François Simon <contact@jfsimon.fr>
17 */
18 class OutputFormatterStyleStack implements ResetInterface
19 {
20 /**
21 * @var OutputFormatterStyleInterface[]
22 */
23 private $styles;
24 private $emptyStyle;
25 public function __construct(?OutputFormatterStyleInterface $emptyStyle = null)
26 {
27 $this->emptyStyle = $emptyStyle ?? new OutputFormatterStyle();
28 $this->reset();
29 }
30 /**
31 * Resets stack (ie. empty internal arrays).
32 */
33 public function reset()
34 {
35 $this->styles = [];
36 }
37 /**
38 * Pushes a style in the stack.
39 */
40 public function push(OutputFormatterStyleInterface $style)
41 {
42 $this->styles[] = $style;
43 }
44 /**
45 * Pops a style from the stack.
46 *
47 * @return OutputFormatterStyleInterface
48 *
49 * @throws InvalidArgumentException When style tags incorrectly nested
50 */
51 public function pop(?OutputFormatterStyleInterface $style = null)
52 {
53 if (empty($this->styles)) {
54 return $this->emptyStyle;
55 }
56 if (null === $style) {
57 return array_pop($this->styles);
58 }
59 foreach (array_reverse($this->styles, \true) as $index => $stackedStyle) {
60 if ($style->apply('') === $stackedStyle->apply('')) {
61 $this->styles = \array_slice($this->styles, 0, $index);
62 return $stackedStyle;
63 }
64 }
65 throw new InvalidArgumentException('Incorrectly nested style tag found.');
66 }
67 /**
68 * Computes current style with stacks top codes.
69 *
70 * @return OutputFormatterStyle
71 */
72 public function getCurrent()
73 {
74 if (empty($this->styles)) {
75 return $this->emptyStyle;
76 }
77 return $this->styles[\count($this->styles) - 1];
78 }
79 /**
80 * @return $this
81 */
82 public function setEmptyStyle(OutputFormatterStyleInterface $emptyStyle)
83 {
84 $this->emptyStyle = $emptyStyle;
85 return $this;
86 }
87 /**
88 * @return OutputFormatterStyleInterface
89 */
90 public function getEmptyStyle()
91 {
92 return $this->emptyStyle;
93 }
94 }
95