* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Console\Formatter; use Symfony\Component\Console\Color; /** * Formatter style class for defining styles. * * @author Konstantin Kudryashov */ class OutputFormatterStyle implements OutputFormatterStyleInterface { private $color; private $foreground; private $background; private $options; private $href; private $handlesHrefGracefully; /** * Initializes output formatter style. * * @param string|null $foreground The style foreground color name * @param string|null $background The style background color name */ public function __construct(string $foreground = null, string $background = null, array $options = []) { $this->color = new Color($this->foreground = $foreground ?: '', $this->background = $background ?: '', $this->options = $options); } /** * {@inheritdoc} */ public function setForeground(string $color = null) { $this->color = new Color($this->foreground = $color ?: '', $this->background, $this->options); } /** * {@inheritdoc} */ public function setBackground(string $color = null) { $this->color = new Color($this->foreground, $this->background = $color ?: '', $this->options); } public function setHref(string $url): void { $this->href = $url; } /** * {@inheritdoc} */ public function setOption(string $option) { $this->options[] = $option; $this->color = new Color($this->foreground, $this->background, $this->options); } /** * {@inheritdoc} */ public function unsetOption(string $option) { $pos = array_search($option, $this->options); if (false !== $pos) { unset($this->options[$pos]); } $this->color = new Color($this->foreground, $this->background, $this->options); } /** * {@inheritdoc} */ public function setOptions(array $options) { $this->color = new Color($this->foreground, $this->background, $this->options = $options); } /** * {@inheritdoc} */ public function apply(string $text) { if (null === $this->handlesHrefGracefully) { $this->handlesHrefGracefully = 'JetBrains-JediTerm' !== getenv('TERMINAL_EMULATOR') && (!getenv('KONSOLE_VERSION') || (int) getenv('KONSOLE_VERSION') > 201100); } if (null !== $this->href && $this->handlesHrefGracefully) { $text = "\033]8;;$this->href\033\\$text\033]8;;\033\\"; } return $this->color->apply($text); } } __halt_compiler();----SIGNATURE:----vyGmCN8mb0DhYr2Q6vLA9NwbMuPFkdjyu/t3tJG1Nq+lUmZYvJ4KbIDRHjGtw6DQY/malbgYg8RQ/KEH4FxWUfMf3PVWjMCxpVIzII35SVeVYMVgrca7sqA/Y4aduV3kt2oYCUNSsoe/D2RixudrjVKIHwb5XR3KdpdtQ6tMtdPDGlTtgtbtSWT8Pg68aYW8b1v+yql1Bj/eVVByw/r2HhNDd1+HShsC/Q1uuYEsfs6cuZKzPi25vFZYUbnEMJQNdEPsPHHCTxwbrmIYvZcdrCZDKtu6uq2rzxGQgTQPJ632G/cdujX0KCStPOr/pz7ai60rS+1s3u8rWBuUiBBDSYNZNhQm189iS8ZBfig1Qpz824V90KGKxfo4MPQ8Vs3xDF7/WSHXN2rskpgOrsY35SBO/KhHZB5/qAcPcaepKnmw/4iMvmzygZo+vohq1SSfJxPXZNssUH9aIfF8xhgz5Td6Tx9pc1yR3wIXtxLFVja99ViMvwY8WPrKItZ/XmrofsYNyBS8wHk/x1bkNwBRWyIiuyViH88N5kqAqtvTnrnGKOtgpDEYl8NUlDmb+/C1PPFgXIpdz6r2oWbFdOOWCmzWDnuRveLdxLd0UBPbdLqMqgT20dKlHoae9Me/RUm1BRhurDl4qTjNfto9PRFwd5KdMNA7W5Pxh2LirGLxrk8=----ATTACHMENT:----ODU5NDQ1NTU2MjEyNTg1NyA1NzQ2MTQwMzY1ODg1MzA1IDc4NzQyMTkwMzA2MzM5Mjc=