@php use Illuminate\Support\Str; /** @var list> $questionsMostCorrect */ /** @var list> $questionsMostErrors */ $chartLimit = 8; $chartPayload = [ 'mostCorrect' => collect($questionsMostCorrect ?? []) ->take($chartLimit) ->map(fn (array $row): array => [ 'label' => Str::limit((string) $row['stem'], 80), 'fullLabel' => (string) $row['stem'], 'rate' => (float) ($row['success_rate'] ?? 0), ]) ->values() ->all(), 'mostErrors' => collect($questionsMostErrors ?? []) ->take($chartLimit) ->map(fn (array $row): array => [ 'label' => Str::limit((string) $row['stem'], 80), 'fullLabel' => (string) $row['stem'], 'rate' => (float) ($row['error_rate'] ?? 0), ]) ->values() ->all(), ]; $hasChartData = count($chartPayload['mostCorrect']) > 0 || count($chartPayload['mostErrors']) > 0; @endphp

Desempenho por pergunta

Top {{ $chartLimit }} perguntas — barras horizontais por taxa de acerto e de erro (mesmos filtros das tabelas abaixo).

@if (! $hasChartData)

Nenhuma resposta registrada para exibir gráficos com os filtros atuais.

@else

% de acerto

count($chartPayload['mostCorrect']) === 0])>
@if (count($chartPayload['mostCorrect']) === 0)

Sem dados de acerto para o período.

@endif

% de erro

count($chartPayload['mostErrors']) === 0])>
@if (count($chartPayload['mostErrors']) === 0)

Sem dados de erro para o período.

@endif
@endif