<?php

namespace Lightscale\LaralightTables\Toolbar;

use Lightscale\LaralightTables\TableComponent;
use Lightscale\LaralightTables\Toolbar;
use Lightscale\LaralightTables\Concerns\Makable;

use Illuminate\View\View;
use Illuminate\Support\HtmlString;

abstract class Item
{
    use Makable;

    private Toolbar $toolbar;

    public function setToolbar(Toolbar $toolbar): void
    {
        $this->toolbar = $toolbar;
    }

    public function getToolbar(): Toolbar
    {
        return $this->toolbar;
    }

    public function getTable(): TableComponent
    {
        return $this->getToolbar()->getTable();
    }

    abstract public function render(): View|HtmlString|string|null;

}