sonarrradarrplexorganizrnginxdashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboard
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							458 lines
						
					
					
						
							15 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							458 lines
						
					
					
						
							15 KiB
						
					
					
				| <?php | |
| 
 | |
| /* | |
|  * This file is part of the Symfony package. | |
|  * | |
|  * (c) Fabien Potencier <fabien@symfony.com> | |
|  * | |
|  * For the full copyright and license information, please view the LICENSE | |
|  * file that was distributed with this source code. | |
|  */ | |
| 
 | |
| namespace Symfony\Component\Console\Helper; | |
| 
 | |
| use Symfony\Component\Console\Exception\InvalidArgumentException; | |
| use Symfony\Component\Console\Exception\LogicException; | |
| 
 | |
| /** | |
|  * Defines the styles for a Table. | |
|  * | |
|  * @author Fabien Potencier <fabien@symfony.com> | |
|  * @author Саша Стаменковић <umpirsky@gmail.com> | |
|  * @author Dany Maillard <danymaillard93b@gmail.com> | |
|  */ | |
| class TableStyle | |
| { | |
|     private $paddingChar = ' '; | |
|     private $horizontalOutsideBorderChar = '-'; | |
|     private $horizontalInsideBorderChar = '-'; | |
|     private $verticalOutsideBorderChar = '|'; | |
|     private $verticalInsideBorderChar = '|'; | |
|     private $crossingChar = '+'; | |
|     private $crossingTopRightChar = '+'; | |
|     private $crossingTopMidChar = '+'; | |
|     private $crossingTopLeftChar = '+'; | |
|     private $crossingMidRightChar = '+'; | |
|     private $crossingBottomRightChar = '+'; | |
|     private $crossingBottomMidChar = '+'; | |
|     private $crossingBottomLeftChar = '+'; | |
|     private $crossingMidLeftChar = '+'; | |
|     private $crossingTopLeftBottomChar = '+'; | |
|     private $crossingTopMidBottomChar = '+'; | |
|     private $crossingTopRightBottomChar = '+'; | |
|     private $headerTitleFormat = '<fg=black;bg=white;options=bold> %s </>'; | |
|     private $footerTitleFormat = '<fg=black;bg=white;options=bold> %s </>'; | |
|     private $cellHeaderFormat = '<info>%s</info>'; | |
|     private $cellRowFormat = '%s'; | |
|     private $cellRowContentFormat = ' %s '; | |
|     private $borderFormat = '%s'; | |
|     private $padType = STR_PAD_RIGHT; | |
| 
 | |
|     /** | |
|      * Sets padding character, used for cell padding. | |
|      * | |
|      * @param string $paddingChar | |
|      * | |
|      * @return $this | |
|      */ | |
|     public function setPaddingChar($paddingChar) | |
|     { | |
|         if (!$paddingChar) { | |
|             throw new LogicException('The padding char must not be empty'); | |
|         } | |
| 
 | |
|         $this->paddingChar = $paddingChar; | |
| 
 | |
|         return $this; | |
|     } | |
| 
 | |
|     /** | |
|      * Gets padding character, used for cell padding. | |
|      * | |
|      * @return string | |
|      */ | |
|     public function getPaddingChar() | |
|     { | |
|         return $this->paddingChar; | |
|     } | |
| 
 | |
|     /** | |
|      * Sets horizontal border characters. | |
|      * | |
|      * <code> | |
|      * ╔═══════════════╤══════════════════════════╤══════════════════╗ | |
|      * 1 ISBN          2 Title                    │ Author           ║ | |
|      * ╠═══════════════╪══════════════════════════╪══════════════════╣ | |
|      * ║ 99921-58-10-7 │ Divine Comedy            │ Dante Alighieri  ║ | |
|      * ║ 9971-5-0210-0 │ A Tale of Two Cities     │ Charles Dickens  ║ | |
|      * ║ 960-425-059-0 │ The Lord of the Rings    │ J. R. R. Tolkien ║ | |
|      * ║ 80-902734-1-6 │ And Then There Were None │ Agatha Christie  ║ | |
|      * ╚═══════════════╧══════════════════════════╧══════════════════╝ | |
|      * </code> | |
|      * | |
|      * @param string      $outside Outside border char (see #1 of example) | |
|      * @param string|null $inside  Inside border char (see #2 of example), equals $outside if null | |
|      */ | |
|     public function setHorizontalBorderChars(string $outside, string $inside = null): self | |
|     { | |
|         $this->horizontalOutsideBorderChar = $outside; | |
|         $this->horizontalInsideBorderChar = $inside ?? $outside; | |
| 
 | |
|         return $this; | |
|     } | |
| 
 | |
|     /** | |
|      * Sets horizontal border character. | |
|      * | |
|      * @param string $horizontalBorderChar | |
|      * | |
|      * @return $this | |
|      * | |
|      * @deprecated since Symfony 4.1, use {@link setHorizontalBorderChars()} instead. | |
|      */ | |
|     public function setHorizontalBorderChar($horizontalBorderChar) | |
|     { | |
|         @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.1, use setHorizontalBorderChars() instead.', __METHOD__), E_USER_DEPRECATED); | |
| 
 | |
|         return $this->setHorizontalBorderChars($horizontalBorderChar, $horizontalBorderChar); | |
|     } | |
| 
 | |
|     /** | |
|      * Gets horizontal border character. | |
|      * | |
|      * @return string | |
|      * | |
|      * @deprecated since Symfony 4.1, use {@link getBorderChars()} instead. | |
|      */ | |
|     public function getHorizontalBorderChar() | |
|     { | |
|         @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.1, use getBorderChars() instead.', __METHOD__), E_USER_DEPRECATED); | |
| 
 | |
|         return $this->horizontalOutsideBorderChar; | |
|     } | |
| 
 | |
|     /** | |
|      * Sets vertical border characters. | |
|      * | |
|      * <code> | |
|      * ╔═══════════════╤══════════════════════════╤══════════════════╗ | |
|      * ║ ISBN          │ Title                    │ Author           ║ | |
|      * ╠═══════1═══════╪══════════════════════════╪══════════════════╣ | |
|      * ║ 99921-58-10-7 │ Divine Comedy            │ Dante Alighieri  ║ | |
|      * ║ 9971-5-0210-0 │ A Tale of Two Cities     │ Charles Dickens  ║ | |
|      * ╟───────2───────┼──────────────────────────┼──────────────────╢ | |
|      * ║ 960-425-059-0 │ The Lord of the Rings    │ J. R. R. Tolkien ║ | |
|      * ║ 80-902734-1-6 │ And Then There Were None │ Agatha Christie  ║ | |
|      * ╚═══════════════╧══════════════════════════╧══════════════════╝ | |
|      * </code> | |
|      * | |
|      * @param string      $outside Outside border char (see #1 of example) | |
|      * @param string|null $inside  Inside border char (see #2 of example), equals $outside if null | |
|      */ | |
|     public function setVerticalBorderChars(string $outside, string $inside = null): self | |
|     { | |
|         $this->verticalOutsideBorderChar = $outside; | |
|         $this->verticalInsideBorderChar = $inside ?? $outside; | |
| 
 | |
|         return $this; | |
|     } | |
| 
 | |
|     /** | |
|      * Sets vertical border character. | |
|      * | |
|      * @param string $verticalBorderChar | |
|      * | |
|      * @return $this | |
|      * | |
|      * @deprecated since Symfony 4.1, use {@link setVerticalBorderChars()} instead. | |
|      */ | |
|     public function setVerticalBorderChar($verticalBorderChar) | |
|     { | |
|         @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.1, use setVerticalBorderChars() instead.', __METHOD__), E_USER_DEPRECATED); | |
| 
 | |
|         return $this->setVerticalBorderChars($verticalBorderChar, $verticalBorderChar); | |
|     } | |
| 
 | |
|     /** | |
|      * Gets vertical border character. | |
|      * | |
|      * @return string | |
|      * | |
|      * @deprecated since Symfony 4.1, use {@link getBorderChars()} instead. | |
|      */ | |
|     public function getVerticalBorderChar() | |
|     { | |
|         @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.1, use getBorderChars() instead.', __METHOD__), E_USER_DEPRECATED); | |
| 
 | |
|         return $this->verticalOutsideBorderChar; | |
|     } | |
| 
 | |
|     /** | |
|      * Gets border characters. | |
|      * | |
|      * @internal | |
|      */ | |
|     public function getBorderChars() | |
|     { | |
|         return array( | |
|             $this->horizontalOutsideBorderChar, | |
|             $this->verticalOutsideBorderChar, | |
|             $this->horizontalInsideBorderChar, | |
|             $this->verticalInsideBorderChar, | |
|         ); | |
|     } | |
| 
 | |
|     /** | |
|      * Sets crossing characters. | |
|      * | |
|      * Example: | |
|      * <code> | |
|      * 1═══════════════2══════════════════════════2══════════════════3 | |
|      * ║ ISBN          │ Title                    │ Author           ║ | |
|      * 8'══════════════0'═════════════════════════0'═════════════════4' | |
|      * ║ 99921-58-10-7 │ Divine Comedy            │ Dante Alighieri  ║ | |
|      * ║ 9971-5-0210-0 │ A Tale of Two Cities     │ Charles Dickens  ║ | |
|      * 8───────────────0──────────────────────────0──────────────────4 | |
|      * ║ 960-425-059-0 │ The Lord of the Rings    │ J. R. R. Tolkien ║ | |
|      * ║ 80-902734-1-6 │ And Then There Were None │ Agatha Christie  ║ | |
|      * 7═══════════════6══════════════════════════6══════════════════5 | |
|      * </code> | |
|      * | |
|      * @param string      $cross          Crossing char (see #0 of example) | |
|      * @param string      $topLeft        Top left char (see #1 of example) | |
|      * @param string      $topMid         Top mid char (see #2 of example) | |
|      * @param string      $topRight       Top right char (see #3 of example) | |
|      * @param string      $midRight       Mid right char (see #4 of example) | |
|      * @param string      $bottomRight    Bottom right char (see #5 of example) | |
|      * @param string      $bottomMid      Bottom mid char (see #6 of example) | |
|      * @param string      $bottomLeft     Bottom left char (see #7 of example) | |
|      * @param string      $midLeft        Mid left char (see #8 of example) | |
|      * @param string|null $topLeftBottom  Top left bottom char (see #8' of example), equals to $midLeft if null | |
|      * @param string|null $topMidBottom   Top mid bottom char (see #0' of example), equals to $cross if null | |
|      * @param string|null $topRightBottom Top right bottom char (see #4' of example), equals to $midRight if null | |
|      */ | |
|     public function setCrossingChars(string $cross, string $topLeft, string $topMid, string $topRight, string $midRight, string $bottomRight, string $bottomMid, string $bottomLeft, string $midLeft, string $topLeftBottom = null, string $topMidBottom = null, string $topRightBottom = null): self | |
|     { | |
|         $this->crossingChar = $cross; | |
|         $this->crossingTopLeftChar = $topLeft; | |
|         $this->crossingTopMidChar = $topMid; | |
|         $this->crossingTopRightChar = $topRight; | |
|         $this->crossingMidRightChar = $midRight; | |
|         $this->crossingBottomRightChar = $bottomRight; | |
|         $this->crossingBottomMidChar = $bottomMid; | |
|         $this->crossingBottomLeftChar = $bottomLeft; | |
|         $this->crossingMidLeftChar = $midLeft; | |
|         $this->crossingTopLeftBottomChar = $topLeftBottom ?? $midLeft; | |
|         $this->crossingTopMidBottomChar = $topMidBottom ?? $cross; | |
|         $this->crossingTopRightBottomChar = $topRightBottom ?? $midRight; | |
| 
 | |
|         return $this; | |
|     } | |
| 
 | |
|     /** | |
|      * Sets default crossing character used for each cross. | |
|      * | |
|      * @see {@link setCrossingChars()} for setting each crossing individually. | |
|      */ | |
|     public function setDefaultCrossingChar(string $char): self | |
|     { | |
|         return $this->setCrossingChars($char, $char, $char, $char, $char, $char, $char, $char, $char); | |
|     } | |
| 
 | |
|     /** | |
|      * Sets crossing character. | |
|      * | |
|      * @param string $crossingChar | |
|      * | |
|      * @return $this | |
|      * | |
|      * @deprecated since Symfony 4.1. Use {@link setDefaultCrossingChar()} instead. | |
|      */ | |
|     public function setCrossingChar($crossingChar) | |
|     { | |
|         @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.1. Use setDefaultCrossingChar() instead.', __METHOD__), E_USER_DEPRECATED); | |
| 
 | |
|         return $this->setDefaultCrossingChar($crossingChar); | |
|     } | |
| 
 | |
|     /** | |
|      * Gets crossing character. | |
|      * | |
|      * @return string | |
|      */ | |
|     public function getCrossingChar() | |
|     { | |
|         return $this->crossingChar; | |
|     } | |
| 
 | |
|     /** | |
|      * Gets crossing characters. | |
|      * | |
|      * @internal | |
|      */ | |
|     public function getCrossingChars(): array | |
|     { | |
|         return array( | |
|             $this->crossingChar, | |
|             $this->crossingTopLeftChar, | |
|             $this->crossingTopMidChar, | |
|             $this->crossingTopRightChar, | |
|             $this->crossingMidRightChar, | |
|             $this->crossingBottomRightChar, | |
|             $this->crossingBottomMidChar, | |
|             $this->crossingBottomLeftChar, | |
|             $this->crossingMidLeftChar, | |
|             $this->crossingTopLeftBottomChar, | |
|             $this->crossingTopMidBottomChar, | |
|             $this->crossingTopRightBottomChar, | |
|         ); | |
|     } | |
| 
 | |
|     /** | |
|      * Sets header cell format. | |
|      * | |
|      * @param string $cellHeaderFormat | |
|      * | |
|      * @return $this | |
|      */ | |
|     public function setCellHeaderFormat($cellHeaderFormat) | |
|     { | |
|         $this->cellHeaderFormat = $cellHeaderFormat; | |
| 
 | |
|         return $this; | |
|     } | |
| 
 | |
|     /** | |
|      * Gets header cell format. | |
|      * | |
|      * @return string | |
|      */ | |
|     public function getCellHeaderFormat() | |
|     { | |
|         return $this->cellHeaderFormat; | |
|     } | |
| 
 | |
|     /** | |
|      * Sets row cell format. | |
|      * | |
|      * @param string $cellRowFormat | |
|      * | |
|      * @return $this | |
|      */ | |
|     public function setCellRowFormat($cellRowFormat) | |
|     { | |
|         $this->cellRowFormat = $cellRowFormat; | |
| 
 | |
|         return $this; | |
|     } | |
| 
 | |
|     /** | |
|      * Gets row cell format. | |
|      * | |
|      * @return string | |
|      */ | |
|     public function getCellRowFormat() | |
|     { | |
|         return $this->cellRowFormat; | |
|     } | |
| 
 | |
|     /** | |
|      * Sets row cell content format. | |
|      * | |
|      * @param string $cellRowContentFormat | |
|      * | |
|      * @return $this | |
|      */ | |
|     public function setCellRowContentFormat($cellRowContentFormat) | |
|     { | |
|         $this->cellRowContentFormat = $cellRowContentFormat; | |
| 
 | |
|         return $this; | |
|     } | |
| 
 | |
|     /** | |
|      * Gets row cell content format. | |
|      * | |
|      * @return string | |
|      */ | |
|     public function getCellRowContentFormat() | |
|     { | |
|         return $this->cellRowContentFormat; | |
|     } | |
| 
 | |
|     /** | |
|      * Sets table border format. | |
|      * | |
|      * @param string $borderFormat | |
|      * | |
|      * @return $this | |
|      */ | |
|     public function setBorderFormat($borderFormat) | |
|     { | |
|         $this->borderFormat = $borderFormat; | |
| 
 | |
|         return $this; | |
|     } | |
| 
 | |
|     /** | |
|      * Gets table border format. | |
|      * | |
|      * @return string | |
|      */ | |
|     public function getBorderFormat() | |
|     { | |
|         return $this->borderFormat; | |
|     } | |
| 
 | |
|     /** | |
|      * Sets cell padding type. | |
|      * | |
|      * @param int $padType STR_PAD_* | |
|      * | |
|      * @return $this | |
|      */ | |
|     public function setPadType($padType) | |
|     { | |
|         if (!\in_array($padType, array(STR_PAD_LEFT, STR_PAD_RIGHT, STR_PAD_BOTH), true)) { | |
|             throw new InvalidArgumentException('Invalid padding type. Expected one of (STR_PAD_LEFT, STR_PAD_RIGHT, STR_PAD_BOTH).'); | |
|         } | |
| 
 | |
|         $this->padType = $padType; | |
| 
 | |
|         return $this; | |
|     } | |
| 
 | |
|     /** | |
|      * Gets cell padding type. | |
|      * | |
|      * @return int | |
|      */ | |
|     public function getPadType() | |
|     { | |
|         return $this->padType; | |
|     } | |
| 
 | |
|     public function getHeaderTitleFormat(): string | |
|     { | |
|         return $this->headerTitleFormat; | |
|     } | |
| 
 | |
|     public function setHeaderTitleFormat(string $format): self | |
|     { | |
|         $this->headerTitleFormat = $format; | |
| 
 | |
|         return $this; | |
|     } | |
| 
 | |
|     public function getFooterTitleFormat(): string | |
|     { | |
|         return $this->footerTitleFormat; | |
|     } | |
| 
 | |
|     public function setFooterTitleFormat(string $format): self | |
|     { | |
|         $this->footerTitleFormat = $format; | |
| 
 | |
|         return $this; | |
|     } | |
| }
 | |
| 
 |