Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace App\Support;
  3. use Filament\Support\Components\Component;
  4. use Filament\Support\Concerns\HasAlignment;
  5. use Filament\Support\Enums\Alignment;
  6. use Filament\Tables\Columns\Concerns\CanBeHidden;
  7. use Filament\Tables\Columns\Concerns\CanBeToggled;
  8. use Filament\Tables\Columns\Concerns\HasLabel;
  9. use Filament\Tables\Columns\Concerns\HasName;
  10. class Column extends Component
  11. {
  12. use CanBeHidden;
  13. use CanBeToggled;
  14. use HasAlignment;
  15. use HasLabel;
  16. use HasName;
  17. protected bool $isDate = false;
  18. final public function __construct(string $name)
  19. {
  20. $this->name($name);
  21. }
  22. public static function make(string $name): static
  23. {
  24. $static = app(static::class, ['name' => $name]);
  25. $static->configure();
  26. return $static;
  27. }
  28. public function getAlignmentClass(): string
  29. {
  30. return match ($this->getAlignment()) {
  31. Alignment::Center, Alignment::Justify, Alignment::Between => 'text-center',
  32. Alignment::Left, Alignment::Start => 'text-left',
  33. Alignment::Right, Alignment::End => 'text-right',
  34. default => '',
  35. };
  36. }
  37. public function markAsDate(): static
  38. {
  39. $this->isDate = true;
  40. return $this;
  41. }
  42. public function isDate(): bool
  43. {
  44. return $this->isDate;
  45. }
  46. }