Your IP : 18.218.135.130


Current Path : /var/www/admin_ftp_12/data/www/httpdocs/bitrix/modules/ui/lib/entityselector/
Upload File :
Current File : /var/www/admin_ftp_12/data/www/httpdocs/bitrix/modules/ui/lib/entityselector/textnode.php

<?
namespace Bitrix\UI\EntitySelector;

class TextNode implements \JsonSerializable
{
	protected ?string $text = null;
	protected ?string $type = null;

	public function __construct($options)
	{
		if (is_array($options))
		{
			if (isset($options['text']) && (is_string($options['text']) || is_int($options['text'])))
			{
				$this->text = (string)$options['text'];
			}

			if (isset($options['type']) && TextNodeType::isValid($options['type']))
			{
				$this->type = $options['type'];
			}
		}
		else if (is_string($options) || is_int($options))
		{
			$this->text = (string)$options;
		}
	}

	public static function isValidText($text): bool
	{
		return is_string($text) || is_int($text) || is_array($text);
	}

	public function getType(): ?string
	{
		return $this->type;
	}

	public function getText(): ?string
	{
		return $this->text;
	}

	public function isNullable(): bool
	{
		return $this->getText() === null;
	}

	public function jsonSerialize()
	{
		if ($this->getType() === null)
		{
			return $this->getText();
		}
		else
		{
			return [
				'text' => $this->getText(),
				'type' => $this->getType()
			];
		}
	}
}