File: D:/HostingSpaces/SBogers54/csbinstallatietechniek.nl/vendor/komma/kms/src/Core/Attributes/Link.php
<?php
namespace Komma\KMS\Core\Attributes;
use Komma\KMS\Core\Attributes\Traits\LabelTrait;
use Komma\KMS\Core\Attributes\Traits\PlaceholderTextTrait;
class Link extends Attribute
{
use LabelTrait;
/** @var string $linkText */
private $linkText = '';
/** @var string */
private $target = '_self';
/**
* Link constructor.
* @param string $labelText
* @param null $duskSelector
*/
public function __construct(string $labelText, string $duskSelector = null)
{
$this->setLabelText($labelText);
parent::__construct();
$this->mapValueFrom(Attribute::ValueFromItself, (!$duskSelector) ? $this->getLabelText() : $duskSelector);
parent::setValue($labelText);
}
/**
* Returns a view that visually represents this attribute
*
* @return \Illuminate\View\View
*/
public function render()
{
return view('KMS::kms/attributes.link', [
'attribute' => $this,
'target' => $this->target,
'linkText' => $this->linkText,
'link' => $this->getValue(),
'styleClass' => $this->getStyleClass(),
'key' => $this->getKey(),
]);
}
/**
* @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;
}
}