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/SBogers95/rentman.io/app/Komma/Dynamic/ComponentType/Types/ProductTable.php
<?php

namespace App\Komma\Dynamic\ComponentType\Types;

use App\Komma\Dynamic\ComponentType\ComponentTypes;
use App\Komma\Kms\Core\Attributes\Attribute;
use App\Komma\Kms\Core\Attributes\AutocompleteInput;
use App\Komma\Kms\Core\Attributes\OnOff;
use App\Komma\Kms\Core\Attributes\Select;
use App\Komma\Kms\Core\Attributes\Seperator;
use App\Komma\Kms\Core\Attributes\TextField;
use App\Komma\Products\Kms\ProductService;
use App\Komma\Products\Models\Product;

class ProductTable extends AbstractComponentType
{
    //Set an id that corresponds to the ComponentTypes enum
    protected $id = ComponentTypes::PRODUCT_TABLE;

    //Set icon and name
    protected $name = 'product-table';

    protected $relations = ['products'];

//    protected $translatableAttributes = ['title', 'subtitle'];

    public function __construct()
    {
        parent::__construct();

        $this->attributes->push((new AutocompleteInput())
            ->setLabelText('Link To')
            ->fillWith(ProductService::class.'@getOptionsForSelect')
            ->canBeLinkedWith(Product::class)
            ->mapValueFrom(Attribute::ValueFromItself, 'products')
        );

        $this->attributes->push((new OnOff())
            ->setLabelText('Grey Background')
            ->mapValueFrom(Attribute::ValueFromItself, 'grey_background')
            ->setStyleClass('is-background-option')
        );
        $this->attributes->push((new Select())
           ->setItems($this->getIconOptions())
           ->setLabelText('Icon')
           ->mapValueFrom(Attribute::ValueFromItself, 'icon')
        );
        $this->attributes->push(
            (new TextField('title'))
                ->setPlaceholderText('Ex. Manage the whole rental cycle')
                ->mapValueFrom(Attribute::ValueFromItself, 'title')
        );
        $this->attributes->push(
            (new TextField('subtitle'))
                ->setPlaceholderText('Ex. Convert request into quotes')
                ->mapValueFrom(Attribute::ValueFromItself, 'subtitle')
        );
        $this->attributes->push((new Seperator()));

        $this->addButton();
    }
}