File: D:/HostingSpaces/SBogers10/switch4u.komma.nl/vendor/komma/kms/src/Core/Attributes/Link.php
<?php
namespace Komma\KMS\Core\Attributes;
use Komma\KMS\Core\Attributes\Interfaces\HasLabelInterface;
use Komma\KMS\Core\Attributes\Traits\ExplanationTrait;
use Komma\KMS\Core\Attributes\Traits\LabelTrait;
use Komma\KMS\Core\Attributes\Traits\PlaceholderTextTrait;
class Link extends Attribute implements HasLabelInterface
{
use LabelTrait;
use ExplanationTrait;
private string $linkText = '';
private string $target = '_blank';
protected ?int $getsValueFrom = Attribute::NonInteractiveAttribute;
/**
* Returns a view that visually represents this attribute
*
* @return string
* @throws \Throwable
*/
public function render(): string
{
return view('KMS::attributes.link', [
'attribute' => $this,
'target' => $this->target,
'linkText' => $this->linkText,
'link' => $this->getValue(),
'styleClass' => $this->getStyleClass(),
'key' => $this->getKey(),
])->render();
}
/**
* @param string $link
* @return Link
*/
public function setLink(string $link): Link
{
$this->setValue($link);
return $this;
}
/**
* @param string $linkText
* @return Link
*/
public function setLinkText(string $linkText): Link
{
$this->linkText = $linkText;
return $this;
}
/**
* @param string $target
* @return Link
*/
public function openInNewWindowOrTab(): Link
{
$this->target = '_blank';
return $this;
}
}