@php /** * Exibe um único checkbox ou um grupo de checkboxes. * TODO: Não suporta enviar valores diferentes de 1. No futuro separar value e checked. * * @param string $class Classe CSS para estilização do container do checkbox. * @param string|null $id ID do elemento HTML do checkbox. * @param string $name Nome do campo do checkbox, usado para envio no formulário. * @param string|null $tooltip Texto de tooltip exibido ao passar o mouse sobre o label. * @param mixed $value Valor atual do checkbox (true/false ou valor antigo do formulário). * @param string|null $controlClass Classe CSS adicional para estilização do input do checkbox. * @param array|null $controlProperties Propriedades adicionais para o elemento HTML do checkbox. * @param bool $group Define se o checkbox faz parte de um grupo de checkboxes. * @param bool $inline Define se os checkboxes do grupo devem ser exibidos em linha. * @param string|null $errorName Nome do campo usado para exibir mensagens de erro de validação. * @param array|null $canAny Permissões para exibição do checkbox, baseado em políticas do Gate. * @param bool $disabled Define se o checkbox está desabilitado. * @param bool $noLabel Define se o label deve ser omitido (não reserva espaço para alinhamento). * @param mixed $item Objeto opcional para popular o valor do checkbox. * @return void */ @endphp {{-- componente de campo de texto para form --}} @props([ 'class' => 'col-12 col-sm-12 col-md-auto', 'id' => null, 'name' => 'checkbox', 'tooltip' => null, 'value' => isset($name) ? old($name) : false, 'controlClass' => null, 'controlProperties' => null, 'group' => false, // se true permite stack de checkboxes 'inline' => false, // se true permite que o grupo fique na horizontal 'errorName' => $errorName ?? ($name ?? 'checkbox'), //nome do error Bag 'canAny' => null, 'disabled' => false, 'noLabel' => false, // se true não reserva espaço para o label pra alinhar com outros campos ]) @aware(['item' => null]) @if( ($canAny && Gate::any($canAny)) || !$canAny ) @php if(!isset($value)) { // popular padrão do campo $value = old($name) ?? (($item->$name ?? false) ? 1 : null); } $propertiesArray = ['id' => $id ?? $name]; if($controlProperties) { $propertiesArray += $controlProperties; } if($controlClass) { $propertiesArray += ['class' => "form-control ".$controlClass . ($errors->has($errorName) ? 'is-invalid' : '')]; } else { $propertiesArray += ['class' => "form-control " . ($errors->has($errorName) ? 'is-invalid' : '')]; } @endphp @if(!$group)