Back | Home
الـ Path الحالي: /home/picotech/domains/instantly.picotech.app/public_html/public/./../app/.././../../finland.picotech.app/public_html/storage/../vendor/./phpoption/../laravel/../nikic/../telnyx/../brick/../unicodeveloper/../firebase/../nunomaduro/../phpoption/../ralouphie/../phar-io/../laravel/./prompts/src/Themes/Default
الملفات الموجودة في هذا الـ Path:
.
..
Concerns
ConfirmPromptRenderer.php
MultiSearchPromptRenderer.php
MultiSelectPromptRenderer.php
NoteRenderer.php
PasswordPromptRenderer.php
ProgressRenderer.php
Renderer.php
SearchPromptRenderer.php
SelectPromptRenderer.php
SpinnerRenderer.php
SuggestPromptRenderer.php
TableRenderer.php
TextPromptRenderer.php

مشاهدة ملف: TableRenderer.php

<?php

namespace Laravel\Prompts\Themes\Default;

use Laravel\Prompts\Output\BufferedConsoleOutput;
use Laravel\Prompts\Table;
use Symfony\Component\Console\Helper\Table as SymfonyTable;
use Symfony\Component\Console\Helper\TableStyle;

class TableRenderer extends Renderer
{
    /**
     * Render the table.
     */
    public function __invoke(Table $table): string
    {
        $tableStyle = (new TableStyle())
            ->setHorizontalBorderChars('─')
            ->setVerticalBorderChars('│', '│')
            ->setCellHeaderFormat($this->dim('<fg=default>%s</>'))
            ->setCellRowFormat('<fg=default>%s</>');

        if (empty($table->headers)) {
            $tableStyle->setCrossingChars('┼', '', '', '', '┤', '┘</>', '┴', '└', '├', '<fg=gray>┌', '┬', '┐');
        } else {
            $tableStyle->setCrossingChars('┼', '<fg=gray>┌', '┬', '┐', '┤', '┘</>', '┴', '└', '├');
        }

        $buffered = new BufferedConsoleOutput();

        (new SymfonyTable($buffered))
            ->setHeaders($table->headers)
            ->setRows($table->rows)
            ->setStyle($tableStyle)
            ->render();

        collect(explode(PHP_EOL, trim($buffered->content(), PHP_EOL)))
            ->each(fn ($line) => $this->line(' '.$line));

        return $this;
    }
}