{{-- componente de campo de texto para form --}} @props([ 'class' => 'col-12 col-sm-12 col-md-auto', 'id' => null, 'name' => 'textfield', 'tooltip' => null, 'value' => null, 'controlClass' => null, 'controlProperties' => null, 'placeholder' => null, 'disabled' => false, 'errorName' => $errorName ?? ($name ?? 'textfield'), //nome do error Bag 'helpText' => null, // texto que aparece abaixo do campo, small e muted 'required' => false, 'canAny' => null, 'number' => false, // se true, o campo será do tipo number 'confidential' => false, // se true cria caixa e icone em volta 'mask' => null // mascara do campo. Opções: 'phone', 'zip'. Default null ]) @aware(['item' => null]) @if( ($canAny && Gate::any($canAny)) || !$canAny ) @php if(!isset($value)) { // popular padrão do campo $value = old($name) ?? (($item->$name) ?? null); } $propertiesArray = ['id' => $id ?? $name]; if($controlProperties) { $propertiesArray += $controlProperties; } if($controlClass) { $propertiesArray += ['class' => "form-control ".$controlClass . ($errors->has($errorName) ? ' is-invalid ' : '') . (($mask && strtolower($mask)=='phone') ? ' phoneField ' : '') ]; } else { $propertiesArray += ['class' => "form-control " . ($errors->has($errorName) ? ' is-invalid ' : '') . (($mask && strtolower($mask)=='phone') ? ' phoneField ' : '') ]; } if( $placeholder ) { $propertiesArray += ['placeholder' => $placeholder]; } // Detecta se é parte de um form liveWire $isLiveWire = collect($attributes->getAttributes()) ->filter(fn($value, $key) => str_starts_with($key, 'wire:'))->isNotEmpty(); $isLWPhoneMask = ($isLiveWire && $mask && strtolower($mask) == 'phone'); $isZipMask = ($mask && strtolower($mask) == 'zip'); @endphp {{-- JS para máscara - legacy/não livewire--}} @if(!$isLiveWire) @section('scripts') @parent @once @endonce @endsection @endif @if($confidential)