{{-- componente de campo de texto para form --}} @props([ 'class' => 'col-12 col-sm-12 col-md-auto', 'id' => null, 'name' => 'datefield', 'tooltip' => null, 'value' => null, 'controlClass' => null, 'controlProperties' => null, 'pastOnly' => false, 'futureOnly' => false, 'disabled' => false, 'errorName' => $errorName ?? $name, //nome do error Bag 'required' => false, 'canAny' => null, 'confidential' => false, // se true cria caixa e icone em volta ]) @aware(['item' => null]) @if( ($canAny && Gate::any($canAny)) || !$canAny ) @php if(!isset($value)) { // popular padrão do campo $value = old($name) ?? ($item && $item->$name ? optional($item->$name)->format('Y-m-d') : (new \DateTime())->format('Y-m-d') ); } else { // garante que o valor seja sempre uma string no formato Y-m-d, seja o original datetime, date ou no formato d/m/Y H:i:s. Obrigado Github Copilot! $value = $value instanceof \DateTime ? $value->format('Y-m-d') : (is_string($value) && ($timestamp = strtotime($value)) !== false ? date('Y-m-d', $timestamp) : (preg_match('/^\d{2}\/\d{2}\/\d{4} \d{2}:\d{2}:\d{2}$/', $value) ? \DateTime::createFromFormat('d/m/Y H:i:s', $value)->format('Y-m-d') : $value)); } $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' : '')]; } if($pastOnly) { $propertiesArray += ['max' => (new \DateTime())->format('Y-m-d')]; } if($futureOnly) { $propertiesArray += ['min' => (new \DateTime())->format('Y-m-d')]; } @endphp @if($confidential)