| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- namespace Laravel\Prompts;
- use Illuminate\Support\Collection;
- class Grid extends Prompt
- {
- /**
- * The grid items.
- *
- * @var array<int, string>
- */
- public array $items;
- /**
- * The maximum width of the grid.
- */
- public int $maxWidth;
- /**
- * Create a new Grid instance.
- *
- * @param array<int, string>|Collection<int, string> $items
- */
- public function __construct(array|Collection $items = [], ?int $maxWidth = null)
- {
- $this->items = $items instanceof Collection ? $items->all() : $items;
- $this->maxWidth = $maxWidth ?? static::terminal()->cols() ?: 80;
- }
- /**
- * Display the grid.
- */
- public function display(): void
- {
- $this->prompt();
- }
- /**
- * Display the grid.
- */
- public function prompt(): bool
- {
- if ($this->items === []) {
- return true;
- }
- $this->capturePreviousNewLines();
- $this->state = 'submit';
- static::output()->write($this->renderTheme());
- return true;
- }
- /**
- * Get the value of the prompt.
- */
- public function value(): bool
- {
- return true;
- }
- }
|