![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/demo.cartinsight.co/vendor/openspout/openspout/src/Common/Entity/Style/ |
<?php declare(strict_types=1); namespace OpenSpout\Common\Entity\Style; use OpenSpout\Common\Exception\InvalidArgumentException; /** * Represents a style to be applied to a cell. */ final class Style { /** * Default values. */ public const DEFAULT_FONT_SIZE = 11; public const DEFAULT_FONT_COLOR = Color::BLACK; public const DEFAULT_FONT_NAME = 'Arial'; /** @var int Style ID */ private int $id = -1; /** @var bool Whether the font should be bold */ private bool $fontBold = false; /** @var bool Whether the bold property was set */ private bool $hasSetFontBold = false; /** @var bool Whether the font should be italic */ private bool $fontItalic = false; /** @var bool Whether the italic property was set */ private bool $hasSetFontItalic = false; /** @var bool Whether the font should be underlined */ private bool $fontUnderline = false; /** @var bool Whether the underline property was set */ private bool $hasSetFontUnderline = false; /** @var bool Whether the font should be struck through */ private bool $fontStrikethrough = false; /** @var bool Whether the strikethrough property was set */ private bool $hasSetFontStrikethrough = false; /** @var int Font size */ private int $fontSize = self::DEFAULT_FONT_SIZE; /** @var bool Whether the font size property was set */ private bool $hasSetFontSize = false; /** @var string Font color */ private string $fontColor = self::DEFAULT_FONT_COLOR; /** @var bool Whether the font color property was set */ private bool $hasSetFontColor = false; /** @var string Font name */ private string $fontName = self::DEFAULT_FONT_NAME; /** @var bool Whether the font name property was set */ private bool $hasSetFontName = false; /** @var bool Whether specific font properties should be applied */ private bool $shouldApplyFont = false; /** @var bool Whether specific cell alignment should be applied */ private bool $shouldApplyCellAlignment = false; /** @var string Cell alignment */ private string $cellAlignment; /** @var bool Whether the cell alignment property was set */ private bool $hasSetCellAlignment = false; /** @var bool Whether specific cell vertical alignment should be applied */ private bool $shouldApplyCellVerticalAlignment = false; /** @var string Cell vertical alignment */ private string $cellVerticalAlignment; /** @var bool Whether the cell vertical alignment property was set */ private bool $hasSetCellVerticalAlignment = false; /** @var bool Whether the text should wrap in the cell (useful for long or multi-lines text) */ private bool $shouldWrapText = false; /** @var bool Whether the wrap text property was set */ private bool $hasSetWrapText = false; /** @var bool Whether the cell should shrink to fit to content */ private bool $shouldShrinkToFit = false; /** @var bool Whether the shouldShrinkToFit text property was set */ private bool $hasSetShrinkToFit = false; private ?Border $border = null; /** @var null|string Background color */ private ?string $backgroundColor = null; /** @var null|string Format */ private ?string $format = null; private bool $isRegistered = false; private bool $isEmpty = true; public function __sleep(): array { $vars = get_object_vars($this); unset($vars['id'], $vars['isRegistered']); return array_keys($vars); } public function getId(): int { \assert(0 <= $this->id); return $this->id; } public function setId(int $id): self { $this->id = $id; return $this; } public function getBorder(): ?Border { return $this->border; } public function setBorder(Border $border): self { $this->border = $border; $this->isEmpty = false; return $this; } public function isFontBold(): bool { return $this->fontBold; } public function setFontBold(): self { $this->fontBold = true; $this->hasSetFontBold = true; $this->shouldApplyFont = true; $this->isEmpty = false; return $this; } public function hasSetFontBold(): bool { return $this->hasSetFontBold; } public function isFontItalic(): bool { return $this->fontItalic; } public function setFontItalic(): self { $this->fontItalic = true; $this->hasSetFontItalic = true; $this->shouldApplyFont = true; $this->isEmpty = false; return $this; } public function hasSetFontItalic(): bool { return $this->hasSetFontItalic; } public function isFontUnderline(): bool { return $this->fontUnderline; } public function setFontUnderline(): self { $this->fontUnderline = true; $this->hasSetFontUnderline = true; $this->shouldApplyFont = true; $this->isEmpty = false; return $this; } public function hasSetFontUnderline(): bool { return $this->hasSetFontUnderline; } public function isFontStrikethrough(): bool { return $this->fontStrikethrough; } public function setFontStrikethrough(): self { $this->fontStrikethrough = true; $this->hasSetFontStrikethrough = true; $this->shouldApplyFont = true; $this->isEmpty = false; return $this; } public function hasSetFontStrikethrough(): bool { return $this->hasSetFontStrikethrough; } public function getFontSize(): int { return $this->fontSize; } /** * @param int $fontSize Font size, in pixels */ public function setFontSize(int $fontSize): self { $this->fontSize = $fontSize; $this->hasSetFontSize = true; $this->shouldApplyFont = true; $this->isEmpty = false; return $this; } public function hasSetFontSize(): bool { return $this->hasSetFontSize; } public function getFontColor(): string { return $this->fontColor; } /** * Sets the font color. * * @param string $fontColor ARGB color (@see Color) */ public function setFontColor(string $fontColor): self { $this->fontColor = $fontColor; $this->hasSetFontColor = true; $this->shouldApplyFont = true; $this->isEmpty = false; return $this; } public function hasSetFontColor(): bool { return $this->hasSetFontColor; } public function getFontName(): string { return $this->fontName; } /** * @param string $fontName Name of the font to use */ public function setFontName(string $fontName): self { $this->fontName = $fontName; $this->hasSetFontName = true; $this->shouldApplyFont = true; $this->isEmpty = false; return $this; } public function hasSetFontName(): bool { return $this->hasSetFontName; } public function getCellAlignment(): string { return $this->cellAlignment; } public function getCellVerticalAlignment(): string { return $this->cellVerticalAlignment; } /** * @param string $cellAlignment The cell alignment */ public function setCellAlignment(string $cellAlignment): self { if (!CellAlignment::isValid($cellAlignment)) { throw new InvalidArgumentException('Invalid cell alignment value'); } $this->cellAlignment = $cellAlignment; $this->hasSetCellAlignment = true; $this->shouldApplyCellAlignment = true; $this->isEmpty = false; return $this; } /** * @param string $cellVerticalAlignment The cell vertical alignment */ public function setCellVerticalAlignment(string $cellVerticalAlignment): self { if (!CellVerticalAlignment::isValid($cellVerticalAlignment)) { throw new InvalidArgumentException('Invalid cell vertical alignment value'); } $this->cellVerticalAlignment = $cellVerticalAlignment; $this->hasSetCellVerticalAlignment = true; $this->shouldApplyCellVerticalAlignment = true; $this->isEmpty = false; return $this; } public function hasSetCellAlignment(): bool { return $this->hasSetCellAlignment; } public function hasSetCellVerticalAlignment(): bool { return $this->hasSetCellVerticalAlignment; } /** * @return bool Whether specific cell alignment should be applied */ public function shouldApplyCellAlignment(): bool { return $this->shouldApplyCellAlignment; } public function shouldApplyCellVerticalAlignment(): bool { return $this->shouldApplyCellVerticalAlignment; } public function shouldWrapText(): bool { return $this->shouldWrapText; } /** * @param bool $shouldWrap Should the text be wrapped */ public function setShouldWrapText(bool $shouldWrap = true): self { $this->shouldWrapText = $shouldWrap; $this->hasSetWrapText = true; $this->isEmpty = false; return $this; } public function hasSetWrapText(): bool { return $this->hasSetWrapText; } /** * @return bool Whether specific font properties should be applied */ public function shouldApplyFont(): bool { return $this->shouldApplyFont; } /** * Sets the background color. * * @param string $color ARGB color (@see Color) */ public function setBackgroundColor(string $color): self { $this->backgroundColor = $color; $this->isEmpty = false; return $this; } public function getBackgroundColor(): ?string { return $this->backgroundColor; } /** * Sets format. */ public function setFormat(string $format): self { $this->format = $format; $this->isEmpty = false; return $this; } public function getFormat(): ?string { return $this->format; } public function isRegistered(): bool { return $this->isRegistered; } public function markAsRegistered(?int $id): void { $this->setId($id); $this->isRegistered = true; } public function isEmpty(): bool { return $this->isEmpty; } /** * Sets should shrink to fit. */ public function setShouldShrinkToFit(bool $shrinkToFit = true): self { $this->hasSetShrinkToFit = true; $this->shouldShrinkToFit = $shrinkToFit; return $this; } /** * @return bool Whether format should be applied */ public function shouldShrinkToFit(): bool { return $this->shouldShrinkToFit; } public function hasSetShrinkToFit(): bool { return $this->hasSetShrinkToFit; } }