DataTableRenderer
class DataTableRenderer extends Renderer implements Scrolling
Traits
Properties
| protected string | $output | The output to be rendered. |
from Renderer |
| protected int | $minWidth | from DrawsBoxes |
Methods
Truncate a value with an ellipsis if it exceeds the given width.
Apply the callback if the given "value" is truthy.
Get the length of the longest line.
Pad text ignoring ANSI escape sequences.
Strip ANSI escape sequences from the given text.
Multi-byte version of wordwrap.
Word wrap text while preserving ANSI escape sequences.
Parse text into segments with their associated ANSI codes.
Draw a box.
Render a scrollbar beside the visible items.
Return the position where the scrollbar "handle" should be rendered.
Render a column-aware border line.
Render a simple border line without column separators.
Render data rows with scrollbar support.
Compute column widths that fit within maxWidth.
The number of lines to reserve outside of the scrollable area.
Details
in
Colors at line 12
string
reset(string $text)
Reset all colors and styles.
in
Colors at line 20
string
bold(string $text)
Make the text bold.
in
Colors at line 28
string
dim(string $text)
Make the text dim.
in
Colors at line 36
string
italic(string $text)
Make the text italic.
in
Colors at line 44
string
underline(string $text)
Underline the text.
in
Colors at line 52
string
inverse(string $text)
Invert the text and background colors.
in
Colors at line 60
string
hidden(string $text)
Hide the text.
in
Colors at line 68
string
strikethrough(string $text)
Strike through the text.
in
Colors at line 76
string
black(string $text)
Set the text color to black.
in
Colors at line 84
string
red(string $text)
Set the text color to red.
in
Colors at line 92
string
green(string $text)
Set the text color to green.
in
Colors at line 100
string
yellow(string $text)
Set the text color to yellow.
in
Colors at line 108
string
blue(string $text)
Set the text color to blue.
in
Colors at line 116
string
magenta(string $text)
Set the text color to magenta.
in
Colors at line 124
string
cyan(string $text)
Set the text color to cyan.
in
Colors at line 132
string
white(string $text)
Set the text color to white.
in
Colors at line 140
string
bgBlack(string $text)
Set the text background to black.
in
Colors at line 148
string
bgRed(string $text)
Set the text background to red.
in
Colors at line 156
string
bgGreen(string $text)
Set the text background to green.
in
Colors at line 164
string
bgYellow(string $text)
Set the text background to yellow.
in
Colors at line 172
string
bgBlue(string $text)
Set the text background to blue.
in
Colors at line 180
string
bgMagenta(string $text)
Set the text background to magenta.
in
Colors at line 188
string
bgCyan(string $text)
Set the text background to cyan.
in
Colors at line 196
string
bgWhite(string $text)
Set the text background to white.
in
Colors at line 204
string
gray(string $text)
Set the text color to gray.
in
Truncation at line 14
protected string
truncate(string $string, int $width)
Truncate a value with an ellipsis if it exceeds the given width.
in
Renderer at line 84
protected Renderer
when(mixed $value, callable $callback, callable|null $default = null)
Apply the callback if the given "value" is truthy.
in
Renderer at line 98
__toString()
Render the output with a blank line above and below.
in
InteractsWithStrings at line 14
protected int
longest(array $lines, int $padding = 0)
Get the length of the longest line.
in
InteractsWithStrings at line 25
protected string
pad(string $text, int $length, string $char = ' ')
Pad text ignoring ANSI escape sequences.
in
InteractsWithStrings at line 35
protected string
stripEscapeSequences(string $text)
Strip ANSI escape sequences from the given text.
in
InteractsWithStrings at line 52
protected string
mbWordwrap(string $string, int $width = 75, string $break = "\n", bool $cut_long_words = false)
Multi-byte version of wordwrap.
in
InteractsWithStrings at line 138
protected array
ansiWordwrap(string $text, int $width)
Word wrap text while preserving ANSI escape sequences.
in
InteractsWithStrings at line 215
protected array
parseAnsiText(string $text)
Parse text into segments with their associated ANSI codes.
in
DrawsBoxes at line 20
protected DrawsBoxes
box(string $title, string $body, string $footer = '', string $color = 'gray', string $info = '')
Draw a box.
in
DrawsScrollbars at line 19
protected array|Collection
scrollbar(array|Collection $visible, int $firstVisible, int $height, int $total, int $width, string $color = 'cyan')
Render a scrollbar beside the visible items.
in
DrawsScrollbars at line 40
protected int
scrollPosition(int $firstVisible, int $height, int $total)
Return the position where the scrollbar "handle" should be rendered.
at line 20
string
__invoke(DataTablePrompt $prompt)
Render the data table.
at line 34
protected string
renderSubmit(DataTablePrompt $prompt, int $maxWidth)
Render the submit state.
at line 49
protected string
renderCancel(DataTablePrompt $prompt, int $maxWidth)
Render the cancel state.
at line 106
protected string
renderActive(DataTablePrompt $prompt, int $maxWidth)
Render the active/browse/search state.
at line 200
protected string
renderBorder(string $left, string $mid, string $right, array $widths, string $color = 'gray')
Render a column-aware border line.
at line 210
protected string
renderSimpleBorder(string $left, string $right, int $innerWidth, string $color = 'gray')
Render a simple border line without column separators.
at line 218
protected string
renderSearchLine(DataTablePrompt $prompt, int $maxWidth)
Render the search line content.
at line 239
protected array
renderDataRows(DataTablePrompt $prompt, array $filtered, array $visible, array $widths, int $numCols, int $innerWidth, bool $strikethrough = false)
Render data rows with scrollbar support.
at line 377
protected array
computeColumnWidths(array $headers, array $allRows, int $numCols, int $maxWidth)
Compute column widths that fit within maxWidth.
Columns get their natural (P85) width. Only shrink proportionally if the total exceeds available terminal space.
at line 470
int
reservedLines()
The number of lines to reserve outside of the scrollable area.