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();
}
}