mirror of
https://github.com/filamentphp/filament.git
synced 2026-10-16 07:17:49 +08:00
64 lines
1.4 KiB
PHP
64 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Filament\Forms\Components;
|
|
|
|
use Closure;
|
|
use Filament\Support\Concerns\HasExtraAlpineAttributes;
|
|
|
|
class Textarea extends Field implements Contracts\CanBeLengthConstrained
|
|
{
|
|
use Concerns\CanBeAutocompleted;
|
|
use Concerns\CanBeLengthConstrained;
|
|
use Concerns\CanBeReadOnly;
|
|
use Concerns\HasExtraInputAttributes;
|
|
use Concerns\HasPlaceholder;
|
|
use HasExtraAlpineAttributes;
|
|
|
|
/**
|
|
* @var view-string
|
|
*/
|
|
protected string $view = 'filament-forms::components.textarea';
|
|
|
|
protected int | Closure | null $cols = null;
|
|
|
|
protected int | Closure | null $rows = null;
|
|
|
|
protected bool | Closure $shouldAutosize = false;
|
|
|
|
public function autosize(bool | Closure $condition = true): static
|
|
{
|
|
$this->shouldAutosize = $condition;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function cols(int | Closure | null $cols): static
|
|
{
|
|
$this->cols = $cols;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function rows(int | Closure | null $rows): static
|
|
{
|
|
$this->rows = $rows;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function getCols(): ?int
|
|
{
|
|
return $this->evaluate($this->cols);
|
|
}
|
|
|
|
public function getRows(): ?int
|
|
{
|
|
return $this->evaluate($this->rows);
|
|
}
|
|
|
|
public function shouldAutosize(): bool
|
|
{
|
|
return $this->rows === null || ((bool) $this->evaluate($this->shouldAutosize));
|
|
}
|
|
}
|