HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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;
    }
}