<?php

namespace itguild\forms\inputs;

use itguild\forms\debug\Debug;
use itguild\forms\inputs\BaseInput;
use itguild\forms\templates\bootstrap5\Bootstrap5Template;
use itguild\forms\templates\Simple\SimpleTemplate;
use itguild\forms\templates\Template;
use itguild\forms\traits\CreateParams;

class TextInput extends BaseInput
{

    use CreateParams;
    private string $name;
    private array $paramsArray;




    /**
     * @param string $name
     * @param array $paramsArray
     */
    public function __construct(string $name, array $paramsArray = [])
    {
        $this->name = $name;
        $this->paramsArray = $paramsArray;
        $this->inputTemplate = new SimpleTemplate();
    }

    /**
     * @return self
     */
    public function create(): self
    {
        $paramsString = $this->createParams($this->paramsArray);
        $label = "";
        $input = "<input name='$this->name' $paramsString >";
        if($this->hasLabel == true) {
            $label = "<label>$this->labelTitle</label>";
        }

        $this->html = str_replace('{input}', $input, $this->inputTemplate->getInputTemplate());
        $this->html = str_replace('{label}', $label, $this->html);

        return $this;
    }

    /**
     * @param string $name
     * @param array $paramsArray
     * @return void
     */
    public static function build(string $name, array $paramsArray = []): void
    {
        $input = new self($name, $paramsArray);
        $input->create()->render();

    }

}