{{-- Componente anónimo: Carpeta atómica: index.blade.php + select.js + select.css. Assets: Mix → public/js|css/components/sujeto-pasivo/select.* Modo opciones (solicitud): :cargos y, si aplica, :cargos-alcalde. Modo búsqueda (filtros): url, institución, placeholder, disabled e ítem elegido. Ítem elegido: lista de ['id' => …, 'text' => …]. disabled es booleano. --}} @props([ 'name' => null, 'id' => null, 'cargos' => null, 'cargosAlcalde' => null, 'url' => null, 'institucionSelectId' => null, 'institucionActual' => null, 'placeholder' => null, 'disabled' => false, 'required' => false, 'itemSeleccionado' => null, ]) @php $modo = ($cargos === null && $cargosAlcalde === null && filled($url)) ? 'busqueda' : 'opciones'; $textoPlaceholder = $placeholder ?? ($modo === 'busqueda' ? 'Seleccione nombre' : 'Seleccione uno'); $nombreCampo = $name ?? ($modo === 'busqueda' ? 'sujeto_pasivo' : 'cargo'); $idCampo = $id ?? $nombreCampo; $institucionFija = $institucionActual; if ($institucionFija === '' || $institucionFija === '0' || $institucionFija === 0) { $institucionFija = null; } $opcionCargo = function ($cargo): ?array { $usuario = is_array($cargo) ? ($cargo['usuario'] ?? null) : ($cargo->usuario ?? null); $nombres = is_array($usuario) ? ($usuario['nombres'] ?? '') : ($usuario->nombres ?? ''); $apellidos = is_array($usuario) ? ($usuario['apellidos'] ?? '') : ($usuario->apellidos ?? ''); $cargoTexto = is_array($cargo) ? ($cargo['cargo'] ?? '') : ($cargo->cargo ?? ''); $idOpcion = is_array($cargo) ? ($cargo['id'] ?? '') : ($cargo->id ?? ''); return [ 'id' => $idOpcion, 'text' => trim( $cargoTexto .' - ' .ucwords(strtolower((string) $nombres)) .' ' .ucwords(strtolower((string) $apellidos)), ' -' ), ]; }; $atributosSelect = [ 'class' => 'form-control', 'name' => $nombreCampo, 'id' => $idCampo, 'data-component' => 'sujeto-pasivo-select', 'data-mode' => $modo, 'data-placeholder' => $textoPlaceholder, ]; if (filled($url)) { $atributosSelect['data-url'] = $url; } if (filled($institucionSelectId)) { $atributosSelect['data-institucion-select'] = $institucionSelectId; } if ($institucionFija !== null) { $atributosSelect['data-institucion-actual'] = $institucionFija; } @endphp @once @push('codigoAdicionalFinalPaginaTemplateAntesDeJQueryReady') @endpush @endonce @php $idSeleccionado = ''; if (is_array($itemSeleccionado) && isset($itemSeleccionado[0]['id'])) { $idSeleccionado = (string) $itemSeleccionado[0]['id']; } $opcionYaIncluida = $idSeleccionado === ''; @endphp